角线不对

问题描述 投票:0回答:1

我想做一个伪3D游戏。我是 python 的新手,所以我开始了关于 YT 的指南。我按照他们说的做了。我为这个点和它的视图制作了一个 WASD 和 LEFT-RIGHT 控制器。但我看到了一个缺陷:它没有转向北方,而是擦掉并重新绘制了我在另一边的线

我这样画线:

pygame.draw.line(sc, GREEN, player.pos, (player.x + WIDTH * math.cos(player.angle),  player.y + WIDTH * math.sin(player_angle)))
这是玩家类:

from config import *
import pygame

class Player:
    def __init__(self):
        self.x, self.y = player_pos
        self.angle = player_angle
    
    @property
    def pos(self):
        return(self.x, self.y)

    def movement(self):
        keys = pygame.key.get_pressed()
        if keys[pygame.K_w]:
            self.y -= player_speed
        if keys[pygame.K_s]:
            self.y += player_speed
        if keys[pygame.K_a]:
            self.x -= player_speed
        if keys[pygame.K_d]:
            self.x += player_speed
        if keys[pygame.K_LEFT]:
            self.angle -= 0.02
        if keys[pygame.K_RIGHT]:
            self.angle += 0.02

这是配置:

#game configuration
WIDTH = 1200
HEIGHT = 800
HALF_WIDTH = WIDTH // 2
HALF_HEIGHT = HEIGHT // 2
FPS = 75
#game colors
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
GRAY = (110, 110, 110)
DARKBLUE = (0, 120, 0)
#player
player_pos = (HALF_WIDTH, HALF_HEIGHT)
player_angle = 0
player_speed = 2

请帮忙。我知道这不是 new in python 的任务,但我对此很感兴趣。我想解决这个问题。感谢所有帮助我的人(

python python-3.x trigonometry
1个回答
0
投票

会不会是度数与弧度的问题?

© www.soinside.com 2019 - 2024. All rights reserved.