forked from sent/waves
100 lines
2.0 KiB
JavaScript
100 lines
2.0 KiB
JavaScript
Game.addToManifest({
|
|
cricket: "sprites/misc/cricket.json"
|
|
});
|
|
function Cricket(scene){
|
|
|
|
var self = this;
|
|
self.scene = scene;
|
|
|
|
self._CLASS_ = "Cricket";
|
|
|
|
var mc = MakeMovieClip("cricket");
|
|
self.graphics = mc;
|
|
self.mc = mc;
|
|
var DRAWING_SCALE = 0.25;
|
|
mc.scale.x = mc.scale.y = DRAWING_SCALE;
|
|
|
|
self.width = 137*DRAWING_SCALE;
|
|
self.height = 137*DRAWING_SCALE;
|
|
|
|
var MODE = 0;
|
|
var MODE_CHIRP = 0;
|
|
var MODE_HOP = 1;
|
|
|
|
self.flip = 1;
|
|
self.period = 10;
|
|
self.breathe = Math.floor(Math.random()*self.period);
|
|
self.hop = 0;
|
|
|
|
self.x = self.y = self.z = 0;
|
|
|
|
self.update = function(){
|
|
|
|
if(MODE==MODE_CHIRP){
|
|
self.breathe++;
|
|
if(self.breathe>self.period+10) self.breathe=0;
|
|
if(self.breathe>self.period){
|
|
var scale;
|
|
if(self.breathe%4==0) scale=1.1;
|
|
if(self.breathe%4==1) scale=1.0;
|
|
if(self.breathe%4==2) scale=0.9;
|
|
if(self.breathe%4==3) scale=1.0;
|
|
mc.scale.x = DRAWING_SCALE*(scale);
|
|
mc.scale.y = DRAWING_SCALE*(1/scale);
|
|
}else{
|
|
mc.scale.x = mc.scale.y = DRAWING_SCALE;
|
|
}
|
|
}
|
|
if(self.hopAwayTimeout>0){
|
|
self.hopAwayTimeout--;
|
|
if(self.hopAwayTimeout==0) MODE=MODE_HOP;
|
|
}
|
|
if(MODE==MODE_HOP){
|
|
var tv = scene.tv;
|
|
self.flip = 1;
|
|
self.x += 3.5;
|
|
self.hop += 0.1570795;
|
|
self.z = -Math.abs(Math.sin(self.hop))*100;
|
|
self.y = tv.y;
|
|
}
|
|
if(self.x>Game.width+50){
|
|
self.kill();
|
|
}
|
|
|
|
mc.scale.x = self.flip*Math.abs(mc.scale.x);
|
|
mc.x = self.x;
|
|
mc.y = self.y+self.z;
|
|
|
|
};
|
|
|
|
//////////////
|
|
// WATCH TV //
|
|
//////////////
|
|
|
|
self.hopAwayTimeout = -1;
|
|
self.watchTV = function(){
|
|
|
|
// 1) Stop & look
|
|
var tv = scene.tv;
|
|
self.x = tv.x + 100;
|
|
self.y = tv.y;
|
|
self.flip = -1;
|
|
var WAIT = Director.ZOOM_OUT_1_TIME + Director.SEE_VIEWERS_TIME + 2.3;
|
|
|
|
// 2) And go on.
|
|
self.hopAwayTimeout = _s(WAIT);
|
|
|
|
};
|
|
|
|
/////////////
|
|
// THE END //
|
|
/////////////
|
|
|
|
// KILL ME
|
|
self.kill = function(){
|
|
var world = self.scene.world;
|
|
world.props.splice(world.props.indexOf(self),1);
|
|
world.layers.props.removeChild(self.graphics);
|
|
};
|
|
|
|
} |