当前位置: 首页 > news >正文

制作一款打飞机游戏13:状态机

  • 状态机‌:为了实现游戏的不同状态(如启动屏幕和游戏运行状态),我们引入了状态机。通过动态地切换drawupdate函数,我们能够根据游戏当前的状态来执行不同的操作。
  • 启动屏幕‌:制作了一个简单的启动屏幕,当玩家按下按钮时,游戏会从启动屏幕切换到实际运行状态。
  • 清除屏幕‌:移除了每次绘制前的清屏操作,因为我们总是将整个地图绘制到屏幕上,所以不需要清屏来查看各图层之间的空隙。
  • 爆炸效果‌:对爆炸效果进行了微调,使其看起来更加自然和不可预测。通过使用R&D range函数,我们为爆炸的偏移量添加了随机性。

function _init()t=0debug={}butarr=split("1,2,3,1,4,6,7,4,5,9,8,5,1,2,3,1")dirx=split("0,-1,1, 0,0, -0.7, 0.7,0.7,-0.7")diry=split("0, 0,0,-1,1, -0.7,-0.7,0.7,0.7")--★shiparr=split("65,67,69,71,73")flamearr=split("76,77,78,77")mapsegs=split("3,3,3,3,3,2,1,0,1,7,6,5,10,4,11,6,11,11,5,9,10,8,1,0,15,14,1,13,12,19,19,18,17,16,18,17,16,17,16,19,22,21,20,27,26,25,23,24,3,3")_upd=upd_menu_drw=drw_menu
endfunction startgame()px,py=64,64spd=1.4lastdir=0shipspr=0scroll=0xscroll=0mapsegi=0cursegs={}boss=falseparts={}shots={}shotwait=0muzz={}_upd=upd_game_drw=drw_game
endfunction _draw()_drw()--★cursor(4,4)color(7)for txt in all(debug) doprint(txt)end
endfunction _update60()t+=1_upd()
end-->8
--drawfunction drw_game()for seg in all(cursegs) domap(seg.x,seg.y,xscroll,scroll-seg.o,18,8)endfor p in all(parts) doif p.wait==nil thenp.draw(p)endendfor s in all(shots) do    spr(s.sani[flr(s.si)],s.x,s.y,1,s.sh)endfor m in all(muzz) do    spr(m.sani[flr(m.si)],px+m.x,py+m.y,2,2)end--shipspr(shiparr[flr(shipspr*2.4+3.5)],px,py,2,2)local fframe=flamearr[t\3%4+1]spr(fframe,px+6,py+15)spr(fframe,px+3,py+15)debug[1]=scroll
endfunction drw_menu()map(19,8)
end

http://www.xdnf.cn/news/64495.html

相关文章:

  • 广州可信数据空间上线:1个城市枢纽+N个产业专区+高质量数据集(附28个数据集清单)
  • 如何建设企业级合成数据中台?架构设计、权限治理与复用机制全解
  • 第 3 篇:揭秘时间模式 - 时间序列分解
  • OpenCV基础函数学习4
  • 【油藏地球物理正演软件ColchisFM】ColchisFM正演软件在阿姆河右岸区块礁滩复合体识别中的应用
  • transformer
  • 【Docker-16】Docker Volume存储卷
  • android 多个viewmodel之间通信
  • Android 最简单的native二进制程序
  • 【MySQL】:数据库事务管理
  • 深入理解路由器、IP地址及网络配置
  • 你的大模型服务如何压测:首 Token 延迟、并发与 QPS
  • 前端笔记-AJAX
  • Excel/WPS表格中图片链接转换成对应的实际图片
  • 大模型应用开发大纲
  • 前端框架开发编译阶段与运行时的核心内容详解Tree Shaking核心实现原理详解
  • C语言中的双链表和单链表详细解释与实现
  • PostgreSQL 用户资源管理
  • 基于LLM的响应式流式处理实践:提升用户体验的关键技术
  • 【python】copy deepcopy 赋值= 对比
  • el-input 限制只能输入非负数字和小数
  • 基于SIMMECHANICS的单自由度磁悬浮隔振器PID控制系统simulink建模与仿真
  • linux基础学习--linux文件与目录管理
  • 【python实用小脚本系列】用Python打造你的专属智能语音助手
  • 【技术派后端篇】技术派中基于 Redis 的缓存实践
  • 快手砍掉本地生活的门槛
  • Redis的使用总结
  • 电脑硬盘常见的几种接口类型
  • 方案精读:2024 华为数字政府智慧政务一网统管解决方案【附全文阅读】
  • Flowable7.x学习笔记(十)分页查询已部署 BPMN XML 流程