pygame飞机大战物体移动
本帖最后由 C++太极门小弟子 于 2021-9-8 00:20 编辑以下是主程序
import pygame
import traceback
import sys
import meplane
from pygame.constants import K_DOWN, K_LEFT, K_RIGHT, K_UP
pygame.init()
bg_size = width, height = 480, 700
screen = pygame.display.set_mode(bg_size)
pygame.display.set_caption("飞机大战")
background = pygame.image.load("D:\Microsoft VS Code\project\我编的飞机大战 - 副本\images/background.png").convert()
def main():
fps = 60
fclock = pygame.time.Clock()
while True:
me = meplane.Myplane(bg_size)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
key_pressed = pygame.key.get_pressed()
if key_pressed:
me.moveup()
if key_pressed:
me.movedown()
if key_pressed:
me.moveleft()
if key_pressed:
me.moveright()
screen.blit(background, (0, 0))
screen.blit(me.image, me.rect)
pygame.display.flip()
fclock.tick(fps)
if __name__ == "__main__":
try:
main()
except SystemExit:
pass
except:
traceback.print_exc()
pygame.quit
input()
每次KEYDOWN时飞机并不会持续的位移只会移动一小距离,并且KEYUP后飞机又自动返回了初始位置,看了很久不知道为什么
以及第六行为啥删掉之后程序无法正常运行,进去就黑屏只能强制关闭 每次KEYDOWN时飞机并不会持续的位移只会移动一小距离,并且KEYUP后飞机又自动返回了初始位置
试试把26到34行写在 for event in pygame.event.get(): 里面。
第六行为啥删掉之后程序无法正常运行
可以用 pygame.K_DOWN , pygame.K_LEFT ... 代替。 blahblahfc 发表于 2021-9-8 01:57
试试把26到34行写在 for event in pygame.event.get(): 里面。
{:10_262:}也还是一样 可能是第20行写在了 while 循环里面了, 每次都创建一个Myplane实例,试试把它移到 while 的外面来
me = meplane.Myplane(bg_size)
while True:
blahblahfc 发表于 2021-9-8 12:25
可能是第20行写在了 while 循环里面了, 每次都创建一个Myplane实例,试试把它移到 while 的外面来
{:10_275:}好了,感谢感谢
页:
[1]