我刚刚开始学习Python(到目前为止,我能流利使用的唯一其他编程语言是C,所以这对我来说是非常新的),我决定使用它来做一些简单的游戏习惯它。我希望它是一个箭头键控制的游戏,并且我正在使用graphics.py库,据我所知,该库对初学者非常友好。
这是我想出的:
from graphics import *
win = GraphWin("Game", 800, 500)
def getXInput():
inputBuffer = win.checkKey()
inputResult = 0
if inputBuffer == "Right":
inputResult = 1
elif inputBuffer == "Left":
inputResult = -1
return inputResult
def getYInput():
inputBuffer = win.checkKey()
inputResult = 0
if inputBuffer == "Down":
inputResult = 1
elif inputBuffer == "Up":
inputResult = -1
return inputResult
class player:
def __init__(self):
self.x = 400
self.y = 250
self.speed = 3
self.canMove = True
self.txt = Text(Point(self.x, self.y), "test")
self.txt.draw(win)
def move(self):
while self.canMove == True:
xMove = getXInput() * self.speed
yMove = getYInput() * self.speed
self.txt.move(xMove, yMove)
def main():
pl = player()
pl.move()
win.close()
main()
播放器输入通过getXInput和getYInput函数进行管理,这些函数会昂贵地检查是否按下了箭头键,并相应地返回-1、0或1。
然后,将这些功能的结果乘以玩家的属性“速度”,成倍增加,这就是游戏如何沿正确的方向移动玩家角色。这种方法很有效:它在x轴上完美工作,但在y轴上却很奇怪,仅偶尔注册一次输入。在move方法中将yMove分配放在xMove之前,可以解决此问题,从而使垂直运动变得完美而水平运动非常草率。我真的不明白是什么原因造成的,有人可以帮忙吗?