Pygame中玩家输入的问题

时间:2018-02-08 17:17:27

标签: python pygame game-physics

我最近开始使用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:这是一个更大的程序的一部分,只是拆分成多个文件,例如包含游戏类的主文件 - 因此来自设置。)

编辑:道歉,问题是精灵是正确绘制的,但是当我按下左箭头键或右箭头键时,精灵不会按原样移动

0 个答案:

没有答案
相关问题