Это потому, что вы объявляете их в операторе, поэтому объявление каждый раз создается заново, а переменные создаются заново.
Во-первых, вам нужно создать переменные вне оператора.
А потом, чтобы исправить вашу проблему, я бы использовал bool для их блокировки.
Примерно так:
var unitLine;
var firstX;
var firstY;
var needToset_XY = true;
if(game.input.activePointer.isDown) {
if(needToset_XY){
firstX = game.input.x;
firstY = game.input.y;
needToset_XY = false;
}
unitLine = game.add.graphics(100, 100);
unitLine.beginFill(0xFF3300);
unitLine.lineStyle(10, 0xffd900, 1);
unitLine.moveTo(firstX, firstY);
unitLine.lineTo(game.input.x, game.input.y);
}
Это означает, что значения firstX и firstY не могут быть изменены после первого раза.
Если это все в игровом цикле, вам нужно объявить четыре верхние переменные вне цикла, иначе они будут обновляться каждый раз.