-
Notifications
You must be signed in to change notification settings - Fork 1
/
Food.js
55 lines (48 loc) · 1.8 KB
/
Food.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
var cocos = require('cocos2d');
var geom = require('geometry');
var Food = cocos.nodes.Node.extend({
visible: false,
added: false,
init: function(parent) {
Food.superclass.init.call(this);
var cherry = cocos.nodes.Sprite.create({
file: '/resources/sprites.png',
rect: new geom.Rect(112, 0, 16, 16)
});
this.addChild({child: cherry});
this.set('contentSize', cherry.get('contentSize'));
//var moves = this.get('parent').get('snake').get('moves');
this.schedule({
method: this.update
})
},
update: function(dt) {
// We check if someone is consuming us.
if (this.visible) {
var foodBox = this.get('boundingBox'),
playerBox = this.get('parent').get('player').get('boundingBox');
if (geom.rectOverlapsRect(foodBox, playerBox)) {
this.get('parent').removeFood(this);
console.log('pickup.play');
var snd = new Audio("/__jah__/resources/pickup.wav");
snd.play();
}
if(this.get('added') === false) {
var pos = this.get('position');
//var moves = parent.get('snake').get('moves');
var moves = this.get('parent').get('snake').get('moves');
console.log("adding food at " + pos.x + ", " + pos.y);
//moves.add({
// x: pos.x,
// y: pos.y,
// type: "bogus"
//});
var parent = this.get('parent');
var snake = parent.get('snake');
var moves = snake.set('moves', moves);
this.set('added', true);
}
}
}
});
exports.Food = Food;