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()
版权声明:本文标题:简单飞机代码大全 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1709285219h542026.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论