level 1
我找不到你了✨
楼主
最近在网上找了一个用pygame模块制作飞机大战的视频,学了半个月打算自己动手写一下。好不容易把飞机导入到主程序中了,结果飞机移动不了,已经在这里卡了两天了,想的脑袋疼都没找到是哪里出问题了
求大佬指点是哪里出问题了!代码如下
主程序main.py
import pygame
import sys
import myplane
from pygame.locals import *
# 初始化pygame
pygame.init()
pygame.mixer.init()
# 窗口大小
bg_size = width, height = 480, 700
screen = pygame.display.set_mode(bg_size)
# 窗口标题
pygame.display.set_caption("飞机大战")
# 载入背景图片
background = pygame.image.load(r"images\background.png").convert()
# 渲染背景图片
screen.blit(background, (0, 0))
# 载入背景音乐
pygame.mixer.music.load(r"sound\game_music.ogg")
# 生成我方飞机
me = myplane.MyPlane(bg_size)
# 绘制我方飞机
screen.blit(me.image, me.rect)
# 屏幕刷新
pygame.display.update()
# 主程序
def main():
# 播放背景音乐
pygame.mixer.music.play(-1)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# 键盘控制
key_pressed = pygame.key.get_pressed()
if key_pressed[K_w] or key_pressed[K_UP]:
me.moveUp()
if key_pressed[K_s] or key_pressed[K_DOWN]:
me.moveDown()
if key_pressed[K_a] or key_pressed[K_LEFT]:
me.moveLeft()
if key_pressed[K_d] or key_pressed[K_RIGHT]:
me.moveRight()
if __name__ == '__main__':
main()
我方飞机myplane.py
import pygame
class MyPlane(pygame.sprite.Sprite):
#属性
def __init__(self,bg_size):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load(r"images\me1.png").convert_alpha()
self.rect = self.image.get_rect()
self.width, self.height = bg_size[0], bg_size[1]
self.rect.left, self.rect.top = \
(self.width - self.rect.width) // 2, \
self.height - self.rect.height - 60
#移动
def moveUp(self):
if self.rect.top > 0:
self.rect.top -= 10
else:
self.rect.top = 0
def moveDown(self):
if self.rect.bottom < 650:
self.rect.bottom += 10
else:
self.rect.bottom = 50
def moveLeft(self):
if self.rect.left > 0:
self.rect.left -= 10
else:
self.rect.left = 0
def moveRight(self):
if self.rect.right < 400:
self.rect.right += 10
else:
self.rect.right = 0
2021年08月06日 07点08分
1
主程序main.py
import pygame
import sys
import myplane
from pygame.locals import *
# 初始化pygame
pygame.init()
pygame.mixer.init()
# 窗口大小
bg_size = width, height = 480, 700
screen = pygame.display.set_mode(bg_size)
# 窗口标题
pygame.display.set_caption("飞机大战")
# 载入背景图片
background = pygame.image.load(r"images\background.png").convert()
# 渲染背景图片
screen.blit(background, (0, 0))
# 载入背景音乐
pygame.mixer.music.load(r"sound\game_music.ogg")
# 生成我方飞机
me = myplane.MyPlane(bg_size)
# 绘制我方飞机
screen.blit(me.image, me.rect)
# 屏幕刷新
pygame.display.update()
# 主程序
def main():
# 播放背景音乐
pygame.mixer.music.play(-1)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# 键盘控制
key_pressed = pygame.key.get_pressed()
if key_pressed[K_w] or key_pressed[K_UP]:
me.moveUp()
if key_pressed[K_s] or key_pressed[K_DOWN]:
me.moveDown()
if key_pressed[K_a] or key_pressed[K_LEFT]:
me.moveLeft()
if key_pressed[K_d] or key_pressed[K_RIGHT]:
me.moveRight()
if __name__ == '__main__':
main()
我方飞机myplane.py
import pygame
class MyPlane(pygame.sprite.Sprite):
#属性
def __init__(self,bg_size):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load(r"images\me1.png").convert_alpha()
self.rect = self.image.get_rect()
self.width, self.height = bg_size[0], bg_size[1]
self.rect.left, self.rect.top = \
(self.width - self.rect.width) // 2, \
self.height - self.rect.height - 60
#移动
def moveUp(self):
if self.rect.top > 0:
self.rect.top -= 10
else:
self.rect.top = 0
def moveDown(self):
if self.rect.bottom < 650:
self.rect.bottom += 10
else:
self.rect.bottom = 50
def moveLeft(self):
if self.rect.left > 0:
self.rect.left -= 10
else:
self.rect.left = 0
def moveRight(self):
if self.rect.right < 400:
self.rect.right += 10
else:
self.rect.right = 0