【Python游戏】在这款程序员游戏新作《现代空战—战机游戏》里,你可以体验一把紧张的空战感觉、刺激鸭~打飞机游戏都能有那么多骚操作……

这篇具有很好参考价值的文章主要介绍了【Python游戏】在这款程序员游戏新作《现代空战—战机游戏》里,你可以体验一把紧张的空战感觉、刺激鸭~打飞机游戏都能有那么多骚操作……。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

导语

不知道大家有没有幻想过遨游在广阔蓝天进行惊险的空战吗?

所有文章完整的素材+源码都在👇👇

粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。

【Python游戏】在这款程序员游戏新作《现代空战—战机游戏》里,你可以体验一把紧张的空战感觉、刺激鸭~打飞机游戏都能有那么多骚操作……

虽然这样的画面常常只会出现在电影之中,但小编今天给大家编写的一款Python游戏新作《现

代空战—战机游戏》倒也能让你在游戏中体验一把紧张的空战感觉!

【Python游戏】在这款程序员游戏新作《现代空战—战机游戏》里,你可以体验一把紧张的空战感觉、刺激鸭~打飞机游戏都能有那么多骚操作……

《现代空战—战机游戏》是一款空战射击游戏,游戏画面可谓是空前的“漂亮”~在你一进入游戏

之时,便很难不被眼前科技感十足、简洁有力的页面设计所吸引,背景音乐让即将发生的空中

大战呼之欲出!逼真的场景又会让你产生极强的代入感!蔚蓝的广阔天空一览无余!

一切的精心设计都旨在打造一个壮阔真实的空中视角!

飞机游戏是以飞机为题材的,不同款游戏中飞机起到的效果也是不相同的。当然飞机类游戏拥

有惊艳的画面效果和运行体验,下面跟着小编继续往下看吧~

【Python游戏】在这款程序员游戏新作《现代空战—战机游戏》里,你可以体验一把紧张的空战感觉、刺激鸭~打飞机游戏都能有那么多骚操作……

正文

《现代空战—战机游戏》可以说算是一款界面技术性、以及趣味性都比较ok💯的飞行射击游戏

了。小编自己还是很满意💯的,游戏画面还是游戏效果都编写了的,不信你往下看?!😀

一、环境准备中

 1)运行环境 

 环境安装:Python 3.8: 解释器、pycharm: 代码编辑器,游戏模块Pygame需要安装的模块如 

 下 2)的模块安装方式安装即可。自带的一些模块 直接安装Python就可以使用了。

 相对应的安装包/安装教程/激活码/使用教程/学 习资料/工具插件 可以直接找我厚台获取 。 

 2)模块安装 

 第三方库的安装方式如下:

 一般安装:pip install +模块名 

镜像源安装:pip install -i  https://pypi.douban.com/simple/+模块名 

 (还有很多国内镜像源,这里是豆瓣的用习惯 了,其他镜像源可以去看下之前文章都有的) 

 模块安装问题可以详细的找我给大家讲一下的哈,之前其实也有的文章写了几个点的。 

3)素材(仅部分)

【Python游戏】在这款程序员游戏新作《现代空战—战机游戏》里,你可以体验一把紧张的空战感觉、刺激鸭~打飞机游戏都能有那么多骚操作……

二、代码展示

1)模块导入

import pygame
import sys
import traceback
import my_plane
import enemy_plane
import my_bullet
import supply
import random

2)导入各类图片、字体、音乐等

