最近Python学到了项目开发,里面有一个飞机大战的项目挺感兴趣的,不过只是把别人做过的项目重做一遍未免太无聊,所以打算做一个究极迫害版。

首先是对原来项目图片的处理

在上面的图片中,原来是战机的图片被我用朋友的照片覆盖,为了简便操作,我没有使用ps,只是使用了电脑自带的画图3D进行图片的修改,所以显得比较粗糙。

接下来就是代码部分了,不过相信很多朋友已经接触过相关的飞机大战项目,所以直接放代码。

主函数代码___

import pygame
import sys
import traceback
import myplane
import enemy
import bullet
import supplyfrom pygame.locals import *
from random import *pygame.init()
pygame.mixer.init()bg_size = width,height = 480,700
screen = pygame.display.set_mode(bg_size)
pygame.display.set_caption("The Crazy Plane")background = pygame.image.load("images/background.png").convert()BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
WHITE = (255, 255, 255)#loading music
pygame.mixer.music.load("sound/game_music.ogg")
pygame.mixer.music.set_volume(0.2)
bullet_sound = pygame.mixer.Sound("sound/bullet.wav")
bullet_sound.set_volume(0.2)
bomb_sound = pygame.mixer.Sound("sound/bomb.wav")
bomb_sound.set_volume(0.2)
supply_sound = pygame.mixer.Sound("sound/supply.wav")
supply_sound.set_volume(0.2)
get_bomb_sound = pygame.mixer.Sound("sound/get_bomb.wav")
get_bomb_sound.set_volume(0.2)
get_bullet_sound = pygame.mixer.Sound("sound/get_bullet.wav")
get_bullet_sound.set_volume(0.2)
upgrade_sound = pygame.mixer.Sound("sound/upgrade.wav")
upgrade_sound.set_volume(0.2)
enemy3_fly_sound = pygame.mixer.Sound("sound/enemy3_fly.wav")
enemy3_fly_sound.set_volume(0.2)
enemy1_down_sound = pygame.mixer.Sound("sound/enemy1_down.wav")
enemy1_down_sound.set_volume(0.1)
enemy2_down_sound = pygame.mixer.Sound("sound/enemy2_down.wav")
enemy2_down_sound.set_volume(0.2)
enemy3_down_sound = pygame.mixer.Sound("sound/enemy3_down.wav")
enemy3_down_sound.set_volume(0.5)
me_down_sound = pygame.mixer.Sound("sound/me_down.wav")
me_down_sound.set_volume(0.2)def add_small_enemies(group1, group2, num):for i in range(num):e1 = enemy.SmallEnemy(bg_size)group1.add(e1)group2.add(e1)def add_mid_enemies(group1, group2, num):for i in range(num):e2 = enemy.MidEnemy(bg_size)group1.add(e2)group2.add(e2)def add_big_enemies(group1, group2, num):for i in range(num):e3 = enemy.BigEnemy(bg_size)group1.add(e3)group2.add(e3)def inc_speed(target, inc):for each in target:each.speed += incdef main():pygame.mixer.music.play(-1)#生成我方飞机me = myplane.MyPlane(bg_size)enemies = pygame.sprite.Group()#生成敌方小飞机small_enemies = pygame.sprite.Group()add_small_enemies(small_enemies, enemies, 15)#生成敌方中飞机mid_enemies = pygame.sprite.Group()add_mid_enemies(mid_enemies, enemies, 4)#生成敌方小飞机big_enemies = pygame.sprite.Group()add_big_enemies(big_enemies, enemies, 2)#生成普通子弹bullet1 = []bullet1_index = 0BULLET1_NUM = 4for i in range(BULLET1_NUM):bullet1.append(bullet.Bullet(me.rect.midtop))#生成超级子弹bullet2 = []bullet2_index = 0BULLET2_NUM = 8for i in range(BULLET2_NUM//2):bullet2.append(bullet.Bullet2((me.rect.centerx - 33, me.rect.centery)))bullet2.append(bullet.Bullet2((me.rect.centerx + 30, me.rect.centery)))clock = pygame.time.Clock()#中弹图片索引e1_destroy_index = 0e2_destroy_index = 0e3_destroy_index = 0me_destroy_index = 0#统计得分score = 0score_font = pygame.font.Font("font/font.ttf",36)#标志是否暂停游戏paused = Falsepause_nor_image = pygame.image.load("images/pause_nor.png").convert_alpha()pause_pressed_image = pygame.image.load("images/pause_pressed.png").convert_alpha()resume_nor_image = pygame.image.load("images/resume_nor.png").convert_alpha()resume_pressed_image = pygame.image.load("images/resume_pressed.png").convert_alpha()paused_rect = pause_nor_image.get_rect()paused_rect.left, paused_rect.top = width - paused_rect.width - 10, 10paused_image = pause_nor_image#设置难度级别level = 1#全屏炸弹bomb_image = pygame.image.load("images/bomb.png").convert_alpha()bomb_rect = bomb_image.get_rect()bomb_font = pygame.font.Font("font/font.ttf",48)bomb_num = 3#每30秒发放一个补给包bullet_supply = supply.Bullet_Supply(bg_size)bomb_supply = supply.Bomb_Supply(bg_size)SUPPLY_TIME = USEREVENTpygame.time.set_timer(SUPPLY_TIME, 30 * 1000)#超级子弹定时器DOUBLE_BULLET_TIME = USEREVENT + 1#标志是否使用超级子弹is_double_bullet = False#解除我方无敌状态计时器INVINCIBLE_TIME = USEREVENT + 2#生命数量life_image = pygame.image.load("images/life.png").convert_alpha()life_rect = life_image.get_rect()life_num = 3#用于切换图片switch_image = True#用于延迟delay = 100running = Truewhile running:for event in pygame.event.get():if event.type == QUIT:pygame.quit()sys.exit()elif event.type == MOUSEBUTTONDOWN:if event.button == 1 and paused_rect.collidepoint(event.pos):paused = not pausedif paused:pygame.time.set_timer(SUPPLY_TIME, 0)pygame.mixer.music.pause()                       pygame.mixer.pause()else:pygame.time.set_timer(SUPPLY_TIME, 30 * 1000)pygame.mixer.music.unpause()                       pygame.mixer.unpause()                       elif event.type == MOUSEMOTION:if paused_rect.collidepoint(event.pos):if paused:paused_image = resume_pressed_imageelse:paused_image = pause_pressed_imageelse:if paused:paused_image = resume_nor_imageelse:paused_image = pause_nor_imageelif event.type == KEYDOWN:if event.key == K_SPACE:if bomb_num:bomb_num -= 1bomb_sound.play()for each in enemies:if each.rect.bottom > 0:each.active = Falseelif event.type == SUPPLY_TIME:supply_sound.play()if choice([True, False]):bomb_supply.reset()else:bullet_supply.reset()elif event.type == DOUBLE_BULLET_TIME:is_double_bullet = Falsepygame.time.set_timer(DOUBLE_BULLET_TIME, 0)elif event.type == INVINCIBLE_TIME:me.invincible = Falsepygame.time.set_timer(INVINCIBLE_TIME, 0)#根据得分增加难度if level == 1 and score >50000:level = 2upgrade_sound.play()#增加3架小飞机,2架中飞机和一架大型机add_small_enemies(small_enemies, enemies, 3)add_mid_enemies(mid_enemies, enemies, 2)add_big_enemies(big_enemies, enemies, 1)#提升小飞机的速度inc_speed(small_enemies, 1)elif level == 2 and score > 300000:level = 3upgrade_sound.play()#增加5架小飞机,3架中飞机和2架大型机add_small_enemies(small_enemies, enemies, 5)add_mid_enemies(mid_enemies, enemies, 3)add_big_enemies(big_enemies, enemies, 2)#提升飞机的速度inc_speed(small_enemies, 1)inc_speed(mid_enemies, 1)elif level == 3 and score > 600000:level = 4upgrade_sound.play()#增加3架小飞机,2架中飞机和一架大型机add_small_enemies(small_enemies, enemies, 5)add_mid_enemies(mid_enemies, enemies, 3)add_big_enemies(big_enemies, enemies, 2)#提升飞机的速度inc_speed(small_enemies, 1)inc_speed(mid_enemies, 1)elif level == 4 and score > 1000000:level = 5upgrade_sound.play()#增加3架小飞机,2架中飞机和一架大型机add_small_enemies(small_enemies, enemies, 5)add_mid_enemies(mid_enemies, enemies, 3)add_big_enemies(big_enemies, enemies, 2)#提升小飞机的速度inc_speed(small_enemies, 1)inc_speed(mid_enemies, 1)screen.blit(background,(0,0))if life_num and not paused:#检测键盘操作key_pressed = pygame.key.get_pressed()if key_pressed[K_w] or key_pressed[K_UP]:me.moveUp()if key_pressed[K_s] or key_pressed[K_DOWN]:me.moveDown()if key_pressed[K_a] or key_pressed[K_LEFT]:me.moveLeft()if key_pressed[K_d] or key_pressed[K_RIGHT]:me.moveRight()#绘制全屏炸弹补给并检测是否获得if bomb_supply.active:bomb_supply.move()screen.blit(bomb_supply.image, bomb_supply.rect)if pygame.sprite.collide_mask(bomb_supply, me):get_bomb_sound.play()if bomb_num <3:bomb_num += 1bomb_supply.active = False#绘制超级子弹补给并检测是否获得if bullet_supply.active:bullet_supply.move()screen.blit(bullet_supply.image, bullet_supply.rect)if pygame.sprite.collide_mask(bullet_supply, me):get_bullet_sound.play()is_double_bullet = Truepygame.time.set_timer(DOUBLE_BULLET_TIME, 18 * 1000)bullet_supply.active = False#发射子弹if not(delay % 10):bullet_sound.play()if is_double_bullet:bullets = bullet2bullets[bullet2_index].reset((me.rect.centerx - 33, me.rect.centery))bullets[bullet2_index+1].reset((me.rect.centerx + 30, me.rect.centery))bullet2_index = (bullet2_index + 2) % BULLET2_NUMelse:bullets = bullet1bullets[bullet1_index].reset(me.rect.midtop)bullet1_index = (bullet1_index + 1) % BULLET1_NUM#检测子弹是否命中for b in bullets:if b.active:b.move()screen.blit(b.image, b.rect)enemy_hit = pygame.sprite.spritecollide(b, enemies, False, pygame.sprite.collide_mask)if enemy_hit:b.active = Falsefor e in enemy_hit:if e in mid_enemies or e in big_enemies:e.hit = Truee.energy -= 1if e.energy == 0:e.active = Falseelse:e.active = False#绘制大型敌机for each in big_enemies:if each.active:each.move()if each.hit:screen.blit(each.image_hit, each.rect)each.hit = Falseelse:if switch_image:screen.blit(each.image1, each.rect)else:screen.blit(each.image2, each.rect)#绘制血条pygame.draw.line(screen, BLACK, \(each.rect.left, each.rect.top - 5), \(each.rect.right, each.rect.top - 5), \2)#生命低于20%显示红色,否则为绿色energy_remain = each.energy / enemy.BigEnemy.energyif energy_remain > 0.2:energy_color = GREENelse:energy_color = REDpygame.draw.line(screen, energy_color, \(each.rect.left, each.rect.top - 5), \(each.rect.left + each.rect.width * energy_remain, \each.rect.top - 5), 2)#boss出现前的音效if each.rect.bottom == -50:enemy3_fly_sound.play(-1)else:#毁灭if not(delay % 3):if e3_destroy_index == 0:enemy3_down_sound.play()screen.blit(each.destroy_images[e3_destroy_index],each.rect)e3_destroy_index = (e3_destroy_index + 1) % 6if e3_destroy_index == 0:enemy3_fly_sound.stop()score += 10000each.reset()#绘制中型敌机for each in mid_enemies:if each.active:each.move()if each.hit:screen.blit(each.image_hit, each.rect)each.hit = Falseelse:screen.blit(each.image, each.rect)#绘制血条pygame.draw.line(screen, BLACK, \(each.rect.left, each.rect.top - 5), \(each.rect.right, each.rect.top - 5), \2)#生命低于20%显示红色,否则为绿色energy_remain = each.energy / enemy.MidEnemy.energyif energy_remain > 0.2:energy_color = GREENelse:energy_color = REDpygame.draw.line(screen, energy_color, \(each.rect.left, each.rect.top - 5), \(each.rect.left + each.rect.width * energy_remain, \each.rect.top - 5), 2)else:#毁灭if not(delay % 3):if e2_destroy_index == 0:enemy2_down_sound.play()screen.blit(each.destroy_images[e2_destroy_index],each.rect)e2_destroy_index = (e2_destroy_index + 1) % 4if e2_destroy_index == 0:score +=6000each.reset()#绘制小型敌机for each in small_enemies:if each.active:each.move()screen.blit(each.image, each.rect)else:#毁灭if not(delay % 3):if e1_destroy_index == 0:enemy1_down_sound.play()screen.blit(each.destroy_images[e1_destroy_index],each.rect)e1_destroy_index = (e1_destroy_index + 1) % 4if e1_destroy_index == 0:score += 1000each.reset()#检测我方飞机是否被撞enemies_down = pygame.sprite.spritecollide(me, enemies, False,pygame.sprite.collide_mask)if enemies_down and not me.invincible:me.active = Falsefor e in enemies_down:e.active = False#绘制我方飞机if me.active:if switch_image:screen.blit(me.image1, me.rect)else:screen.blit(me.image2, me.rect)else:#毁灭if not(delay % 3):if me_destroy_index == 0:me_down_sound.play()screen.blit(me.destroy_images[me_destroy_index],each.rect)me_destroy_index = (me_destroy_index + 1) % 4if me_destroy_index == 0:life_num -= 1me.reset()pygame.time.set_timer(INVINCIBLE_TIME, 3 * 1000)#绘制全屏炸弹数量bomb_text = bomb_font.render("x %d" % bomb_num, True, WHITE)text_rect = bomb_text.get_rect()screen.blit(bomb_image,(10, height - 10 - bomb_rect.height))screen.blit(bomb_text,(20 + bomb_rect.width, height - 5 - text_rect.height))#绘制生命数量if life_num:for i in range(life_num):screen.blit(life_image, \(width-10-(i+1)*life_rect.width, \height-10-life_rect.height))#绘制游戏结束画面elif life_num == 0:#背景音乐停止pygame.mixer.music.stop()#停止全部音效pygame.mixer.stop()#停止补给pygame.time.set_timer(SUPPLY_TIME, 0)#绘制得分score_text = score_font.render("Score : %s" % str(score), True, WHITE)screen.blit(score_text,(10, 5))#绘制暂停按钮screen.blit(paused_image, paused_rect)#切换图片if delay:switch_image = not switch_imagedelay -= 1if not delay:delay = 100pygame.display.flip()clock.tick(60)if __name__ == "__main__":try:main()except SystemExit:passexcept:traceback.print_exc()pygame.quit()input()

