1 Star 0 Fork 0

MACRO/飞机大战小游戏

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
myplane.py 2.61 KB
一键复制 编辑 原始数据 按行查看 历史
import pygame
from pygame.locals import *
class Myplane(pygame.sprite.Sprite):
def __init__(self,width,height):
self.width=width
self.height=height
self.image1=pygame.image.load('images/me1.png').\
convert_alpha()
self.image2=pygame.image.load('images/me2.png').\
convert_alpha()
self.destroy_images=[
pygame.image.load('images/me_destroy_1.png').convert_alpha(),pygame.image.load('images/me_destroy_2.png').convert_alpha(),pygame.image.load('images/me_destroy_3.png').convert_alpha(),pygame.image.load('images/me_destroy_4.png').convert_alpha() ]
self.sound=pygame.mixer.Sound('sound/me_down.wav')
self.rect=self.image1.get_rect()
self.rect.x=(width-self.rect.width)/2
self.rect.y=height-self.rect.height-60
self.speed=10
self.active=True
self.life_num=3
self.switch=0
self.destroy_index=0
self.mask=pygame.mask.from_surface(self.image1)
def move(self):
keys=pygame.key.get_pressed()
if keys[K_w]:
if self.rect.y>0:
self.rect.y=self.rect.y-self.speed
if keys[K_s]:
if self.rect.y<(self.height-self.rect.height):
self.rect.y=self.rect.y+self.speed
if keys[K_a]:
if self.rect.x>0:
self.rect.x=self.rect.x-self.speed
if keys[K_d]:
if self.rect.x<self.width-self.rect.width:
self.rect.x=self.rect.x+self.speed
def draw(self,surface):
if self.active:
self.draw_active(surface)
else:
self.draw_destroy(surface)
def draw_active(self,surface):
if self.switch%5!=0:
surface.blit(self.image1,self.rect)
else:
surface.blit(self.image2,self.rect)
self.switch+=1
def draw_destroy(self,surface):
if self.destroy_index<20:
surface.blit(self.destroy_images[self.destroy_index//5],\
self.rect)
self.destroy_index+=1
elif self.life_num>0:
self.life_num-=1
self.reset()
def reset(self):
self.rect.x=(self.width-self.rect.width)/2
self.rect.y=self.height-self.rect.height-60
self.active=True
self.switch=0
self.destroy_index=0
def collide(self,emgroups):
emlist=pygame.sprite.spritecollide(self,emgroups,False,\
pygame.sprite.collide_mask)
if emlist !=[]:
self.active=False
for em in emlist:
em.active=False
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/macro886/aircraft_war_games.git
git@gitee.com:macro886/aircraft_war_games.git
macro886
aircraft_war_games
飞机大战小游戏
master

搜索帮助