制作一款打飞机游戏16:空间优化

 Sprite空间优化

  • 已完成的工作‌:我们已经建立了一个系统来节约Sprite空间,但仍有一些问题需要解决。
  • 待开发工具‌:我们需要开发一个工具来创建Sprite,并处理动画和压缩问题。

代码优化实例

  • 压缩二维数组‌:我展示了一个名为split2d的函数,用于压缩二维数组,从而节省代币(游戏中的资源单位)。
  • 修复滚动bug‌:解决了X轴滚动时出现的“传送门”bug,通过调整滚动逻辑和添加死区来避免不必要的段落删除和重生。
function split2d(s)
 local arr=split(s,"|",false)
 for k, v in pairs(arr) do
  arr[k] = split(v)
 end
 return arr
end
 xscroll=mid(0,(px-10)/108,1)*-16
 debug[2]=xscroll

粒子系统优化

  • 重构粒子权重‌:我重构了粒子系统的权重计算,将粒子的年龄作为单一变量来同时控制粒子的显示时机和动画。
  • 颜色动画‌:在绘制函数中添加了颜色动画,使得在不需要显式定义颜色的情况下也能实现粒子的颜色变化。
 for i=1,spokes do
  --spawn blobs
  local myang=ang+step*i
  local dist=7+rnd(3)
  local dist2=dist/2
  
	 add(parts,{
	  draw=blob,
	  x=ex+sin(myang)*dist2,
	  y=ey+cos(myang)*dist2,
	  r=2,
	  tor=rndrange(4,7),
	  tox=ex+sin(myang)*dist,
	  toy=ey+cos(myang)*dist,
	  sx=0,
	  sy=edrift,
	  age=-ewait,
	  maxage=emaxage,
	  onend=eonend,
	  spd=espd,
	  ctab=ectab,
	  ctabv=rnd(5)
	 })  
  
 end
 add(parts,{
  draw=blob,
  x=ex,
  y=ey,
  r=2,
  tor=7,
	 sx=0,
	 sy=edrift,
  age=-ewait,
  maxage=emaxage,
  onend=eonend,
  spd=espd,
  ctab=ectab
 })  
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值