实例介绍
【实例截图】

【核心代码】import pygame,time,random#导入pygame,time,random模块
pygame.init()#pygame模块初始化
#1.创建窗口
screen=pygame.display.set_mode((480,852))
#2.贴背景
bg=pygame.image.load("background.png")#加载图片
#贴灰鸡
j=pygame.image.load("hero1.png")
jj=pygame.image.load("hero0.png")
hero_down=pygame.image.load("hero_down.png")
#贴敌机
enemy1=pygame.image.load("enemy1.png")
enemy1_x=[]#创建敌人1的地点
enemy1_y=[]
enemy1_down2=pygame.image.load("enemy1_down2.png")
enemy1_down3=pygame.image.load("enemy1_down3.png")
enemy1_blood=[]
enemy3=pygame.image.load("enemy3.png")
enemy3_x=[]#创建敌人1的地点
enemy3_y=[]
enemy3_down2=pygame.image.load("enemy1_down2.png")
enemy3_down3=pygame.image.load("enemy1_down3.png")
enemy3_blood=[]
enemy2=pygame.image.load("enemy2.png")
enemy2_x=[]#创建敌人1的地点
enemy2_y=[]
enemy2_down2=pygame.image.load("enemy2_down2.png")
enemy2_down3=pygame.image.load("enemy2_down3.png")
enemy2_blood=[]
bullet=pygame.image.load("bullet.png")
bullet_x=[]
bullet_y=[]
#AWSL
gameover=pygame.image.load("gameover.png")
gameover=pygame.transform.scale(gameover,(480,852))
start=0
number=0
text=font.render("XD:",False,(0,0,0))
score=0
while True:
if start==0:
mouse_x,mouse_y=pygame.mouse.get_pos()#获取当前鼠标坐标
#获取战鸡宽高
hero_x=mouse_x-(j.get_width()/2)#宽x
hero_y=mouse_y-(j.get_height()/2)#高Y
screen.blit(bg,(0,0))
screen.blit(text,(0,0))
text_score=font.render(str(score),False,(0,0,0))
screen.blit(text_score,(100,0))
#贴英雄鸡1
if number%2==0:#如果取余数=0贴hero0
screen.blit(jj,(hero_x,hero_y))
else:#如取余=1,贴hero1
screen.blit(j,(hero_x,hero_y))
#--------------------------------------------------------------------
if number%5==0:#¥¥¥可以改
#添加x坐标
enemy1_x.append(random.randint(0,480))
#添加y坐标
enemy1_y.append(0)
#敌鸡2滴血
enemy1_blood.append(2)
#贴
for i in range(len(enemy1_x)):
screen.blit(enemy1,(enemy1_x[i],enemy1_y[i]))
enemy1_y[i]=enemy1_y[i] 4#屎小敌鸡降落 :D
for i in range(len(enemy1_x)):
if enemy1_y[i]>852:#如小敌机y>852,那么让敌机重回0
del enemy1_x[i]
del enemy1_y[i]
break#跳跳跳跳跳跳出循环
#-----------------------------------------------
if number%500==0:#¥¥¥可以改
enemy3_x.append(random.randint(0,480))
#添加y坐标
enemy3_y.append(0)
enemy3_blood.append(1)
for i in range(len(enemy3_x)):
screen.blit(enemy3,(enemy3_x[i],enemy3_y[i]))
enemy3_y[i]=enemy3_y[i] 2#屎大敌鸡降落 :D
for i in range(len(enemy3_x)):
if enemy3_y[i]>852:#如小敌机y>852,那么让敌机重回0
del enemy3_x[i]
del enemy3_y[i]
break#跳跳跳跳跳跳出循环
#-----------------------------------------------------------
if number%200==0:#¥¥¥可以改
enemy2_x.append(random.randint(0,480))
#添加y坐标
enemy2_y.append(0)
enemy2_blood.append(3)
for i in range(len(enemy2_x)):
screen.blit(enemy2,(enemy2_x[i],enemy2_y[i]))
enemy2_y[i]=enemy2_y[i] 2#屎大敌鸡降落 :D
for i in range(len(enemy2_x)):
if enemy2_y[i]>852:#如小敌机y>852,那么让敌机重回0
del enemy2_x[i]
del enemy2_y[i]
break#跳跳跳跳跳跳出循环
#--------------------------------------------------------------
#子弹
if number%5==0:#可以改
bullet_x.append(hero_x jj.get_width()/2-bullet.get_width()/2)
bullet_y.append(hero_y-jj.get_height()/100)
for i in range(len(bullet_x)):
screen.blit(bullet,(bullet_x[i],bullet_y[i]))
bullet_y[i]=bullet_y[i]-10#可改
for i in range(len(bullet_x)):
if bullet_y[i]<0:
del bullet_x[i]
del bullet_y[i]
break
for i in range(len(bullet_x)):#子弹列表
for k in range(len(enemy1_x)):################################################################3 #小鸡列表范围内
#如果子弹的x坐标在对面x的范围内
if bullet_x[i]>enemy1_x[k]-bullet.get_width() and bullet_x[i]<enemy1_x[k] enemy1.get_width():
#如果子弹的x坐标在对面x的范围内
if bullet_y[i]>enemy1_y[k]-bullet.get_height() and bullet_y[i]<enemy1_y[k] enemy1.get_height():
enemy1_blood[k]=enemy1_blood[k]-1
if enemy1_blood[k]<0:
score=score 1
screen.blit(enemy1_down1,(enemy1_x[k],enemy1_y[k]))
screen.blit(enemy1_down2,(enemy1_x[k],enemy1_y[k]))
screen.blit(enemy1_down3,(enemy1_x[k],enemy1_y[k]))
del enemy1_x[k]
del enemy1_y[k]
break
#-------------------------------------------------------------------
for i in range(len(bullet_x)):#子弹列表
for k in range(len(enemy3_x)):################################################################3 #小鸡列表范围内
#如果子弹的x坐标在对面x的范围内
if bullet_x[i]>enemy3_x[k]-bullet.get_width() and bullet_x[i]<enemy1_x[k] enemy3.get_width():
#如果子弹的x坐标在对面x的范围内
if bullet_y[i]>enemy3_y[k]-bullet.get_height() and bullet_y[i]<enemy1_y[k] enemy3.get_height():
enemy3_blood[k]=enemy3_blood[k]-2
if enemy1_blood[k]<0:
score=score 2
screen.blit(enemy3_down1,(enemy1_x[k],enemy1_y[k]))
screen.blit(enemy3_down2,(enemy1_x[k],enemy1_y[k]))
screen.blit(enemy3_down3,(enemy1_x[k],enemy1_y[k]))
del enemy3_x[k]
del enemy3_y[k]
break
#----------------------------------------------------------------------------------------
for i in range(len(bullet_x)):#子弹列表
for k in range(len(enemy2_x)):################################################################3 #小鸡列表范围内
#如果子弹的x坐标在对面x的范围内
if bullet_x[i]>enemy2_x[k]-bullet.get_width() and bullet_x[i]<enemy1_x[k] enemy2.get_width():
#如果子弹的x坐标在对面x的范围内
if bullet_y[i]>enemy2_y[k]-bullet.get_height() and bullet_y[i]<enemy1_y[k] enemy2.get_height():
enemy2_blood[k]=enemy2_blood[k]-2
if enemy1_blood[k]<0:
score=score 10
screen.blit(enemy2_down1,(enemy1_x[k],enemy1_y[k]))
screen.blit(enemy2_down2,(enemy1_x[k],enemy1_y[k]))
screen.blit(enemy2_down3,(enemy1_x[k],enemy1_y[k]))
del enemy2_x[k]
del enemy2_y[k]
break
for i in range(len(enemy1_x)):
if enemy1_x[i]>hero_x-enemy1.get_width() and enemy1_x[i]<hero_x jj.get_width():
if enemy1_y[i]>hero_y-enemy1.get_height() and enemy1_y[i]<hero_y jj.get_height():
screen.blit (hero_down,(hero_x,hero_y))
start=1
for i in range(len(enemy2_x)):
if enemy2_x[i]>hero_x-enemy1.get_width() and enemy2_x[i]<hero_x jj.get_width():
if enemy2_y[i]>hero_y-enemy1.get_height() and enemy2_y[i]<hero_y jj.get_height():
screen.blit (hero_down,(hero_x,hero_y))
start=1
for i in range(len(enemy3_x)):
if enemy3_x[i]>hero_x-enemy3.get_width() and enemy3_x[i]<hero_x jj.get_width():
if enemy3_y[i]>hero_y-enemy3.get_height() and enemy3_y[i]<hero_y jj.get_height():
screen.blit (hero_down,(hero_x,hero_y))
start=1
elif start==1:
screen.blit(gameover,(0,0))
#刷新
pygame.display.update()
time.sleep(0.0001)
number=number 1
#关闭窗口事件
for event in pygame.event.get():#for有限循环
if event.type==QUIT:#获取关闭事件类型,事件类型名称全部大写
pygame.display.quit()#窗口关闭
exit ()#退出程序
标签: python
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论