def main():
	speed = [0,0]
	bg_size = width,height = 500,800
	screen = pygame.display.set_mode(bg_size)
	pygame.display.set_caption('现代空战—战机游戏')
	#载入图片
	background = pygame.image.load('image/sky.png').convert_alpha()
	pause_image1 = pygame.image.load('image/pause_image1.png').convert_alpha()
	pause_image2 = pygame.image.load('image/pause_image2.png').convert_alpha()
	resume_image1 = pygame.image.load('image/resume_image1.png').convert_alpha()
	resume_image2 = pygame.image.load('image/resume_image2.png').convert_alpha()
	bomb_image = pygame.image.load('image/bomb.png').convert_alpha()
	life_image = pygame.image.load('image/life.png').convert_alpha()
	
	#结束画面
	end_image = pygame.image.load('image/end.png').convert_alpha()
	button_end = pygame.image.load('image/button_end.png').convert_alpha()
	button_end2 = pygame.image.load('image/button_end2.png').convert_alpha()
	#给结束人物定位
	end_image_rect = end_image.get_rect()
	end_image_rect.left,end_image_rect.top = 10,10
	font_end = pygame.font.Font('font/font2.ttf',80)
	font_end2 = pygame.font.Font('font/font2.ttf',31)
	font_end3 = pygame.font.Font('font/font2.ttf',40)
	
	#给飞机生命值图标定位
	life_image_rect = life_image.get_rect()
	life_num = 3
	#给暂停图标定位
	pause_image1_rect = pause_image1.get_rect()
	pause_image1_rect.left,pause_image1_rect.top = width -50 ,10
	pause_image = pause_image1
	#给炸弹图标定位
	bomb_rect = bomb_image.get_rect()
	bomb_rect.left, bomb_rect.top = 10,height-50
	#载入音乐
	pygame.mixer.music.load('sound/bg_music1.ogg')
	main_music = pygame.mixer.Sound('sound/main_theme.wav')
	big_music = pygame.mixer.Sound('sound/big_music.wav')
	mine_music = pygame.mixer.Sound('sound/tank_music.wav')
	small_boom_music = pygame.mixer.Sound('sound/small_boom.wav')
	bomb_music = pygame.mixer.Sound('sound/bomb_sound.wav')
	bullet_music = pygame.mixer.Sound('sound/bullet_sound.wav')
	supply_music = pygame.mixer.Sound('sound/supply_sound.wav')
	myplane_music = pygame.mixer.Sound('sound/myplane_boom.wav')
	
	bg_image = pygame.image.load('image/bg_image.png').convert_alpha()
	button_image = pygame.image.load('image/button.png').convert_alpha()
	button2_image = pygame.image.load('image/button2.png').convert_alpha()
	font = pygame.font.Font('font/font.ttf',38)

3)生成敌我双方子弹、不同等级飞机类型

me = my_plane.MyPlane(bg_size)

	enemies = pygame.sprite.Group()
	#生成敌方小型飞机
	small_enemies = pygame.sprite.Group()
	add_small_enemies(small_enemies,enemies,15)
	#生成敌方中型飞机
	middle_enemies = pygame.sprite.Group()
	add_middle_enemies(middle_enemies,enemies,4)
	#生成敌方大型飞机
	big_enemies = pygame.sprite.Group()
	add_big_enemies(big_enemies,enemies,1)
	#生成我方子弹
	bullet1 = []
	bullet1_num = 4
	for i in range(bullet1_num):
		bullet1.append(my_bullet.Bullet1(me.rect.midtop))
	#生成我方超级子弹
	bullet2 = []
	bullet2_num = 8
	for i in range(bullet2_num//2):
		bullet2.append(my_bullet.Bullet2((me.rect.centerx-34,me.rect.centery)))
		bullet2.append(my_bullet.Bullet2((me.rect.centerx+30,me.rect.centery)))

4)完整主程序

import pygame
import sys
import traceback
import my_plane
import enemy_plane
import my_bullet
import supply
import random

pygame.init()
pygame.mixer.init()
clock = pygame.time.Clock()



