var Dot = Container.expand(function () {
var self = Container.call(this);
var dotGraphics = self.createAsset('dot', 'Dot Graphics', .5, .5);
self.eaten = false;
});
var Snake = Container.expand(function () {
var self = Container.call(this);
var snakeGraphics = self.createAsset('snake', 'Snake Graphics', .5, .5);
self.length = 1;
self.direction = 'right';
self.body = [];
self.move = function () {
var gridSize = 64;
switch (self.direction) {
case 'right':
self.x += gridSize;
break;
case 'left':
self.x -= gridSize;
break;
case 'down':
self.y += gridSize;
break;
case 'up':
self.y -= gridSize;
break;
}
};
self.eat = function (dot) {
self.length++;
var newSegment = self.createAsset('snakeBody', 'Snake Body Segment', .5, .5);
self.body.push(newSegment);
self.addChild(newSegment);
if (self.body.length > 1) {
var lastSegment = self.body[self.body.length - 2];
newSegment.x = lastSegment.x;
newSegment.y = lastSegment.y;
}
};
self.checkCollision = function () {
if (self.x < 0 || self.x > 2048 || self.y < 0 || self.y > 2732) {
isGameOver = true;
}
for (var i = 0; i < self.body.length; i++) {
if (self.intersects(self.body[i])) {
isGameOver = true;
break;
}
}
};
});
var Game = Container.expand(function () {
var self = Container.call(this);
LK.stageContainer.setBackgroundColor(0x000000);
var dots = [];
var snake = self.addChild(new Snake());
snake.x = 1024;
snake.y = 1366;
var scoreTxt = new Text2('0', {
size: 150,
fill: "#ffffff"
});
scoreTxt.anchor.set(.5, 0);
LK.gui.topCenter.addChild(scoreTxt);
var isGameOver = false;
LK.on('tick', function () {
snake.move();
snake.checkCollision();
if (isGameOver) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
for (var i = 0; i < dots.length; i++) {
if (snake.intersects(dots[i]) && !dots[i].eaten) {
snake.eat(dots[i]);
dots[i].eaten = true;
scoreTxt.setText(parseInt(scoreTxt.text) + 1);
}
}
});
stage.on('down', function (obj) {
var event = obj.event;
var pos = event.getLocalPosition(self);
var angle = Math.atan2(pos.y - snake.y, pos.x - snake.x);
if (angle >= -Math.PI / 4 && angle < Math.PI / 4) {
snake.direction = 'right';
} else if (angle >= Math.PI / 4 && angle < 3 * Math.PI / 4) {
snake.direction = 'down';
} else if (angle >= 3 * Math.PI / 4 && angle <= Math.PI || angle >= -Math.PI && angle < -3 * Math.PI / 4) {
snake.direction = 'left';
} else if (angle >= -3 * Math.PI / 4 && angle < -Math.PI / 4) {
snake.direction = 'up';
}
});
var dotSpawnInterval = LK.setInterval(function () {
var dot = new Dot();
dot.x = Math.random() * 2048;
dot.y = Math.random() * 2732;
dots.push(dot);
self.addChild(dot);
}, 1000);
});
===================================================================
--- original.js
+++ change.js
@@ -9,21 +9,21 @@
self.length = 1;
self.direction = 'right';
self.body = [];
self.move = function () {
- var speed = 5;
+ var gridSize = 64;
switch (self.direction) {
case 'right':
- self.x += speed;
+ self.x += gridSize;
break;
case 'left':
- self.x -= speed;
+ self.x -= gridSize;
break;
case 'down':
- self.y += speed;
+ self.y += gridSize;
break;
case 'up':
- self.y -= speed;
+ self.y -= gridSize;
break;
}
};
self.eat = function (dot) {