子弹模块__

import pygameclass Bullet(pygame.sprite.Sprite):def __init__(self, position):pygame.sprite.Sprite.__init__(self)self.image = pygame.image.load("images/bullet1.png").convert_alpha()self.rect = self.image.get_rect()self.rect.left, self.rect.top = positionself.speed = 12self.active = Falseself.mask = pygame.mask.from_surface(self.image)def move(self):self.rect.top -= self.speedif self.rect.top < 0:self.active = Falsedef reset(self, position):self.rect.left, self.rect.top = positionself.active = Trueclass Bullet2(pygame.sprite.Sprite):def __init__(self, position):pygame.sprite.Sprite.__init__(self)self.image = pygame.image.load("images/bullet2.png").convert_alpha()self.rect = self.image.get_rect()self.rect.left, self.rect.top = positionself.speed = 14self.active = Falseself.mask = pygame.mask.from_surface(self.image)def move(self):self.rect.top -= self.speedif self.rect.top < 0:self.active = Falsedef reset(self, position):self.rect.left, self.rect.top = positionself.active = True

敌机模块__

import pygame
from random import *class SmallEnemy(pygame.sprite.Sprite):def __init__(self,bg_size):pygame.sprite.Sprite.__init__(self)self.image = pygame.image.load("images/enemy1.png").convert_alpha()self.destroy_images = []self.destroy_images.extend([\pygame.image.load("images/enemy1_down1.png").convert_alpha(), \pygame.image.load("images/enemy1_down2.png").convert_alpha(), \pygame.image.load("images/enemy1_down3.png").convert_alpha(), \pygame.image.load("images/enemy1_down4.png").convert_alpha() \])self.rect = self.image.get_rect()self.width,self.height = bg_size[0], bg_size[1]self.speed = 2self.active = Trueself.rect.left, self.rect.top = \randint(7,self.width - self.rect.width - 7), \randint(-5 * self.height, 0)self.mask = pygame.mask.from_surface(self.image)def move(self):if self.rect.top < self.height:self.rect.top += self.speedelse:self.reset()def reset(self):self.active = Trueself.rect.left, self.rect.top = \randint(0,self.width - self.rect.width), \randint(-5 * self.height, 0)class MidEnemy(pygame.sprite.Sprite):energy = 8def __init__(self,bg_size):pygame.sprite.Sprite.__init__(self)self.image = pygame.image.load("images/enemy2.png").convert_alpha()self.image_hit = pygame.image.load("images/enemy2_hit.png").convert_alpha()self.destroy_images = []self.destroy_images.extend([\pygame.image.load("images/enemy2_down1.png").convert_alpha(), \pygame.image.load("images/enemy2_down2.png").convert_alpha(), \pygame.image.load("images/enemy2_down3.png").convert_alpha(), \pygame.image.load("images/enemy2_down4.png").convert_alpha() \])self.rect = self.image.get_rect()self.width,self.height = bg_size[0], bg_size[1]self.speed = 1self.active = Trueself.rect.left, self.rect.top = \randint(0,self.width - self.rect.width), \randint(-10 * self.height, -self.height)self.mask = pygame.mask.from_surface(self.image)self.energy = MidEnemy.energyself.hit = Falsedef move(self):if self.rect.top < self.height:self.rect.top += self.speedelse:self.reset()def reset(self):self.active = Trueself.energy = MidEnemy.energyself.rect.left, self.rect.top = \randint(0,self.width - self.rect.width), \randint(-10 * self.height, -self.height)class BigEnemy(pygame.sprite.Sprite):energy = 20def __init__(self,bg_size):pygame.sprite.Sprite.__init__(self)self.image1 = pygame.image.load("images/enemy3_n1.png").convert_alpha()self.image2 = pygame.image.load("images/enemy3_n2.png").convert_alpha()self.image_hit = pygame.image.load("images/enemy3_hit.png").convert_alpha()self.destroy_images = []self.destroy_images.extend([\pygame.image.load("images/enemy3_down1.png").convert_alpha(), \pygame.image.load("images/enemy3_down2.png").convert_alpha(), \pygame.image.load("images/enemy3_down3.png").convert_alpha(), \pygame.image.load("images/enemy3_down4.png").convert_alpha(), \pygame.image.load("images/enemy3_down5.png").convert_alpha(), \pygame.image.load("images/enemy3_down6.png").convert_alpha() \])self.rect = self.image1.get_rect()self.width,self.height = bg_size[0], bg_size[1]self.speed = 1self.active = Trueself.rect.left, self.rect.top = \randint(0,self.width - self.rect.width), \randint(-15 * self.height, -5 * self.height)self.mask = pygame.mask.from_surface(self.image1)self.energy = BigEnemy.energyself.hit = Falsedef move(self):if self.rect.top < self.height:self.rect.top += self.speedelse:self.reset()def reset(self):self.active = Trueself.energy = BigEnemy.energyself.rect.left, self.rect.top = \randint(0,self.width - self.rect.width), \randint(-15  * self.height, -5 * self.height)