def main():
	speed = [0,0]
	bg_size = width,height = 500,800
	screen = pygame.display.set_mode(bg_size)
	pygame.display.set_caption('现代空战—战机游戏')
	#载入图片
	background = pygame.image.load('image/sky.png').convert_alpha()
	pause_image1 = pygame.image.load('image/pause_image1.png').convert_alpha()
	pause_image2 = pygame.image.load('image/pause_image2.png').convert_alpha()
	resume_image1 = pygame.image.load('image/resume_image1.png').convert_alpha()
	resume_image2 = pygame.image.load('image/resume_image2.png').convert_alpha()
	bomb_image = pygame.image.load('image/bomb.png').convert_alpha()
	life_image = pygame.image.load('image/life.png').convert_alpha()
	
	#结束画面
	end_image = pygame.image.load('image/end.png').convert_alpha()
	button_end = pygame.image.load('image/button_end.png').convert_alpha()
	button_end2 = pygame.image.load('image/button_end2.png').convert_alpha()
	#给结束人物定位
	end_image_rect = end_image.get_rect()
	end_image_rect.left,end_image_rect.top = 10,10
	font_end = pygame.font.Font('font/font2.ttf',80)
	font_end2 = pygame.font.Font('font/font2.ttf',31)
	font_end3 = pygame.font.Font('font/font2.ttf',40)
	
	#给飞机生命值图标定位
	life_image_rect = life_image.get_rect()
	life_num = 3
	#给暂停图标定位
	pause_image1_rect = pause_image1.get_rect()
	pause_image1_rect.left,pause_image1_rect.top = width -50 ,10
	pause_image = pause_image1
	#给炸弹图标定位
	bomb_rect = bomb_image.get_rect()
	bomb_rect.left, bomb_rect.top = 10,height-50
	#载入音乐
	pygame.mixer.music.load('sound/bg_music1.ogg')
	main_music = pygame.mixer.Sound('sound/main_theme.wav')
	big_music = pygame.mixer.Sound('sound/big_music.wav')
	mine_music = pygame.mixer.Sound('sound/tank_music.wav')
	small_boom_music = pygame.mixer.Sound('sound/small_boom.wav')
	bomb_music = pygame.mixer.Sound('sound/bomb_sound.wav')
	bullet_music = pygame.mixer.Sound('sound/bullet_sound.wav')
	supply_music = pygame.mixer.Sound('sound/supply_sound.wav')
	myplane_music = pygame.mixer.Sound('sound/myplane_boom.wav')
	
	bg_image = pygame.image.load('image/bg_image.png').convert_alpha()
	button_image = pygame.image.load('image/button.png').convert_alpha()
	button2_image = pygame.image.load('image/button2.png').convert_alpha()
	font = pygame.font.Font('font/font.ttf',38)
	#获取button的位置和大小
	button_rect = button_image.get_rect()
	button2_rect = button_image.get_rect()
	button_rect.left,button_rect.top = width//2 - button_rect.width/2,height//2-button_rect.height - 10
	button2_rect.left,button2_rect.top = width//2 - button_rect.width/2,height//2+20
	button_images1 = button_image
	button_images2 = button_image
	
	#当游戏重新开始时,调用重置方法
	game_reset = False
	
	def add_small_enemies(group1,group2,num):
		e1 = enemy_plane.SmallEnemy(bg_size)
		for i in range(num):
			e1 = enemy_plane.SmallEnemy(bg_size)
			group1.add(e1)
			group2.add(e1)
	def add_middle_enemies(group1,group2,num):
		e2 = enemy_plane.MiddleEnemy(bg_size)
		for i in range(num):
			group1.add(e2)
			group2.add(e2)
	def add_big_enemies(group1,group2,num):
		e3 = enemy_plane.BigEnemy(bg_size)
		for i in range(num):
			group1.add(e3)
			group2.add(e3)
			
	def improve_speed(group,num):
		for each in group:
			each.speed += num
	def bomb(group):
		for each in group:
			if each.rect.bottom > 0:
				each.active = False
			
	#生成我的飞机
	me = my_plane.MyPlane(bg_size)

	enemies = pygame.sprite.Group()
	#生成敌方小型飞机
	small_enemies = pygame.sprite.Group()
	add_small_enemies(small_enemies,enemies,15)
	#生成敌方中型飞机
	middle_enemies = pygame.sprite.Group()
	add_middle_enemies(middle_enemies,enemies,4)
	#生成敌方大型飞机
	big_enemies = pygame.sprite.Group()
	add_big_enemies(big_enemies,enemies,1)
	#生成我方子弹
	bullet1 = []
	bullet1_num = 4
	for i in range(bullet1_num):
		bullet1.append(my_bullet.Bullet1(me.rect.midtop))
	#生成我方超级子弹
	bullet2 = []
	bullet2_num = 8
	for i in range(bullet2_num//2):
		bullet2.append(my_bullet.Bullet2((me.rect.centerx-34,me.rect.centery)))
		bullet2.append(my_bullet.Bullet2((me.rect.centerx+30,me.rect.centery)))
	
	#每30秒发放一个飞机补给包
	bullet_supply = supply.Bullet_supply(bg_size)
	bomb_supply = supply.Bomb_supply(bg_size)
	supply_time = pygame.USEREVENT
	pygame.time.set_timer(supply_time,15*1000)
	#超级子弹定时器
	double_bullet_time = pygame.USEREVENT + 1
	#无敌状态定时器
	invincible_time = pygame.USEREVENT + 2
	#是否使用超级子弹
	is_double_bullet = False
	#启动游戏
	ready = False
	running = True
	
	#用于阻止反复保存分数
	recorded = False
	
	#用于飞机动态效果切换
	change = True
	#用于延迟
	delay = 100
	#敌方飞机毁灭动态效果切换
	big_enemy_index = 0
	middle_enemy_index = 0
	small_enemy_index = 0
	me_index = 0
	bullet1_index = 0
	bullet2_index = 0
	bullets = []
	score = 0
	black = (0,0,0)
	green = (0,255,0)
	red = (255,0,0)
	pause = False
	level = 1
	bomb_num = 3
	main_music.play(-1)
	while running:
		for event in pygame.event.get():
			if event.type == pygame.QUIT:
				pygame.quit()
				sys.exit()
			
			#游戏开始界面
			if not ready:
				if event.type == pygame.MOUSEBUTTONDOWN:
					if event.button == 1 and button_rect.collidepoint(event.pos):
						main_music.stop()
						ready = True
						pygame.mixer.music.play(-1)
						bullet_music.play(-1)
						pygame.mixer.music.set_volume(1)
					elif event.button == 1 and button2_rect.collidepoint(event.pos):
						pygame.quit()
						sys.exit()
				if event.type == pygame.MOUSEMOTION:
					if button_rect.collidepoint(event.pos):
						button_images1 = button2_image
					else:
						button_images1 = button_image
						
					if button2_rect.collidepoint(event.pos):
							button_images2 = button2_image
					else:
						button_images2 = button_image
			else:
				#暂停/开始图标的按键检测
				if life_num:
					if event.type == pygame.MOUSEBUTTONDOWN:
						if event.button == 1 and pause_image1_rect.collidepoint(event.pos):
							pause = not pause
							if pause:
								pygame.mixer.music.pause()
								bullet_music.stop()
								pygame.time.set_timer(double_bullet_time,0)
								pygame.time.set_timer(supply_time,0)
							else:
								pygame.mixer.music.unpause()
								bullet_music.play(-1)
								pygame.time.set_timer(double_bullet_time,2*1000)
								pygame.time.set_timer(supply_time,15*1000)
					if event.type == pygame.MOUSEMOTION:
						if pause_image1_rect.collidepoint(event.pos):
							if pause:
								pause_image = pause_image2
							else:
								pause_image = resume_image2
						else:
							if pause:
								pause_image = pause_image1
							else:
								pause_image = resume_image1
					if event.type == pygame.KEYDOWN:
						if event.key == pygame.K_SPACE:
							if not pause:
								if bomb_num>0:
									bomb_music.play()
									bomb(enemies)
									bomb_num -= 1
					#响应补给事件
					if event.type == supply_time:
						if random.choice([True,False]):
							bomb_supply.active = True
						else:
							bullet_supply.active = True
					#当超级子弹的剩余时间为0
					if event.type == double_bullet_time:
						is_double_bullet = False
						pygame.time.set_timer(double_bullet_time,0)
					#当无敌状态剩余时间为0
					if event.type == invincible_time:
						me.invincible = False
						pygame.time.set_timer(invincible_time,0)

		#游戏难度等级
		if level==1 and score > 50000:
			level = 2
			add_small_enemies(small_enemies,enemies,2)
			add_middle_enemies(middle_enemies,enemies,1)
			improve_speed(small_enemies,2)
		elif level == 2 and score > 200000:
			level = 3
			add_small_enemies(small_enemies,enemies,3)
			add_middle_enemies(middle_enemies,enemies,1)
			add_big_enemies(big_enemies,enemies,1)
			improve_speed(small_enemies,2)
			improve_speed(middle_enemies,1)
		elif  level == 3 and score > 500000:
			level = 4
			add_small_enemies(small_enemies,enemies,3)
			add_middle_enemies(middle_enemies,enemies,1)
			add_big_enemies(big_enemies,enemies,1)
			improve_speed(small_enemies,2)
			improve_speed(middle_enemies,1)
			improve_speed(big_enemies,1)
		elif  level == 4 and score > 800000:
			level = 5
			add_small_enemies(small_enemies,enemies,3)
			add_middle_enemies(middle_enemies,enemies,1)
			add_big_enemies(big_enemies,enemies,1)
			improve_speed(small_enemies,2)
			improve_speed(middle_enemies,1)
			improve_speed(big_enemies,1)
			
		if not ready:
			screen.blit(bg_image,(0,0))
			screen.blit(button_images1,button_rect)
			screen.blit(button_images2,button2_rect)
			font1 = font.render('开始游戏',True,(255,0,0))
			font2 = font.render('退出',True,(255,0,0))
			screen.blit(font1,(button_rect[0]+5,button_rect[1]))
			screen.blit(font2,(button2_rect[0]+45,button2_rect[1]))
		else:
			if life_num:
				#绘制背景
				screen.blit(background,(0,0))
				#绘制当前游戏难度等级(字体)
				level_font = pygame.font.Font('font/font.ttf',30)
				level_font_content = level_font.render('level%d' %level,True,(0,0,255))
				screen.blit(level_font_content,(width//2-30,10))
				#绘制炸弹
				bomb_font = pygame.font.Font('font/font.ttf',40)
				bomb_font_content = bomb_font.render('X%d' %bomb_num,True,(255,0,0))
				screen.blit(bomb_font_content,(bomb_rect.left+50,bomb_rect.top))
				screen.blit(bomb_image,bomb_rect)
				if life_num and not pause:		
					key_pressed = pygame.key.get_pressed()
					if key_pressed[pygame.K_w] or key_pressed[pygame.K_UP]:
						me.moveUP()
					if key_pressed[pygame.K_s] or key_pressed[pygame.K_DOWN]:
						me.moveDOWN()
					if key_pressed[pygame.K_a] or key_pressed[pygame.K_LEFT]:
						me.moveLEFT()
					if key_pressed[pygame.K_d] or key_pressed[pygame.K_RIGHT]:
						me.moveRIGHT()

					#检测我方飞机是否被撞
					enemies_hit = pygame.sprite.spritecollide(me,enemies,False,pygame.sprite.collide_mask)
					if enemies_hit and not me.invincible:
						me.active = False
						for each in enemies_hit:
							each.active = False

					#绘制我的飞机
					if me.active:
						if change:
							screen.blit(me.image,me.rect)
						else:
							screen.blit(me.image2,me.rect)
						#我方飞机切换
						if not(delay % 5):
							change = not change
						delay -= 1
						if not delay:
							delay =100
					else:
						#我方飞机毁灭
						myplane_music.play()
						if not(delay%3):
							screen.blit(me.destroy_images[me_index],me.rect)
							me_index = (me_index+1)%3
						if me_index == 0:
							life_num -= 1
							me.reset()
							pygame.time.set_timer(invincible_time,3*1000)
							
					#绘制我方子弹
					if not(delay%10):
						if is_double_bullet:
							bullets = bullet2
							bullets[bullet2_index].reset((me.rect.centerx-36,me.rect.centery))
							bullets[bullet2_index+1].reset((me.rect.centerx+29,me.rect.centery))
							bullet2_index = (bullet2_index+2)%bullet2_num
						else:
							bullets = bullet1
							bullets[bullet1_index].reset((me.rect.left+me.rect.width//2-4,me.rect.top))
							bullet1_index = (bullet1_index+1)%bullet1_num
					#绘制我方子和弹碰撞检测
					for each in bullets:
						if each.active:
							each.move()
							screen.blit(each.image,each.rect)
							enemies_hit2 = pygame.sprite.spritecollide(each,enemies,False,pygame.sprite.collide_mask)
							if enemies_hit2:
								each.active = False
								for each in enemies_hit2:
									if each in middle_enemies or each in big_enemies:
										if each in big_enemies:
											each.hit = True
										each.HP -= 1
										if each.HP == 0:
											each.active = False
									else:
										each.active = False
									if each.active == False:
										small_boom_music.play()
					#绘制敌方大型飞机
					for each in big_enemies:
						if each.active:
							each.move()
							if each.hit:
								screen.blit(each.image_hit,each.rect)
								each.hit = False
							else:
								if change:
									screen.blit(each.image,each.rect)
								else:
									screen.blit(each.image2,each.rect)
							if each.rect.bottom == -100:
								pygame.mixer.music.pause()
								big_music.play()
							#绘制血条
							pygame.draw.line(screen,black,\
							(each.rect.left,each.rect.top-5),\
							(each.rect.right,each.rect.top-5),2)
							#生命值大于20%血条颜色为绿色
							enemy_remain2 = each.HP/enemy_plane.BigEnemy.HP
							if enemy_remain2 < 0.2:
								pygame.draw.line(screen,red,\
								(each.rect.left,each.rect.top-5),\
								(each.rect.left + each.rect.width*enemy_remain2,each.rect.top-5),2)
							else:
								pygame.draw.line(screen,green,\
								(each.rect.left,each.rect.top-5),\
								(each.rect.left + each.rect.width*enemy_remain2,each.rect.top-5),2)
							if each.rect.top > (each.height-10):
								big_music.stop()
								pygame.mixer.music.unpause()
						else:
							#大型飞机毁灭
							if not(delay%3):
								if big_enemy_index == 0:
									big_music.stop()
									pygame.mixer.music.unpause()
								screen.blit(each.destroy_images[big_enemy_index],each.rect)
								big_enemy_index = (big_enemy_index+1)%5
								if big_enemy_index == 0:
									score += 15000
									each.reset()


					#绘制敌方中型飞机
					for each in middle_enemies:
						if each.active:
							each.move()
							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%血条颜色为绿色
							enemy_remain1 = each.HP/enemy_plane.MiddleEnemy.HP
							if enemy_remain1 < 0.2:
								pygame.draw.line(screen,red,\
								(each.rect.left,each.rect.top-5),\
								(each.rect.left + each.rect.width*enemy_remain1,each.rect.top-5),2)
							else:
								pygame.draw.line(screen,green,\
								(each.rect.left,each.rect.top-5),\
								(each.rect.left + each.rect.width*enemy_remain1,each.rect.top-5),2)
						else:
							#中型飞机毁灭
							if not(delay%3):
								screen.blit(each.destroy_images[middle_enemy_index],each.rect)
								middle_enemy_index = (middle_enemy_index+1)%3
								if middle_enemy_index == 0:
									score += 5000
									each.reset()
						
					#绘制敌方小型飞机
					for each in small_enemies:
						if each.active:
							each.move()
							screen.blit(each.image,each.rect)
						else:
							#小型飞机毁灭
							if not(delay%5):
								screen.blit(each.destroy_images[small_enemy_index],each.rect)
								small_enemy_index = (small_enemy_index+1)%2
								if small_enemy_index == 0:
									score += 1000
									each.reset()
				
					#绘制炸弹补给并检测是否获得
					if bomb_supply.active:
						bomb_supply.move()
						screen.blit(bomb_supply.image,bomb_supply.rect)
						if pygame.sprite.collide_mask(bomb_supply,me):
							supply_music.play()
							if bomb_num < 3:
								bomb_num += 1
							bomb_supply.reset()
					#绘制超级子弹补给并检测是否获得
					if bullet_supply.active:
						bullet_supply.move()
						screen.blit(bullet_supply.image,bullet_supply.rect)
						if pygame.sprite.collide_mask(bullet_supply,me):
							supply_music.play()
							is_double_bullet = True
							pygame.time.set_timer(double_bullet_time,10*1000)
							bullet_supply.reset()
							#绘制飞机剩余生命
				if life_num:
					for i in range(life_num):
						screen.blit(life_image,(width - life_image_rect.width*(i+1)-10,height-life_image_rect.height -8))
				
				#绘制分数
				font  = pygame.font.Font('font/font.ttf',30)
				score_font = font.render("Score : %s" % str(score),True,(0,255,0))
				screen.blit(score_font,(10,10))
				#绘制暂停按钮
				screen.blit(pause_image,pause_image1_rect)
			#当生命值为0的时候
			elif life_num == 0:
				#停止背景音效
				pygame.mixer.music.stop()
				
				#停止全部音效
				bullet_music.stop()
				if not recorded:
					recorded = True
					#读取存档的历史  分数
					with open('record.txt','r') as f:
						record_score = f.readline()
						best_score = record_score
					if int(record_score) < int(score):
						best_score = score
						with open('record.txt','w') as f:
							f.write(str(score))
							
				screen.fill((67,104,162))
				font_end_srf1 = font_end.render('Your Score',True,(220,111,114))
				font_end_srf2= font_end.render('%s' %score,True,(220,111,114))
				font_end_srf3= font_end2.render('游戏的失败不等于人生的失败,喵~',True,(220,111,114))
				font_end_srf4= font_end3.render('Best Score:%s' %best_score,True,(220,111,114))
				screen.blit(font_end_srf1,(width//2-150,height//2-200))
				screen.blit(font_end_srf2,(width//2-50,height//2-100))
				screen.blit(font_end_srf4,(10,10))
				screen.blit(font_end_srf3,(0,height//2-300))
				screen.blit(button_end,(width/2-164/2,450))
				screen.blit(button_end2,(width/2-164/2,550))
				#检测用户的鼠标操作
				#如果用户按下左键
				if pygame.mouse.get_pressed()[0]:
					#获取鼠标位置
					pos = pygame.mouse.get_pos()
					#如果用户点击重新开始
					if width/2-164/2 < pos[0] < width/2+164/2 and 450<pos[1]<450+46:
						main()
					#如果用户点击退出
					elif width/2-164/2 < pos[0] < width/2+164/2 and 550<pos[1]<550+46:
						print('已退出游戏!')
						pygame.quit()
						sys.exit()
					
		pygame.display.flip()
		clock.tick(60)

if __name__ == "__main__":
	try:
		main()
	except SystemExit:
		pass
	except:
		traceback.print_exc()
		pygame.quit()
		input()

三、效果展示

游戏规则:初始我方飞机生命值为3,每撞击一次消耗一点生命值,我方子弹销毁一辆敌机得分

1000,上下左右键移动我方战机,没一个补给包可增加飞机战斗火力哦~

其他的就交给大家来探索啦!

1)游戏界面

【Python游戏】在这款程序员游戏新作《现代空战—战机游戏》里,你可以体验一把紧张的空战感觉、刺激鸭~打飞机游戏都能有那么多骚操作……

​2)游戏界面

【Python游戏】在这款程序员游戏新作《现代空战—战机游戏》里,你可以体验一把紧张的空战感觉、刺激鸭~打飞机游戏都能有那么多骚操作……

​3)获得补给包

【Python游戏】在这款程序员游戏新作《现代空战—战机游戏》里,你可以体验一把紧张的空战感觉、刺激鸭~打飞机游戏都能有那么多骚操作……

4)生命值为0,游戏结束

【Python游戏】在这款程序员游戏新作《现代空战—战机游戏》里,你可以体验一把紧张的空战感觉、刺激鸭~打飞机游戏都能有那么多骚操作……

总结

游戏画面简直让人泪流满面(写了挺久的),手绘式涂鸦风格,仿佛是童年的彩色蜡笔描画的

一般,如同小学生的作业本一样,满满的都是回忆。不得不说,《现代空战—战机游戏》的画

面是小编见过的挺有趣的一款,足以看出小编的用心之处了吧~(毕竟敲了一天的代码呢)

如果你是一位喜欢怀旧的玩家那么就不要犹豫了,赶紧跟随小编乘坐这款飞机去寻找欢乐

吧!老规矩滴滴我获取完整的资料的哈保证给你~(免费哈)

✨完整的素材源码等:可以滴滴我吖!或者点击文末hao自取免费拿的哈~

 🔨推荐往期文章——

项目1.0 童年游戏合集

【Python童年游戏】满满的回忆杀—那些年玩过的童年游戏你还记得吗?那个才是你的菜?看到第一个我就泪奔了(致我们逝去的青春)

项目1.1  蔡徐坤打篮球

【Python搞笑游戏】因蔡徐坤打篮球动作超火,被某程序员写成了一款游戏,画面美到不敢看,成功学到了精髓~(附源码免费)

项目1.8  Wifi破解免费

Python编程零基础如何逆袭成为爬虫实战高手之《WIFI破解》(甩万能钥匙十条街)爆赞爆赞~

项目1.1   扫雷

 Pygame实战:据说这是史上最难扫雷游戏,没有之一,你们感受下......

项目1.2   魂斗罗

Pygame实战:多年后“魂斗罗”像素风归来 不止是经典与情怀@全体成员

🎄文章汇总——

汇总合集 Python—2022 |已有文章汇总 | 持续更新,直接看这篇就够了

(更多内容+源码都在✨文章汇总哦!!欢迎阅读喜欢的文章🎉~

【Python游戏】在这款程序员游戏新作《现代空战—战机游戏》里,你可以体验一把紧张的空战感觉、刺激鸭~打飞机游戏都能有那么多骚操作……文章来源地址https://www.toymoban.com/news/detail-444996.html

到了这里,关于【Python游戏】在这款程序员游戏新作《现代空战—战机游戏》里,你可以体验一把紧张的空战感觉、刺激鸭~打飞机游戏都能有那么多骚操作……的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 程序员过中秋Python+pygame 制作拼图小游戏(附源码:5源码)

    Python 程序员过中秋Python+pygame 制作拼图小游戏(附源码:5源码) 又是一年中秋至一花好月 圆夜,佳文当共鉴。Python+ pygame制作拼图小游戏; 制作一个自己的拼图小游戏,看看几步可以观赏到月亮。 官方活动入口 ​ 本文档是对Python语言制作拼图小游戏界面功能需求进行分析归

    2023年04月09日
    浏览(46)
  • 【Python小游戏】某程序员自制《苹果大赛》,赶紧来抢~“免费的平安夜苹果,你说是不是最甜的鸭?”(附源码)

    很久不见,我是木木子鸭~2023发生了太多事情啦,我将重新启航,开启新的一页。 希望不管是文章还是各种小程序都能够帮到大家,大家也要继续支持我哦~我将继续努力更新! ——祝你祝我 在这个冬天——                                                          

    2024年02月04日
    浏览(36)
  • 【Python搞笑游戏】因蔡徐坤打篮球动作超火,被某程序员写成了一款游戏,画面美到不敢看,成功学到了精髓~(附源码免费)

    之前网络最火的梗,非“C徐坤打篮球”莫属。个人感觉,只有多年前的“春哥纯爷们”堪与匹敌! 虽然说C徐坤打篮球是一个老梗了,但是确实非常搞笑,今天就跟着小编一起来回忆一下吧! “我是练习两年半的个人练习生— C 徐坤,喜欢,唱、跳、RAP、 打篮球......” 那么

    2023年04月16日
    浏览(42)
  • 【游戏编程扯淡精粹】程序员的Windows技巧

    本文主要起索引作用,具体操作或者介绍,请自行搜索 几个实用工具合集,对Windows是很好的补充 快捷脚本,有学习成本 目前主要用作ZeloEngine快捷入口汇总,节约了自己开发launcher gui的成本 额外的鼠标按键可以绑定快捷键 比如绑定运行程序Ctr+F5 你知道的,这几个是特殊文

    2024年02月06日
    浏览(51)
  • [学习笔记]黑马程序员python教程

    1.9.1异常的捕获 1.9.1.1 为什么要捕获异常 1.9.1.2 捕获常规的异常 1.9.1.3 捕获指定的异常 e是接受异常信息的变量 1.9.1.4 捕获多个异常 1.9.1.5 捕获全部异常 1.9.1.6 异常的else 1.9.1.7 异常的finally 1.9.2 异常的传递 如果异常是在某一层产生,但是没有被catch,那么会继续往上层抛出,此

    2024年02月07日
    浏览(69)
  • Python黑马程序员(Spark实战)笔记

     pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark 注意:字符串返回的是[\\\'a\\\',\\\'b\\\',\\\'c\\\',\\\'d\\\',\\\'e\\\',\\\'f\\\',\\\'g\\\']   字典返回的是[\\\'key1\\\',\\\'key2\\\']   读取hello.txt的内容: 注意: 如果没有添加上行代码程序会报出错误! Caused by: org.apache.spark.SparkException: Python worker failed to connect back.  解释器的位置

    2024年02月05日
    浏览(81)
  • 【Android 逆向】程序员高危开发方向 ( 违法软件类型 | 赌博游戏 | 色情类应用 | 涉及金融类软件 | 爬虫类软件 | 区块链货币 | 甄别是否合法 )

    棋牌类 游戏开发 , 写这类游戏的程序员 很容易被抓 , 只要 涉及到了 充值 以及 提现 , 就是涉嫌赌博 ; 常见的 就是 麻将类游戏 , 纸牌类游戏 , 具体的地方麻将或扑克玩法 , 德州扑克 , 21 点 , 老虎机 等 类型的 游戏 ; 抽卡类的游戏 , 充值 然后 赌概率 , 比如原神这种 , 只充值

    2024年01月19日
    浏览(45)
  • Flink原理解析,Python程序员必看

    容错机制 ​ 分布式环境下的流式处理平台相对于批处理平台而言,一个非常重要的问题是如何 保证分布式计算节点在发生故障并恢复后最终的计算结果是正确的 。在批处理的模式下,数据有界,在任务开始前我们就可以得到需要计算的所有数据,如果节点出错,最坏的情况

    2024年04月09日
    浏览(62)
  • python算法指南程序员经典,python算法教程pdf百度云

    大家好,小编来为大家解答以下问题,你也能看懂的python算法书 pdf,python算法教程这本书怎么样,现在让我们一起来看看吧!   给大家带来的一篇关于算法相关的电子书资源,介绍了关于算法、详解、算法基础方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大

    2024年02月14日
    浏览(44)
  • Python制作爱心跳动代码,你也是天才程序员

    前端时间电视剧《点燃我,温暖你》正在热播中,里面的天才程序员李峋制作的爱心跳动代码是不是震撼了你的心,今天我们用Python来尝试一下制作爱心跳动代码吧! 怎么说呢,用这个表白也可以的,万一她也看这个剧呢,万一就成了呢 哈哈 冲啊,兄弟们 okok 话不多说,现

    2024年02月09日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包