对主程序的优化,看别人的文章到这里,虽然没完全懂。

此段代码主要是针对,主程序的优化和建立类来进行管理画面元素。

对原程序进行了修改,优化和整理

import pygame                   #导入pygame库
from pygame.locals import *     #导入pygame库中的一些常量
from sys import exit            #导入sys库中的exit函数#创建Hero类,继承自pygame.sprite.Sprite
class Hero(pygame.sprite.Sprite):def __init__(self,hero_surface,hero_init_pos):pygame.sprite.Sprite.__init__(self)self.image =  hero_surfaceself.rect = self.image.get_rect()self.rect.topleft = hero_init_posself.speed = 6def move(self,offset):hero_x=self.rect.left+offset[pygame.K_RIGHT]-offset[pygame.K_LEFT]hero_y=self.rect.top+offset[pygame.K_DOWN]-offset[pygame.K_UP]if hero_x < 0:self.rect.left = 0elif hero_x > SCREEN_WIDTH - self.rect.width:self.rect.left = SCREEN_WIDTH - self.rect.widthelse:self.rect.left = hero_xif hero_y < 0:self.rect.top = 0elif hero_y > SCREEN_HEIGHT - self.rect.height:self.rect.top = SCREEN_HEIGHT - self.rect.heightelse:self.rect.top = hero_y#定义窗口的分辨率
SCREEN_WIDTH =  480
SCREEN_HEIGHT =  640FRAME_RATE = 60ANIMATE_CYCLE = 20#计数ticks
ticks = 0#去除了不断绘制飞机,容易消耗资源,使用clock,控制最大帧率FRAME_RATE
clock =pygame.time.Clock()#创建字典,按下上下左右键的的增量
offset ={pygame.K_LEFT:0,pygame.K_RIGHT:0,pygame.K_UP:0,pygame.K_DOWN:0}#初始化游戏
pygame.init()screen = pygame.display.set_mode([SCREEN_WIDTH,SCREEN_HEIGHT])
pygame.display.set_caption('这是一个打飞机游戏!')#载入背景图
background = pygame.image.load('images/background.png')#载入资源图
hero_surface=[]
hero_surface.append(pygame.image.load('images/me1.png'))
hero_surface.append(pygame.image.load('images/me2.png'))
hero_pos=[200,500]#创建玩家
hero = Hero(hero_surface[0],hero_pos)#事件循环
while True:clock.tick(FRAME_RATE)#绘制背景screen.blit(background,(0,0))#绘制飞机,在循环过程中让每过25个周期切换2个飞机图。这样会产生动图的效果if ticks >= ANIMATE_CYCLE:ticks = 0hero.imgae =hero_surface[ticks//(ANIMATE_CYCLE//2)]screen.blit(hero.imgae,hero.rect)ticks += 1#更新屏幕pygame.display.update()#处理游戏退出for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()exit()#按键按下和放开的事件,按下时坐标增3,放开,置零if event.type == pygame.KEYDOWN:if event.key in offset:offset[event.key] = hero.speed   #增量的大小,主飞机移动速度的快慢elif event.type == pygame.KEYUP:if event.key in offset:offset[event.key] = 0hero.move(offset)

运行效果:

Python微信打飞机游戏编程学习笔记04相关推荐

  1. Python微信打飞机游戏编程学习笔记01

    刚学习Python,看别人写的小游戏,照搬照学照写,纯手工手打,一步步,加深印象,加深学习 运行环境是: Python 3.7.1   pygame 1.9.4 微信很火的打飞机游戏拿了学习下 第一步 ...

  2. Python微信打飞机游戏编程学习笔记02

    继上一段的代码.继续完善中 此段代码主要 1.增加了主飞机的载入,并且是动态效果的主飞机 2.增加了主飞机的移动控制 终于有了游戏互动的感觉...继续加油 import pygame #导入pygam ...

  3. DirectX 11游戏编程学习笔记之1: 开场白

    本文由哈利_蜘蛛侠原创,转载请注明出处!有问题欢迎联系2024958085@qq.com 这是我之前的博客系列"DirectX9.0c游戏开发手记之'龙书'第二版学习笔记"的平行版 ...

  4. 【逐梦旅程Windows游戏编程学习笔记 ①】基本GDI绘图

    近半年各种忙碌,一直没写博客,现在得空学习记录一下,原书为<逐梦旅程 Windows游戏编程之从零开始>毛星云编著 实现样式与功能: 实现功能: 1,显示title:"致我们.. ...

  5. java2d游戏代码_JAVA游戏编程学习笔记(三)Java 2D游戏底层绘图框架

    前二篇记录了java如何绘制图形与动画,今天打算总结复习一下,把这些知识点集合起来,制作一个Java2D小游戏框架(暂且这么叫,好像挺牛逼似的!). Java AWT 下边提供一个 class Can ...

  6. 3D游戏编程学习笔记(七):模型与动画

    一.前言 本次3D游戏编程我们将设计一个智能巡逻兵游戏. 二.游戏基本内容及规定 游戏内容部分 创建一个地图和若干巡逻兵(使用动画): 每个巡逻兵走一个3~5个边的凸多边型,位置数据是相对地址.即每次 ...

  7. 3D游戏编程学习笔记(五):与游戏世界交互

    一.前言 本次3D游戏编程我们将设计一个简单打飞碟(Hit UFO)有游戏. 二.游戏基本内容及规定 游戏基本内容 游戏有 n 个 round,每个 round 都包括10 次 trial: 每个 t ...

  8. python socket服务器_python网络编程学习笔记(三):socket网络服务器

    1.TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个过程需要四步,具体见下面的比较.步骤 TCP客户端 TCP服务器 第一步 建立socket对象 建立socket对象 ...

  9. Windows游戏编程学习笔记

    1.文件类型: ipch文件夹和.sdf文件:这两个文件都是Visual Studio用来保存预编译的头文件和Intellisense用的.(可删除,对于工程开发没有影响) Debug文件夹:存放着编 ...

  10. python网络开发框架_python网络编程学习笔记(10):webpy框架

    django和webpy都是python的web开发框架.Django的主要目的是简便.快速的开发数据库驱动的网站.它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架 ...

最新文章

  1. js如何让高度和宽度保持一致_如何实现一个下载进度条/播放进度条
  2. 傅里叶变换进行缺陷检测detect_indent_fft.hdev(源代码与详细解析)
  3. IOS 应用中从竖屏模式强制转换为横屏模式
  4. 判断字符串中是否包含中文
  5. java exec 关闭_如何正确关闭java ExecutorService
  6. 计算机逻辑判断函数函数知识点,计算机考点条件检测函数IF
  7. 大数据量表的优化查询
  8. git21天打卡day21-解决合并冲突
  9. python爬取抖音评论_爬取抖音299w用户数据后的分析
  10. 如何使用ShoeBox和PhotoShop制作出漂亮的Fnt字体
  11. 劲爆周鸿祎网络炒作黑幕
  12. 基于原语的千兆以太网RGMII接口设计
  13. AB91-1 HESG437479R1 HESG437899
  14. 华为od统一考试B卷【连续出牌数量】C++ 实现
  15. 正大国际期货:国际期货中的八条看盘技巧!
  16. 工作4年感想:美团、360、陌陌、百度、阿里、京东面试
  17. 第一周 一起走进摄影世界
  18. 写给自己,学习如逆水行舟,不进则退
  19. 计算机网络ospf实验报告,计算机网络实验报告 12_OSPF实验.doc
  20. 天融信防火墙web配置_常见web系统默认口令总结

热门文章

  1. linux下blast设计引物,手把手教你设计引物(图文并茂)
  2. 初学者怎样看懂python代码_初学者怎样看懂代码?
  3. 39个seo大师级经典案例
  4. 笔记本更新网卡驱动后,出现:上网图标消失、网络连接为空、设备管理器中网络适配器全部为叹号、有线无线均无法链接的情况
  5. Weex Playground APP 源码下载编译运行预览
  6. 老板口中的一区二区是什么意思?
  7. linux fastboot 工具下载,linuxadb fastboot 和VNC工具的安装使用
  8. 微信小程序添加icon图标教程
  9. SoapUI接口测试实例(webservice接口)
  10. cloverconfig机型修改_Clover的Config新手设置教程