我方飞机模块__

import pygameclass MyPlane(pygame.sprite.Sprite):def __init__(self,bg_size):pygame.sprite.Sprite.__init__(self)self.image1 = pygame.image.load("images/me1.png").convert_alpha()self.image2 = pygame.image.load("images/me2.png").convert_alpha()self.destroy_images = []self.destroy_images.extend([\pygame.image.load("images/me_destroy1.png").convert_alpha(), \pygame.image.load("images/me_destroy2.png").convert_alpha(), \pygame.image.load("images/me_destroy3.png").convert_alpha(), \pygame.image.load("images/me_destroy4.png").convert_alpha() \])self.rect = self.image1.get_rect()self.width, self.height = bg_size[0], bg_size[1]self.rect.left, self.rect.top = \(self.width - self.rect.width) // 2, \self.height - self.rect.height - 60self.speed = 10self.active = Trueself.invincible = Falseself.mask = pygame.mask.from_surface(self.image1)def moveUp(self):if self.rect.top > 0:self.rect.top -= self.speedelse:self.rect.top = 0def moveDown(self):if self.rect.bottom < self.height - 60:self.rect.top += self.speedelse:self.rect.bottom = self.height - 60def moveLeft(self):if self.rect.left > 0:self.rect.left -= self.speedelse:self.rect.left = 0def moveRight(self):if self.rect.right < self.width:self.rect.left += self.speedelse:self.rect.right = self.widthdef reset(self):self.rect.left, self.rect.top = \(self.width - self.rect.width) // 2, \self.height - self.rect.height - 60self.active = Trueself.invincible = True

