画布效果
最近我在画布中创建了很多动画,而且由于画布没有事件,你需要根据坐标创建自己的事件系统,简而言之,你需要一个碰撞检测功能。由于大多数代码很长,我重写了我自己这样做,我不知道它有多简单。所以我写了一些游戏代码。
基本上画布游戏有很多临时数字数组,在大多数情况下,0到64,128或256之间的数字就足够了。可能减少并用作乘数
hitpoints=max*(number/256);
所以我在想如果我将这些值存储到arraybuffer
怎么办?
var array = new Float64Array(8);
array[0] = 10;
//....
示例:(我这样做......如果你知道更好的事情,请随时告诉我)
//Usable ammonition
var ammo=[
['missiles',dmg,range,radius,red,green,blue,duration],
//all appart the first are numbers between 0 and 255
['projectile',dmg,range,radius,red,green,blue,duration]
]
//Flying ammonition
//this is created inside the canvas animation everytime you shoot.
var tempAmmo=[
[id,timestarted,x,y,timepassed] //these are all integers.
// the longest is probably the timestamp
]
// i could add the ammo numbers to the tempAmmo (which is faster):
[id,timestarted,x,y,timepassed,dmg,range,radius,red,green,blue,duration]
// then i do the same double array for enemies and flyingEnemies.
将所有东西存放在arrabuffers中不是更好吗?
我的想法(如果我错了,请纠正我):
arraybuffers
是二进制数据,
它们应该更快用于渲染,它们应该更小 为了记忆。
现在,如果这两个观点是正确的,我如何正确创建一个像所描述的那样的数组结构,可能选择正确的数组类型?
注意:在我的情况下,我正在使用二维数组。而且我不想使用对象。