admin 管理员组

文章数量: 887021


2024年3月1日发(作者:active对应词)

简单飞机代码大全

目前仅实现了飞机的控制作用移动和发射子弹,敌机的随机移动和随机发射子弹

创建新的项目时,先添加五个图片[背景图片,玩家飞机图片,敌机图片,子弹图片,敌机子弹图片]和一段背景音乐到文件中,以方便后续使用

具体实现过程如下:

import pygame #引用第三方模块

import random

from import *

import time

'''

实现飞机的显示,并控制飞机的移动

'''

class UserPlane(object):

def __init__(self,screen):

'''

初始化函数

:param screen:主窗体对象

'''

#飞机的默认位置

self.x=150

self.y=470

#设置要显示内容的窗口

=screen

#载入飞机图片

ame='./飞机/'#存放飞机的图片

=(ame)

#用来存放子弹

list=[]

pass

def moveleft(self):

'''

左移动

:return:

'''

if self.x>=0:

self.x-=10

pass

pass

def moveright(self):

'''

右移动

:return:

'''

if self.x<=330:

self.x+=10

pass

pass

def display(self):

'''

飞机在屏幕显示

:return:

'''

(,(self.x,self.y))

#完善子弹的展示逻辑

needDellList=[]

for item in list:

if ():

(item)

pass

pass

#生成新的子弹列表

for i in needDellList:

(i)

pass

for bullet in list:

y()#显示子弹位置

()#子弹移动

def shoot(self):

#创建一个新的子弹对象

newbullet=Bullet(self.x,self.y,)

(newbullet)

pass

class EnemyPlane(object):

def __init__(self,screen):

# 设置一个方向

uion='rignt'

self.x = 0

self.y = 0

# 设置要显示内容的窗口

= screen

# 载入敌机图片

ame = './敌机/'#存放敌机的图片

= (ame)

list=[]

def display(self):

(,(self.x,self.y))

# 完善子弹的展示逻辑

needDellList = []

for item in list:

if ():

(item)

pass

pass

# 生成新的子弹列表

for i in needDellList:

(i)

pass

for bullet in list:

y() # 显示子弹位置

() # 子弹移动

pass

def shoot(self):

num=t(0,50000)

if num==3:

newbullet = EnemyBullet(self.x, self.y, )

(newbullet)

pass

def move(self):

if uion=='right':

self.x+=0.01

pass

elif uion=='left':

self.x-=0.01

pass

if self.x>310:

uion='left'

pass

elif self.x<20:

uion='right'

pass

'''

控制键盘

'''

def key_control(obj):

'''

用来实现键盘检测

:param obj: 控制对象

:return:

'''

eventList=()

for event in eventList:

if ==QUIT:

print('退出')

exit()

pass

elif ==KEYDOWN:

if ==K_d or ==K_RIGHT:

print('right')

ght()#左移

elif ==K_a or ==K_LEFT:

print('left')

ft()#右移

elif ==K_SPACE:

print('SPACE,发射子弹')

()

'''

创建子弹类对象

'''

class Bullet(object):

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

self.x=x

self.y=y-20

=screen

=('./子弹/')#存放子弹的图片

pass

def display(self):

(,(self.x,self.y))

pass

def move(self):

self.y-=0.05

pass

def judge(self):

'''

判断是否越界

:return:

'''

if self.y<0:

return True

else:

return False

pass

class EnemyBullet(object):

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

self.x=x

self.y=y+20

=screen

=('./敌机子弹/')#存放敌机子弹的图片

pass

def display(self):

(, (self.x, self.y))

pass

def move(self):

self.y+=0.05

def judge(self):

'''

判断是否越界

:return:

'''

if self.y>480:

return True

else:

return False

pass

def main():

# 首先创建一个窗口,用来显示内容

screen=_mode((350,500))

# 设定一个背景图片

background=('./飞机/')#选择背景图片

# 设定一个title

_caption('飞机大战')

# 添加背景音乐

()

('./飞机/派克特 - 3')#选择你要添加的BGM

_volume(0.2)

(-1)#循环次数-1,表示无限循环

# 创建一个飞机对象

user=UserPlane(screen)

# 创建一个敌机对象

enemy=EnemyPlane(screen)

# 设定要显示的内容

while True:

(background,(0,0))

# 显示玩家飞机图片

y()

# 显示敌机图片

y()

()

()

# 获取键盘事件

key_control(user)

# 更新显示内容

()

pass

if __name__=='__main__':

main()


本文标签: 子弹 图片 飞机 显示 敌机