补给模块__

import pygameclass MyPlane(pygame.sprite.Sprite):def __init__(self,bg_size):pygame.sprite.Sprite.__init__(self)self.image1 = pygame.image.load("images/me1.png").convert_alpha()self.image2 = pygame.image.load("images/me2.png").convert_alpha()self.destroy_images = []self.destroy_images.extend([\pygame.image.load("images/me_destroy1.png").convert_alpha(), \pygame.image.load("images/me_destroy2.png").convert_alpha(), \pygame.image.load("images/me_destroy3.png").convert_alpha(), \pygame.image.load("images/me_destroy4.png").convert_alpha() \])self.rect = self.image1.get_rect()self.width, self.height = bg_size[0], bg_size[1]self.rect.left, self.rect.top = \(self.width - self.rect.width) // 2, \self.height - self.rect.height - 60self.speed = 10self.active = Trueself.invincible = Falseself.mask = pygame.mask.from_surface(self.image1)def moveUp(self):if self.rect.top > 0:self.rect.top -= self.speedelse:self.rect.top = 0def moveDown(self):if self.rect.bottom < self.height - 60:self.rect.top += self.speedelse:self.rect.bottom = self.height - 60def moveLeft(self):if self.rect.left > 0:self.rect.left -= self.speedelse:self.rect.left = 0def moveRight(self):if self.rect.right < self.width:self.rect.left += self.speedelse:self.rect.right = self.widthdef reset(self):self.rect.left, self.rect.top = \(self.width - self.rect.width) // 2, \self.height - self.rect.height - 60self.active = Trueself.invincible = True

