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

制作一款打飞机游戏17:敌人

创建敌人

首先,我们需要一个可以射击的飞船。因此,今天的目标是生成一个敌人。

导入精灵

现在,我需要选择这个帧,然后拖放到这里。制作敌人时,不仅要考虑静态敌人,还要考虑动态敌人,尤其是当屏幕上有很多这样的精灵时,动画会让游戏感觉更生动。

敌人动画

初步设置

现在,让我们把这些精灵导入系统。

敌人行为

创建敌人区域

我想创建一个敌人区域,并添加一个敌人。我们需要设置敌人的X和Y坐标,以及它的速度和动画。

绘制敌人

现在,我们要绘制敌人。关于绘制顺序,我认为让子弹在敌人上方绘制更有意义,因为子弹可能会与敌人相交。

滚动背景问题

当飞船左右移动时,敌人似乎也在移动。问题是我们不仅需要滚动背景,还需要滚动所有敌人以及爆炸等效果。这会让碰撞检测变得更复杂。

敌人动画

动画函数

现在,我想让敌人动画循环播放。我们可以创建一个特定的更新函数来处理敌人的动画。

敌人行为规划

初步移动

现在,敌人可以移动了,但我们需要规划更复杂的敌人行为。比如,让敌人飞进来,停留一秒,然后飞出去。

函数化敌人行为

理想情况下,我们应该将这种行为封装成一个函数,以便可以生成多个敌人,让它们每隔几秒飞进来并飞出去。


function startgame()px,py=64,64spd=1.4lastdir=0shipspr=0scroll=300xscroll=0mapsegi=0cursegs={}boss=falseparts={}shots={}shotwait=0muzz={}enemies={}add(enemies,{x=74,y=16,sani={18,19,20},si=1,sx=0.1,sy=0.2})_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.age>=0 then--animate colorif p.ctab thenp.ctabv=p.ctabv or 0local i=(p.age+p.ctabv)/p.maxagei=mid(1,flr(1+i*#p.ctab),#p.ctab)p.c=p.ctab[i]endp.draw(p)endendfor e in all(enemies) domspr(e.sani[flr(e.si)],e.x+xscroll,e.y)pset(e.x+xscroll,e.y,8)endfor s in all(shots) do    mspr(s.sani[flr(s.si)],s.x,s.y)endfor m in all(muzz) do    mspr(m.sani[flr(m.si)],px+m.x,py+m.y)end--shipmspr(shiparr[flr(shipspr*2.4+3.5)],px,py)pset(px,py,8)local fframe=flamearr[t\3%4+1]mspr(fframe,px-1,py+8)mspr(fframe,px+2,py+8)debug[1]=scroll
endfunction drw_menu()map(19,8)
end
-->8
--updatefunction doenemies()for e in all(enemies) doe.x+=e.sxe.y+=e.sye.si+=0.1if flr(e.si)>#e.sani thene.si=1endend
end

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

相关文章:

  • Phyton简介与入门
  • git配置
  • AI答题小程序应用场景有哪些
  • 如何获取适用于智能家电的谷歌浏览器版本【简单安装】
  • Kubernetes finalize | namespace卡Terminatingfinalizers删除失败
  • 如何在spark里搭建local模式
  • 深度解析:基于卷积神经网络的宠物识别
  • Redis 设置过期时间
  • 仓储物流管理系统开发:提升企业供应链效率的关键技术
  • SQLMesh隔离系统深度实践指南:动态模式映射与跨环境计算复用
  • TikTok X-Gnarly纯算分享
  • IO流详解
  • 监控网络状态
  • windows磁盘扩展分区
  • 110. 平衡二叉树
  • 初识网络原理
  • Linux与Anaconda环境部署与管理(运维交接)
  • 2023蓝帽杯初赛内存取证-6
  • 方案精读:华为智慧园区解决方案【附全文阅读】
  • 再见 Smartdaili,你好 Decodo!
  • 解释instanceof
  • 营收持续增长,恩威医药价值重估再现
  • 【信息安全工程师备考笔记】第二章 网络信息安全概述
  • 典籍知识问答典籍查询界面前端界面设计效果实现
  • MySQL:如何用关系型数据库征服NoSQL核心战场?
  • 【STL】unordered_map
  • iptables
  • MYOJ_7443《洛谷 U556408 》【模板】二叉树基础训练 (自己上传的题,想上主题库qwq)(二叉树基础操作模板)
  • 【c语言】指针和数组笔试题解析
  • 科研小白可以做哪些准备