在好例子网,分享、交流、成长!
您当前所在位置:首页Python 开发实例Python语言基础 → 飞碟大战(就是把飞机大战改了一下)

飞碟大战(就是把飞机大战改了一下)

Python语言基础

下载此实例
  • 开发语言:Python
  • 实例大小:5.92M
  • 下载次数:22
  • 浏览次数:240
  • 发布时间:2019-08-30
  • 实例类别:Python语言基础
  • 发 布 人:lan_walker
  • 文件格式:.zip
  • 所需积分:2
 相关标签: python

实例介绍

【实例简介】飞机大战
【实例截图】
【核心代码】import pygame,time,random#导入pygame,time,random模块
from pygame.locals import *
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_down1=pygame.image.load("enemy1_down1.png")
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_down1=pygame.image.load("enemy1_down1.png")
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_down1=pygame.image.load("enemy2_down1.png")
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
font=pygame.font.Font("simsun.ttc",40)
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

实例下载地址

飞碟大战(就是把飞机大战改了一下)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警