在项目中使用了许多音效和字体,通过pygame模块进行调用。

经过这一整个项目的联系,基本能够将Pygame所有的函数都用一遍。

最终效果

Python飞机大战(究极迫害版)相关推荐

  1. python入门笔记——飞机大战(极简版、未进行继承优化)

    python入门笔记--飞机大战(极简版.未进行继承优化) import random import pygame# 引用pygame里的模块 from pygame.locals import *# ...

  2. C++的学习心得和知识总结(十六)|基于EasyX实现小甲鱼Python飞机大战项目(C++版)

    目录结构 注:提前言明 本文借鉴了以下博主.书籍或网站的内容,其列表如下: 1.小甲鱼Python项目 – 飞机大战 2.本文使用的掩码图生成工具 自动生成遮罩图的程序,点击前往 3.EasyX官方链 ...

  3. python飞机大战联网版_Python 飞机大战搞怪版本

    python 飞机大战搞怪版本 (飞机为迷你亚索,外星人为迷你小诺手,由于时间关系和图片素材较难寻找,仅仅做了简易版,没有贴上背景图片.由于篇幅原因,对于函数讲解较为简略,可以自行搜索相应函数的用法) ...

  4. python飞机大战,感受python的乐趣(详细中文解读,含完整代码)

    python飞机大战 本文章代码是根据<python编程从入门到实践>(第2版)编写而成. 1.外星人部分代码 import pygame from pygame.sprite impor ...

  5. python飞机大战设计思路_python飞机大战pygame游戏背景设计详解

    本文实例讲述了python飞机大战pygame游戏背景设计.分享给大家供大家参考,具体如下: 目标 背景交替滚动的思路确定 显示游戏背景 01. 背景交替滚动的思路确定 运行 备课代码,观察 背景图像 ...

  6. python飞机大战功能模块图_基于Python的飞机大战游戏设计

    第 2 3 卷 第 1 期 2019年 3 月 扬 州 职 业 大 学 学 报 Journal of Yangzhou Polytechnic College Vol .23 No . 1 Mar . ...

  7. python飞机大战没有运行界面_python3实现飞机大战

    本文实例为大家分享了python3实现飞机大战的具体代码,供大家参考,具体内容如下 以下是亲测Python飞机大战全部代码,在保证有pygame环境支持并且有Python3解释器的话完全没问题! 如果 ...

  8. python飞机大战任务报告_Python飞机大战实战项目案例

    都说实践是检验知识掌握程度的最好测试.随着Python学习者的增长,越来越多的零基础入门课程让人眼花缭乱.虽然说基础理论的学习十分重要,但是如果仅仅只学习理论知识,也是远远不够的.飞机大战的项目实战可 ...

  9. Python 飞机大战游戏中 获取被击中飞机的坐标位置信息

    Python 飞机大战游戏中 获取被击中飞机的坐标位置信息 在参考现有的飞机大战游戏代码,写第一个python游戏,子弹击中飞机后,飞机消失,想着如果能有爆照效果就好了. 于是新建了一个爆炸效果的sp ...

