如何解决pygame角色在按下按键时不会移动
我正在用pygame制作游戏,尽管当我想移动玩家时,pygame并没有移动角色。它正在注册已按下一个键,但是什么也没有发生。有人可以告诉错误是从哪里来的,并指出正确的方向。以下是我的代码。
请注意游戏还没有完全开发。
import pygame as pg,random as r,sys
pg.init()
window = pg.display.set_mode((1200,600))
pg.display.set_caption("The Pygame Version")
White = (255,255,255)
Black = (0,0)
Green = (0,0)
Red = (255,0)
DarkGreen = (0,126,0)
def draw():
global runner,chaser
background = pg.draw.rect(window,Green,(0,1200,600))
chaser = pg.draw.rect(window,Black,(1015,225,150,150))
runner = pg.draw.rect(window,Red,(30,150))
track1 = pg.draw.line(window,DarkGreen,200),(1200,10)
track2 = pg.draw.line(window,400),10)
score = 0
font = pg.font.Font('freesansbold.ttf',28)
scoreBoard = font.render("score: 0",True,Black)
speed = 150
text = 0
collision = 0
draw()
while True:
keys = pg.key.get_pressed()
for event in pg.event.get():
if event.type == pg.QUIT:
pg.quit()
sys.exit()
if keys[pg.K_w]:
runner.y -= 200
runner.width = 300
draw()
print ("We are moving")
pg.quit()
解决方法
您正在以恒定的位置和恒定的大小绘制矩形:
chaser = pg.draw.rect(window,Black,(1015,225,150,150)) runner = pg.draw.rect(window,Red,(30,150))
请注意,pygame.draw.rect
返回一个新的矩形,以更改的像素为边界。实际上,它分别返回pygame.Rect(1015,150)
pygame.Rect(30,150)
您必须采用另一种方法:
创建pygame.Rect
个对象chaser
和runner
chaser = pg.Rect(1015,150)
runner = pg.Rect(30,150)
并使用对象在draw
中绘制矩形:
def draw():
global runner,chaser
pg.draw.rect(window,Green,(0,1200,600))
pg.draw.rect(window,chaser)
pg.draw.rect(window,runner)
# [...]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。