为了账号安全,请及时绑定邮箱和手机立即绑定

Sprite不会在pygame中移动

Sprite不会在pygame中移动

皈依舞 2022-06-14 16:57:32
此代码中的“行星”精灵不会左右移动,不会动画。错误在哪里?实际上,该列表来自 google play 的应用程序“Programming Hero”,其中应用程序的作者一步一步地指导学生完成视频 - 使用 python 制作游戏的过程......import pygamescreen_size = [360,640]screen =     pygame.display.set_mode(screen_size)background = pygame.image.load('background.png')planet =     pygame.image.load('one.png')spaceship =  pygame.image.load('spaceship.png')bullet =     pygame.image.load('bullet.png')keep_alive = Trueplanet_x = 140           # I've edited thismove_direction = 'right' # out of the loop, too# according to the same logic "I've saved the planet" to go infinitely right# thanx while keep_alive:    pygame.event.get()    keys = pygame.key.get_pressed()    if keys[pygame.K_SPACE] == True:        print('Space key pressed')    screen.blit(background, [0,0])    screen.blit(bullet,[180,500])    screen.blit(spaceship,[160,500])    # I put this out off loop:           planet_x = 140    # wrong, must go out of a loop, too: move_direction = 'right'    if move_direction == 'right':        planet_x = planet_x + 5        if planet_x == 270:            move_direction = 'left'    else:        planet_x = planet_x - 5        if planet_x == 0:            move_direction = 'right'    screen.blit(planet, [planet_x, 50])    pygame.display.update()
查看完整描述

1 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

行星 ( planet_x) 的位置在每一帧中重新初始化:


while keep_alive:

   # [...]


   planet_x = 140


   if move_direction == 'right':

       planet_x = planet_x + 5


   # [...]


   screen.blit(planet, [planet_x, 50])

将 , 的初始化移到planet_x主应用程序循环之前:


planet_x = 140

while keep_alive:


    # [...]


    if move_direction == 'right':

        planet_x = planet_x + 5


    # [...]


    screen.blit(planet, [planet_x, 50])


查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号