客户端入门十二小时-Read.pptVIP

  • 5
  • 0
  • 约6.95千字
  • 约 56页
  • 2019-06-18 发布于天津
  • 举报
客户端入门十二小时 FOOLFLY DEMO DESIGN 个人资料 姓名:林伟 昵称:小林子、小林 网名:skywind 年龄:18 (!?) 职业:休闲组程序员,负责平台开发 POPO:skywind3000 EMAIL:weilin@ 课程历史 1998年,教同学写游戏,完成DEMO原型 1999年,应网友要求,重新注释改写 2001年,某培训公司盗版为培训内容 2003年,电子科大MSTC课堂第一讲内容 2003年,川大/西华大学交流讲座 2006年,第五次重讲 Create Game In 12 Hours Talk to me like I’m a 3 years old ! 艺术作品为了给人带来享受 ; 那作为艺术创作的游戏开发,又为了什么? --为了追求 “美” 学习游戏编程的八大误区 误区一:很多作品只能叫做 “程序” 而不能称为 “游戏” 误区二:执着于各种技巧而忽视了基本素质的培养 误区三:执着于流行的API,认为: 会写游戏 = 掌握一两套API 误区四:执着于大而全,系统就像一只吞噬了各种化学品的魔兽 误区五:执着于引擎创作爱重复劳动: 最失败的引擎 = 拿来主义 + 函数改名 误区六:不消于使用脚本语言,喜欢CPP至上论 误区七:缺少科学的测试方法,写出来的程序BUG不断 误区八:作品缺乏游戏性,程序设计缺乏美感 课程内容及目的 课程内容 时序控制:显示贞 / 逻辑贞 / AI 贞的基本概念与作用,常见错误分析 图形显示:常见绘制原理 / 三大功能接口 / 简单显卡原理 / 导致低效的原因 数据结构:游戏对象描述 / 并行状态机的转移与变迁 输入控制:游戏输入与应用程序输入的区别 / 硬件编程接口 代码分析:随堂讲解飞行游戏DEMO-FOOLFLY 主要目的 讲解客户端开发用到的基本原理 / 常见错误分析 / 优化技巧 使客户端入门者 / 其他对客户端开发感兴趣者 对2D游戏客户端有一个总体概念 基本要求 熟练使用 TurboC2.0 语言,并且了解计算机基本原理 十二小时入门技巧 花两小时听完本课程 花两小时阅读完200多行的FOOLFLY代码 花三小时为游戏增加两种新的NPC敌人 花三小时为游戏增加一个BOSS 剩下的时间吃饭/午睡 恭喜你成为初级客户端程序员 !! 麻雀虽小五脏俱全 双击右边图标打开DEMO 保存成foolfly.c用TC20编译 大小:200多行 内容:太空射击游戏 方向键控制飞机移动 CTRL键发射激光 代码很烂,大家忍着点看 格 言 不管现在流行什麽语言,你都可以肯定十年二十年之後它不再风光。我总是在自己的书中写些不时髦的东西,但这些东西却值得後代子孙记取。 Donald Knuth 游戏时序控制 基本原理:显示贞/逻辑贞/AI贞 的概念与用途 常见错误:为何计时不准?为 何运行缓慢? 正确方法:精确的时间控制 / 简单8254编程 代码分析:FOOLFLY DEMO FPS – 游戏逻辑的基本单位 任务一:复位所有图形/非图形的数据 任务二:浏览所有的游戏对象并更新状态 任务三:处理用户输入 任务四:绘制并更新图形 任务五:事件驱动部分 基本作用:游戏的主循环每秒进行20-60次 经典的游戏主程序 传统流程图介绍 有什么局限? 值得改进的地方? 几个相关问题 游戏循环占用时间?循环本身优化方法? 为何区分显示贞、逻辑贞、AI贞、网络贞? AI贞与逻辑贞工作类似,为何独立出来? 如果显示贞是60FPS,其他贞应为多少? 时序控制在于基本功能的合理调度 时间控制: 主动控制:计算时间差并 - Sleep 被动控制:等待时钟消息 - WM_TIMER 常见贞率: 显示贞:20-60FPS 逻辑贞:10-30FPS 下面代码有什么问题? def main_loop ( FPS = 10 ): time_delay = 1.0 / FPS while not gamend: time_start = time.time() ….. time_last = time.time() – time_start time.sleep ( time_dalay – time_last ) return True 8254可编程时钟芯片(了解) unsigned long fclock ( void ) /* 读取 1.19MHz的32位系统时钟 */ { unsigned long t ; disable() ; /* 静止中断发生 */ outportb ( 0x43, 0 ) ; /* 告诉8254我想读时钟 */ t = inportb ( 0x40 ) ;

文档评论(0)

1亿VIP精品文档

相关文档