2014-03-01 4 views
0

안녕하세요! 나는 수학에서 최고가 아니야 여기 테이블이있다. 제자바 스크립트지도/수학/표

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는 문장이 제어하는 ​​경우의 거대한 양 주위 거기다 (내 스프라이트 레이아웃 그게 전부)의 drawImage 대한 Y, SX 및 SY입니까?

내가 충분히 설명하지 못한다면, 인수 스프라이트는 스프라이트가 가지고있는 애니메이션의 양에 대해 int 1에서 16까지이므로 1은 유휴 상태이고 2는 walk/스텝 애니메이션과는 각각의 행에 아래 같은 이미지에 배치되는 방향에서 스프라이트를 가정

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

고정 된 크기의 스프라이트가 있습니다. 인덱싱은 산술에서 간단히 수행해야하며, if 문은 필요하지 않습니다. –

+0

글쎄요, 스프라이트를 재 배열 할 수있을 것 같아요. 더 쉬운 수학 문제입니다. 지금은 4x4 격자로 그 색인을 만드는 방법을 모른다. –

답변

1

을 변경 :이 같은

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; 

xy 오프셋은 왼쪽 위부터이므로, spriteId = 5xpixels=50, ypixels=85입니다.