2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 帮忙看一下 救救我

帮忙看一下 救救我

时间:2024-01-09 12:50:17

相关推荐

帮忙看一下 救救我

子弹碰到飞机不会爆炸

代码:

import pygame as pa

import time

import sys

import random

CREAT_ENEMY_EVENT=pa.USEREVENT

class plane(pa.sprite.Sprite): #玩家飞机类

planebullets1=pa.sprite.Group()

def __init__(self,screen):

pa.sprite.Sprite.__init__(self) #pygame 精灵类初始化必须调用

self.x=240

self.y=852/2

self.screen=screen #窗口

self.image=pa.image.load("hero1.png") #102x126

self.speed=10

self.planebullets1=pa.sprite.Group() #精灵类装子弹的列表

self.bulletslist=[] #装子弹的列表

def key_control(self):

key_pressed =pa.key.get_pressed() #获取按下的事件

if key_pressed[pa.K_w] or key_pressed[pa.K_UP]:

self.y=self.y-self.speed

if key_pressed[pa.K_s] or key_pressed[pa.K_DOWN]:

self.y=self.y+self.speed

if key_pressed[pa.K_a] or key_pressed[pa.K_LEFT]:

self.x=self.x-self.speed

if key_pressed[pa.K_d] or key_pressed[pa.K_RIGHT]:

self.x=self.x+self.speed #键盘控制

if self.x<=0:

self.x=0

if (self.x+102)>=480:

self.x=480-102

if self.y<=0:

self.y=0

if (self.y+126)>=852:

self.y=852-126

if key_pressed[pa.K_SPACE]:

bullet=Bullet(self.screen,self.x,self.y)

self.bulletslist.append(bullet)

self.planebullets1.add(bullet) #添加子弹到精灵组

bullet.planebullets.add(bullet)

def display(self):

self.screen.blit(self.image,(self.x,self.y))

for bullet in self.bulletslist:

bullet.move()

bullet.display()

if self.y<0:

bullet.kill() #防止占用内存

def check(self):

pa.sprite.groupcollide(Bullet.planebullets,enemymove.enemies,True,True)

class Bullet(pa.sprite.Sprite):#子弹类

planebullets=pa.sprite.Group()

def __init__(self,screen,x,y):

pa.sprite.Sprite.__init__(self)

self.x=x+(106/2)-10/2

self.y=y-5/2

self.screen=screen

self.bullets=pa.image.load("bullet1.png")

self.bulletspeed=10

self.planebullets=pa.sprite.Group()

def display(self):

self.screen.blit(self.bullets,(self.x,self.y))

def move(self):

self.y-=self.bulletspeed

class Enemy(pa.sprite.Sprite):#敌方飞机类

def __init__(self,screen):

pa.sprite.Sprite.__init__(self)

self.x=random.randint(0,480-57)#防止敌机出现在界外

self.y=0

self.screen=screen

self.image=pa.image.load("enemy1.png") #57x43

self.speed=random.randint(1,3)

def display(self):

self.screen.blit(self.image,(self.x,self.y))

def move(self):

self.y+=self.speed

class enemymove(pa.sprite.Sprite):

enemies=pa.sprite.Group()

def __init__(self,screen):

pa.sprite.Sprite.__init__(self)

self.enemyslist=[] #装敌机的列表

self.screen=screen

self.enemies=pa.sprite.Group()

def add(self):

enemys=Enemy(self.screen)

self.enemyslist.append(enemys)

self.enemies.add(enemys)

def display(self):

for enemys in self.enemyslist:

enemys.move()

enemys.display()

if enemys.y>852:

enemys.kill() #防止占用内存

def main():

pa.init() #初始化窗口

screen=pa.display.set_mode((480,852))

hero=plane(screen)

enemy=Enemy(screen)

pa.time.set_timer(CREAT_ENEMY_EVENT,1000)#定时器

enemys_1=enemymove(screen)

while True:

background=pa.image.load("background.png") #创建游戏背景

screen.blit(background,(0,0))

hero.display()

for event in pa.event.get(): #防止程序未响应

if event.type == pa.QUIT:

pa.quit()

sys.exit()

elif event.type== CREAT_ENEMY_EVENT:

enemys_1.add()

enemys_1.display() #遍历列表

hero.check()

hero.key_control()

pa.display.update()

time.sleep(0.01) #防止键盘读取过快

main()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。