Pygame游戏之 合金弹头
Pygame游戏(5)
这是一个让坦克不断切换形态,用户通过按下键盘的上下左右键来控制坦克的方法
首先,把窗口的基本框架搭好
import pygame,sys
from pygame.locals import *pygame.init() #初始化模块
pygame.mixer.init() #初始化播放器
screen = pygame.display.set_mode((640,480))
pygame.display.set_caption("合金弹头")clock = pygame.time.Clock() #控制帧数
back = pygame.image.load('photo/bg.jpg') #加载背景图片
backposition = back.get_rect() #获取图片的外接矩形pygame.mixer.music.load('game_music.ogg') #加载背景音乐
pygame.mixer.music.set_volume(0.5) #设置音量
pygame.mixer.music.play(-1) #循环播放while True:for event in pygame.event.get():if event.type == QUIT:sys.exit()screen.blit(back,backposition) #绘制背景图片pygame.display.update() #刷新屏幕clock.tick(60) #帧数设置为60
这样一个带背景图的窗口就创建好啦
接下去让我们把坦克加入进来(解释在代码行的后面)
import pygame,syspygame.init()
pygame.mixer.init()screen = pygame.display.set_mode((640,480))pygame.display.set_caption("合金弹头")clock = pygame.time.Clock() #调节帧数speed = [1,0]i=0 #记录帧
change = 1 #记录切换
state = False #坦克形态开关
direct = 'L' #转向开关
fire = False #开火开关back = pygame.image.load('photo/bg.jpg') #加载背景图片
tank = pygame.image.load('photo/tank_01.png') #加载坦克1的图片pygame.mixer.music.load('game_music.ogg') #加载音乐
pygame.mixer.music.set_volume(0.5) #设置音量
pygame.mixer.music.play(-1) #循环播放backposition = back.get_rect() #获取外接矩形
tankposition = tank.get_rect()
tankposition.center = (80,240) #把初始位置放地图前端位置while True:#每过一段时间切换坦克的形态(用i记录)i = i + 1 if i%10 == 0:state = Trueelse:state = False#让坦克在两种形态中不断切换if state:if change == 1:tank = pygame.image.load('photo/tank_02.png') change = 2else:tank = pygame.image.load('photo/tank_01.png')change = 1#图片水平翻转180度(按下左右键让坦克掉头,不然坦克一直是头朝着右方)if direct == 'R':img2=pygame.transform.flip(tank,True,False) else:img2=tankfor event in pygame.event.get(): #获取事件if event.type == pygame.QUIT: #鼠标按下窗口的关闭sys.exit() #退出if event.type == pygame.KEYDOWN: #按下键盘if event.key == pygame.K_ESCAPE:#按下ESC键sys.exit() #退出if event.key == pygame.K_RIGHT: #按下右键speed = [2,0] #速度direct = 'L' #掉头if event.key == pygame.K_LEFT: #按下左键speed = [-2,0] #速度direct = 'R' #掉头if event.key == pygame.K_UP: #按下上键speed = [0,-2] #速度if event.key == pygame.K_DOWN: #按下下键speed = [0,2] #速度if event.key == pygame.K_SPACE: #按下空格fire = True #开火if event.type == pygame.KEYUP: #键盘释放speed = [0,0] #原地不动if event.key == pygame.K_SPACE: #空格键释放fire = False #开火停止tankposition = tankposition.move(speed) #让坦克以速度speed前进screen.blit(back,backposition) #绘制背景图片screen.blit(img2,tankposition) #绘制坦克pygame.display.update() #刷新屏幕clock.tick(60) #控制帧数
这是坦克的两种形态,让它以一定时间不断切换,就会产生开头那样坦克一上一下的动作喽
坦克的开火开关已经做好,有兴趣的小伙伴只要找个子弹的图片,设置代码让其在坦克的前端以一定速度前进就好啦
具体的做法,将会在我的下一篇博客 豌豆射手 通过射手发射豌豆 ,便能让坦克同样的发射子弹
点击:
Pygame游戏之 豌豆射手
还有一款难度和挑战性更大一个框架
Pygame游戏之 愤怒的小鸟
Pygame游戏之 合金弹头相关推荐
- 使用pygame开发游戏:合金弹头(3)
导读 Python的强大超出你的认知,Python的功能不止于可以做网络爬虫,数据分析,Python完全可以进行后端开发,AI,Python也可进行游戏开发,本文将会详细介绍Python使用pygam ...
- 使用pygame开发游戏:合金弹头(1)
导读 Python的强大超出你的认知,Python的功能不止于可以做网络爬虫,数据分析,Python完全可以进行后端开发,AI,Python也可进行游戏开发,本文将会详细介绍Python使用pygam ...
- 使用pygame开发游戏:合金弹头(4)
导读 Python的强大超出你的认知,Python的功能不止于可以做网络爬虫,数据分析,Python完全可以进行后端开发,AI,Python也可进行游戏开发,本文将会详细介绍Python使用pygam ...
- 使用pygame开发游戏:合金弹头(5)
导读 Python的强大超出你的认知,Python的功能不止于可以做网络爬虫,数据分析,Python完全可以进行后端开发,AI,Python也可进行游戏开发,本文将会详细介绍Python使用pygam ...
- 使用pygame开发游戏:合金弹头(2)
导读 Python的强大超出你的认知,Python的功能不止于可以做网络爬虫,数据分析,Python完全可以进行后端开发,AI,Python也可进行游戏开发,本文将会详细介绍Python使用pygam ...
- iOS平台经典游戏《合金弹头X》上架 售价25元
日本SNK Playmore株式会社正打算将<合金弹头>系列都移植到iOS平台上去.去年7月,他们首先在iOS平台上推出了<合金弹头3>.由于某些特殊的原因,他们在移植< ...
- 【原创游戏】合金弹头S——Unity制作的同人游戏
--纪念合金弹头陪伴的童年,回味横版过关射击快感 合金弹头S是一款Unity制作的同人游戏,由于当时我只是一个学了3个月游戏的同学,所以尚有一些不足之处,但这是我用Unity做的第一个原创作品 下载地 ...
- Pygame游戏之 愤怒的小鸟
Pygame游戏(7) 让我们用键盘控制小鸟躲避成群结队的绿皮猪 当小鸟与绿皮猪发生碰撞后,会进入一个新的界面,并且有按钮让玩家重玩(动态图稍大,加载比较慢) 首先我们还是老步骤 准备好一个基本的游戏 ...
- 合金弹头java视频_Java swing实现的仿植物大战僵尸版合金弹头游戏源码附带视频指导教程...
<p> <span style="font-family:微软雅黑;font-size:16px;color:#555555;line-height:2;"> ...
最新文章
- Logon database Tiger引起DataGuard不同步问题
- 理解LSTM/RNN中的Attention机制
- Windwos 08R2_DNS全面图文详解
- 08-spring整合 junit
- Apache2.4中开通HTTP基本认证
- 【Android】可以下拉刷新的webview,使你的webview效果更加好看,封装自己的WebView...
- 2018年香港私楼落成量达2.1万个 创14年新高
- java audiorecord_Android 录音实现(AudioRecord)
- Codeforces Round #732 (Div. 2) C. AquaMoon and Strange Sort 思维
- 百度产品经理vs 腾讯产品经理:技术大牛与小白
- shell循环,判断介绍,以及实例
- docker 中运行 mysql
- [原创]java WEB学习笔记80:Hibernate学习之路--- hibernate配置文件:JDBC 连接属性,C3P0 数据库连接池属性等...
- RS232应用----电功率计
- 如何解决linux下编译出现的multiple definition of错误
- 克罗谈投资策略04_感觉与现实
- 快速开发框架介绍-懂你的RUOYI
- java传参方式_Java里方法的参数传递方式
- 12个开放平台大家一起来玩
- excel 职位分析