我最近开始使用Python中的类(我是1000%的新手),到目前为止,我发现使用它更容易。然而,在为我的项目开发迷你游戏时,我遇到了玩家输入的问题。我所尝试过的理论上应该可行,但就像我说我对此很新。
import pygame as pg
from settings import *
vec = pg.math.Vector2
class Player(pg.sprite.Sprite):
def __init__(self):
pg.sprite.Sprite.__init__(self)
self.image = pg.Surface((30,40))
self.image.fill(GREEN)
self.rect = self.image.get_rect()
self.rect.center = (WIDTH / 2, HEIGHT / 2)
self.pos = vec(WIDTH / 2, HEIGHT / 2)
self.vec = vec(0,0)
self.acc = vec(0,0)
def update(self):
self.acc = vec(0,0)
keys = pg.key.get_pressed()
if keys[pg.K_LEFT]:
self.acc.x = -PLAYER_ACC
if keys[pg.K_RIGHT]:
self.acc.x = PLAYER_ACC
self.acc += self.vel * PLAYER_FRICTION
self.vel += self.acc
self.pos += self.vel + (0.5 * self.acc)
if self.pos.x > WIDTH:
self.pos.x = 0
if self.pos.x < 0:
self.pos.x = WIDTH
self.rect.center = self.pos
到目前为止,这将矩形绘制在所需的位置,并且在shell上没有显示错误,因此我知道我没有错误输入任何内容。
我做错了吗?或者这是我的逻辑错了吗?
(P.S:这是一个更大的程序的一部分,只是拆分成多个文件,例如包含游戏类的主文件 - 因此来自设置。)
编辑:道歉,问题是精灵是正确绘制的,但是当我按下左箭头键或右箭头键时,精灵不会按原样移动