Javascript映射/数学/表格
好的,你好!我的数学不是最好的,我这里有一张桌子。ThJavascript映射/数学/表格,javascript,math,canvas,sprite,drawimage,Javascript,Math,Canvas,Sprite,Drawimage,好的,你好!我的数学不是最好的,我这里有一张桌子。Th 0 0|50 0|100 0|150 0 0 85|50 85|100 85|150 85 0 170|50 170|100 170|150 170 0 255|50 255|100 255|150 255 左边是x,右边是y,sx和sy代表drawImage(这是我的精灵的布局) 是否有大量的if语句来控制这一点 如果我解释得不够好,参数sprite是int 1到16,表示sprite的
0 0|50 0|100 0|150 0
0 85|50 85|100 85|150 85
0 170|50 170|100 170|150 170
0 255|50 255|100 255|150 255
左边是x,右边是y,sx和sy代表drawImage(这是我的精灵的布局)
是否有大量的if语句来控制这一点
如果我解释得不够好,参数sprite是int 1到16,表示sprite的动画数量(它是一个行走的人),因此1是向下看的空闲动画,2是行走/步进动画,等等,每行向下的方向都会改变
function sprite(canvas, sprite, frame, x, y){
var sx, sy = 0, 0
(insert googleplex of 'if' statments)
canvas.drawImage(sprite,sx,sy,50,85,x,y,50,85);
}
假设您的精灵在图像中的排列方式如下:
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
var xpixels = (spriteId%4)*50;
var ypixels = Math.floor(spriteId/4)*85;
您可以像这样为它们编制索引:
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
var xpixels = (spriteId%4)*50;
var ypixels = Math.floor(spriteId/4)*85;
x
和y
偏移是从左上角开始的,因此spriteId=5
位于xpixels=50,ypixels=85
您有一个固定大小的精灵。索引到它应该是一个简单的算术练习,没有如果需要语句。我想我可以重新排列精灵,这是一个更容易的数学问题。。。目前它在一个4x4网格中,不知道如何索引它