ОК, у меня есть две версии моего кода.Первый, кажется, работает (в основном), а второй дает мне Uncaught Error в названии темы.
defs:
var VID_WID = 640;
var VID_HIGH = 360;
var OUT_WID = 480;
var OUT_HIGH = 320;
var NUM_WID = 3;
var NUM_HIGH = 3;
var TILE_WIDTH = VID_WID / NUM_WID;
var TILE_HEIGHT = VID_HIGH / NUM_HIGH;
var OUT_WIDTH = OUT_WID / NUM_WID;
var OUT_HEIGHT = OUT_HIGH / NUM_HIGH;
Working:
tile.sx = x*TILE_WIDTH;
tile.sy = y*TILE_HEIGHT;
tile.dx = x*OUT_WIDTH;
tile.dy = y*OUT_HEIGHT;
...
draw.drawImage(copycanvas, tile.sx, tile.sy,
TILE_WIDTH, TILE_HEIGHT,
tile.dx, tile.dy,
OUT_WIDTH, OUT_HEIGHT);
Gets Exception:
tile.sx = x;
tile.sy = y;
tile.dx = x;
tile.dy = y;
...
draw.drawImage(copycanvas, tile.sx*TILE_WIDTH, tile.sy*TILE_HEIGHT,
TILE_WIDTH, TILE_HEIGHT,
tile.dx*OUT_WIDTH, tile.dy*OUT_HEIGHT,
OUT_WIDTH, OUT_HEIGHT);
ЕДИНСТВЕННАЯ разница, которую я вижу, ГДЕ я делаю умножение на параметры WIDTH и HEIGHT.Тем не менее, один работает, а другой дает исключение.
Я ХОЧУ использовать последний код, чтобы я мог сравнивать значения x и y .sx и .dx непосредственно с x вместо sx / TILE_WIDTH ==дх / OUT_WIDTH.Я думаю, я всегда могу добавить еще пару полей, чтобы дублировать усилия, но мне кажется, что мне НЕ нужно этого делать.
Есть идеи, почему одно работает, а другое нет?