我用EaselJS
创建了一个网页游戏,其中有一些(2-6)雪碧正在画布上移动。此外,它们还可以根据鼠标事件放大和缩小。
下面是我如何移动这些Sprite的:
container.enemies.forEach(function(drop) {
drop.x += drop.vx;
drop.y += drop.vy;
checkHitWall(drop);
var collided = drop.checkCollision(container.enemies);
if (collided) {
distributeVelocity(drop, collided);
}
});
下面是我如何更改它们的大小:
growingObject = function(obj) {
if (obj.radius > canvasWidth / 4) {
return;
}
var rate = 1.01;
obj.gotoAndStop("growing");
obj.radius *= rate;
obj.scaleX = obj.scaleY = obj.scale * rate;
obj.scale = obj.scaleX;
}
当鼠标按下时,这个函数会在每个节拍中被调用。
背景在创建时被缓存。
我不知道是否有使用EaselJS
移动/生长精灵的最佳实践。
这款游戏在桌面浏览器上运行find,但在android手机上运行速度非常慢。
我觉得这些雪碧对手机来说不算太重。分析结果表明,draw
方法占用的CPU时间最多。我该如何优化它呢?
发布于 2015-03-25 07:11:24
一个想法是:你可以试着降低你的帧率,在流畅的动画和可接受的速度之间取得平衡。根据我的经验,在游戏开始看起来不可接受之前,你可以在移动设备上达到令人惊讶的低帧率。尝试这样做,并调整您的速度,以模拟您在以前的fps的相同类型的速度。显然,具体的调整取决于您。
createjs.Ticker.setFPS(12);
https://stackoverflow.com/questions/29060763
复制相似问题