Python飞机大战教程2:我方飞机
本帖最后由 KeyError 于 2023-1-14 14:37 编辑hello,看到我这么快就更了,是不是很惊讶{:10_256:}
开始撸代码{:10_265:}:
我方飞只因:
#myplne.py
import pygame
class MyPlane(pygame.sprite.Sprite):
def __init__(self,bg_size):
pygame.sprite.Sprite.__init__(self)
self.image1=pygame.image.load("images/me1.png").convert_alpha() #载入图片
self.image2=pygame.image.load("images/me2.png").convert_alpha()
self.rect=self.image1.get_rect()
self.width,self.height=bg_size,bg_size
self.rect.left,self.rect.top=(self.width-self.rect.width)//2,\ #设置位置
self.height-self.rect.height-60
self.speed=10
self.active=True
self.mask=pygame.mask.from_surface(self.image1)
#↓定义移动函数
def moveUp(self):
if self.rect.top>0:
self.rect.top-=self.speed
else:
self.rect.top=0
def moveDown(self):
if self.rect.bottom<self.height-60:
self.rect.bottom+=self.speed
else:
self.rect.bottom=self.height-60
def moveLeft(self):
if self.rect.left>0:
self.rect.left-=self.speed
else:
self.rect.left=0
def moveRight(self):
if self.rect.right<self.width:
self.rect.right+=self.speed
else:
self.rect.right=self.width
主程序(有改动):
#main.py
import pygame
import sys
import traceback
import myplne
from pygame.locals import *
pygame.init()
pygamr.mixer.init()
bg_size = width,height = 480,700 #尺寸
screen = pygame.display.set_mode(bg_size) #画布
pygame.display.set_caption("飞机大战") #标题
background = pygame.image.load("images/background.png").convert() #导入背景
def main():
clock = pygame.time.Clock()
me = myplne.MyPlane(bg_size)
qie = True
while True:
for event in pygame.event.get():
if event.type == QUIT: #如果用户点击关闭按钮
pygame.quit()
sys.exit()
#控制飞机
key_p=pygame.key.get_pressed()
if key_p or key_p:
me.moveUp()
if key_p or key_p:
me.moveDown()
if key_p or key_p:
me.moveLeft()
if key_p or key_p:
me.moveRight()
if qie:
screen.blit(me.image1,me.rect)
else:
screen.blit(me.image2,me.rect)
screen.blit(background, (0,0)) #绘制背景
if not (delay % 5):
qie=not qie
delay-=1
if not delay:
delay=100
pygame.display.flip()
clock.tick(60) #限制帧率
if __name__ == "__main__":
try:
main()
except SystemExit:
pass
except:
traceback.print_exc() #报告异常
pygame.quit()
input()
上一篇: 传送门
下一篇: 传送门
页:
[1]