最新文章

  1. linux进程间通讯-有名管道
  2. sphinx 全文搜索引擎
  3. 一个不错的Spectral Clustering方法的总结
  4. vSphere ESXi命令行使用方法详解
  5. buffer 与cache 的区别
  6. java使用集合存储过程_详解java调用存储过程并封装成map
  7. bzoj1208: [HNOI2004]宠物收养所
  8. 【转】BaseAdapter用法
  9. word 替换 增加引号_如何在Word 2013文档中替换部分(不是全部)智能引号
  10. Android笔记 - android 类型转化错误
  11. python从mongodb里取出数据进行可视化_Python数据分析及可视化实例之MongoDB增删改查...
  12. 关于 Appium 各种版本的安装,都在这里
  13. PTA 7-2 深入虎穴 (30 分)
  14. Python3 encode中的unicode-escape和raw_unicode_escape
  15. java 纯真ip数据库_纯真IP数据库格式读取方法(JAVA/PHP/Python)
  16. PDF颜色翻转以方便打印处理
  17. C# ILDASM 使用
  18. win10很多软件显示模糊_win10系统字体模糊的解决方法
  19. 自动驾驶笔记-轨迹跟踪-综述
  20. 使用iTunes制作iPhone6s plus铃声

热门文章

  1. Windows远程控制家里的电脑
  2. 奇葩90后引领了哪些互联网潮流?
  3. python编程midi键盘按键错乱_键盘按键错乱有以下几种相应的解决办法
  4. 基于红外感应的远距离智能跟随小车,自动跟随小车
  5. 政企数智办公潮水里的融云「答卷」
  6. GitLab 服务搭建
  7. 扫雷用递归实现拓展空白详解
  8. 大数据学习路线(完整详细版)
  9. qq邮箱服务器连接错误代码,qq邮箱错误代码103打不开是怎么回事
  10. 鸿蒙适配机型小米,华为鸿蒙适配机型公布 P50首发/小米10S才是真正至尊版