Team:AUC TURKEY/Test

From 2013hs.igem.org

(Difference between revisions)
Line 6: Line 6:
.source
.source
{
{
-
font: monospace 10 px black;
+
font: normal 11px monospace;
 +
color: black;
}
}
</style>
</style>
Line 16: Line 17:
<div class="source" style="margin: 0px; padding: 6px; border: 1px inset;">
<div class="source" style="margin: 0px; padding: 6px; border: 1px inset;">
<div style="display: none;">
<div style="display: none;">
-
var garen:Number=Infinity;
+
//platform
 +
var platform:MovieClip = _root.createEmptyMovieClip("platform", _root.getNextHighestDepth());
 +
var pID:Number = 20;
 +
var pLeft:Number = 0;
 +
var pRight:Number = pID * 40;
 +
var pFall:Number = 57;
 +
var pInc:Number = 3;
 +
//speed
 +
var speedTimer:Number = 0;
 +
var speedWait:Number = 48;
 +
var speedInc:Number = .2;
 +
var speed:Number = 7;
 +
var minSpeed:Number = 5;
 +
//jump
 +
var fallSpeed:Number = 0;
 +
var jumpSpeed:Number = 10;
 +
var floor:Number = 250;
 +
var jump:Number = 0;
 +
var doubleJump:Boolean = false;
 +
var gravity:Number = .5;
 +
var plat_arr:Array = [pLeft, 250, pRight];
 +
var signal:Boolean = true;
 +
//animation
 +
var animFrame:Number = 0;
 +
igeman_mc.stop();
 +
igeman_mc.run.stop();
 +
//fps
 +
var fps:Number = 48;
 +
var frames:Number = 0;
 +
var startTime:Number = 0;
 +
//fire
 +
var nextFire:Number = random(5) + 20;
 +
//ice
 +
var ices:MovieClip = _root.createEmptyMovieClip("ices", _root.getNextHighestDepth());
 +
var iceUse:Number = 1;
 +
var iceGiven:Number = 1;
 +
var iceReady:Boolean = true;
 +
var iceCooldown:Number = 0;
 +
var iceFloor:Number = 0;
 +
var iceRight:Number = 0;
 +
var iceWait:Number = 120;
 +
//music
 +
var doMute:Boolean = true;
 +
var firstMute:Number = mute_mc.getDepth();
 +
mute_mc.swapDepths(_root.getNextHighestDepth());
 +
if (snd)
 +
{
 +
mute_mc.gotoAndStop(1);
 +
}
 +
else
 +
{
 +
mute_mc.gotoAndStop(2);
 +
}
 +
var loop_snd:Sound = new Sound(this);
 +
var pauseTime:Number = 2000;
 +
var pause:Number;
 +
loop_snd.onSoundComplete = processPause;
 +
loop_snd.attachSound("music");
 +
function loopSound()
 +
{
 +
clearInterval(pause);
 +
loop_snd.start(0,1);
 +
}
 +
function processPause()
 +
{
 +
pause = setInterval(loopSound, pauseTime);
 +
}
 +
if (snd)
 +
{
 +
loopSound();
 +
}
 +
mute_btn.onPress = function()
 +
{
 +
if (snd)
 +
{
 +
pos = loop_snd.position / 1000;
 +
loop_snd.stop();
 +
mute_mc.gotoAndStop(2);
 +
}
 +
else
 +
{
 +
loop_snd.start(pos);
 +
mute_mc.gotoAndStop(1);
 +
}
 +
snd = !snd;
 +
};
 +
//pause
 +
var doPause:Boolean = true;
 +
var firstPause:Number = pause_mc.getDepth();
 +
pause_mc.swapDepths(_root.getNextHighestDepth());
 +
var paused:Boolean = false;
 +
pause_btn.onPress = function()
 +
{
 +
if (paused)
 +
{
 +
pause_mc.gotoAndStop(1);
 +
}
 +
else
 +
{
 +
pause_mc.gotoAndStop(2);
 +
}
 +
paused = !paused;
 +
};
 +
 
 +
//game over
 +
var over:Boolean = false;
 +
var score:Number = 0;
 +
var minTemp:Number = Infinity;
 +
//the Code
 +
for (var i:Number = 0; i < pID; i++)
 +
{
 +
var newPlat:MovieClip = platform.attachMovie("platform", "platform_" + i + "_mc", platform.getNextHighestDepth());
 +
newPlat._x = i * 40;
 +
newPlat._y = 250;
 +
if (--nextFire == 0)
 +
{
 +
var newFire:MovieClip = platform.attachMovie("fire", "fire_" + pID + "_mc", platform.getNextHighestDepth());
 +
nextFire = random(12) + 3;
 +
newFire._x = newPlat._x + 20;
 +
newFire._y = newPlat._y + 10;
 +
newFire.onEnterFrame = function()
 +
{
 +
if (paused)
 +
{
 +
return;
 +
}
 +
if (igeman_mc.hitTest(this._x + platform._x, this._y - 50, true))
 +
{
 +
speed -= .4;
 +
}
 +
if (platform._x < -this._x - 80)
 +
{
 +
this.removeMovieClip();
 +
}
 +
};
 +
}
 +
newPlat.onEnterFrame = function()
 +
{
 +
if (paused)
 +
{
 +
return;
 +
}
 +
this.gotoAndStop(Math.max(1, (200 - (int(speed * 8)))));
 +
if (platform._x < -this._x - 80)
 +
{
 +
this.removeMovieClip();
 +
}
 +
};
 +
}
 +
onEnterFrame = function ()
 +
{
 +
//mute
 +
if (Key.isDown(77))
 +
{
 +
if (doMute)
 +
{
 +
mute_btn.onPress();
 +
doMute = false;
 +
}
 +
}
 +
else
 +
{
 +
doMute = true;
 +
}
 +
//pause
 +
if (Key.isDown(80))
 +
{
 +
if (doPause)
 +
{
 +
pause_btn.onPress();
 +
doPause = false;
 +
}
 +
}
 +
else
 +
{
 +
doPause = true;
 +
}
 +
if (paused)
 +
{
 +
return;
 +
}
 +
var currentTime:Number = (getTimer() - startTime) / 1000;
 +
frames++;
 +
if (currentTime > 1)
 +
{
 +
fps = Math.floor((frames / currentTime) * 10.0) / 10.0;
 +
startTime = getTimer();
 +
frames = 0;
 +
}
 +
if (signal && igeman_mc._x - platform._x + 20 > plat_arr[0])
 +
{
 +
floor = plat_arr[1];
 +
plat_arr = plat_arr.slice(2);
 +
signal = !signal;
 +
realFloor = floor;
 +
}
 +
if (!signal && igeman_mc._x - platform._x - 20 > plat_arr[0])
 +
{
 +
floor = 800;
 +
plat_arr = plat_arr.slice(1);
 +
signal = !signal;
 +
realFloor = floor;
 +
}
 +
if (igeman_mc._x - platform._x - 10 < iceRight)
 +
{
 +
floor = Math.min(realFloor, iceFloor);
 +
if (floor == iceFloor && !jump)
 +
{
 +
speedInc = 1.2;
 +
}
 +
else
 +
{
 +
speedInc = .2;
 +
}
 +
}
 +
else
 +
{
 +
speedInc = .2;
 +
floor = realFloor;
 +
}
 +
if (!over)
 +
{
 +
if (platform._x <= -pLeft + 550)
 +
{
 +
addPlatform();
 +
pFall += pInc;
 +
}
 +
if (++speedTimer >= speedWait)
 +
{
 +
speedTimer = 0;
 +
speed += speedInc;
 +
}
 +
if (speed < minSpeed)
 +
{
 +
speed = minSpeed;
 +
}
 +
platform._x -= speed * 12 / 25;
 +
ices._x -= speed * 12 / 25;
 +
animFrame = (animFrame + speed * 25 / 120) % igeman_mc.run._totalframes;
 +
igeman_mc.run.gotoAndStop(int(animFrame));
 +
if (!jump && floor > igeman_mc._y + 95 / 2)
 +
{
 +
fallSpeed = 0;
 +
jump = 1;
 +
}
 +
if (Key.isDown(Key.UP))
 +
{
 +
if (jump == 0)
 +
{
 +
fallSpeed = -jumpSpeed;
 +
jump++;
 +
}
 +
if (doubleJump == true)
 +
{
 +
fallSpeed = -jumpSpeed;
 +
jump++;
 +
doubleJump = false;
 +
}
 +
}
 +
else if (jump == 1)
 +
{
 +
doubleJump = true;
 +
}
 +
if (floor + 1 < igeman_mc._y + 95 / 2)
 +
{
 +
over = true;
 +
ices.removeMovieClip();
 +
}
 +
}
 +
if (jump || over)
 +
{
 +
igeman_mc._y += fallSpeed += gravity;
 +
if (igeman_mc._y > floor - 95 / 2 && !over)
 +
{
 +
jump = 0;
 +
doubleJump = false;
 +
igeman_mc._y = floor - 95 / 2;
 +
}
 +
}
 +
if (jump)
 +
{
 +
igeman_mc.gotoAndStop(2);
 +
animFrame = 25;
 +
}
 +
else
 +
{
 +
igeman_mc.gotoAndStop(1);
 +
}
 +
var dist:Number = Math.floor((-platform._x) / 50);
 +
//ice
 +
if (dist >= iceGiven * iceWait)
 +
{
 +
iceGiven++;
 +
iceUse++;
 +
}
 +
if (iceCooldown > 0)
 +
{
 +
iceCooldown--;
 +
}
 +
if (Key.isDown(Key.SPACE))
 +
{
 +
if (iceReady && iceUse && !iceCooldown)
 +
{
 +
iceCooldown = 24;
 +
iceReady = false;
 +
iceUse--;
 +
iceRight = -platform._x + igeman_mc._x + 300;
 +
var newIce:MovieClip = ices.attachMovie("ice", "ice", ices.getNextHighestDepth());
 +
newIce._x = -platform._x + igeman_mc._x;
 +
newIce._y = igeman_mc._y + 95 / 2;
 +
iceFloor = newIce._y;
 +
newIce.onEnterFrame = function()
 +
{
 +
if (paused)
 +
{
 +
return;
 +
}
 +
if (this._x < -300 - ices._x)
 +
{
 +
this.removeMovieClip();
 +
}
 +
};
 +
}
 +
}
 +
else
 +
{
 +
iceReady = true;
 +
}
 +
//ui
 +
//fps_txt.text = (Math.round(fps * 10) / 10);
 +
speed_txt.text = (Math.round(speed * 10) / 10);
 +
dist_txt.text = dist;
 +
special_txt.text = iceUse;
 +
special_mc._xscale = 100 - (iceGiven * iceWait - dist) / iceWait * 100;
 +
//temp_txt.text = (200 - (int(speed * 8)));
 +
var temp:Number = (200 - (int(speed * 8)));
 +
minTemp = Math.min(minTemp, temp);
 +
thermometer_mc.gotoAndStop(Math.max(1, temp));
 +
bg_mc.gotoAndStop(Math.max(1, temp));
 +
if (igeman_mc._y > 400)
 +
{
 +
over = true;
 +
loop_snd.stop();
 +
platform.removeMovieClip();
 +
ices.removeMovieClip();
 +
score = dist * 25 + Math.pow(Math.min(Math.max(0, 144 - minTemp), 144), 2);
 +
mute_mc.swapDepths(firstMute);
 +
pause_mc.swapDepths(firstPause);
 +
nextFrame();
 +
delete onEnterFrame;
 +
}
 +
};
 +
function addPlatform()
 +
{
 +
var h:Number = random(150) + 200;
 +
var len:Number = random(10) + 1;
 +
var moving:Boolean = false;
 +
pLeft = pRight + pFall;
 +
pRight = pLeft + len * 40;
 +
plat_arr.push(pLeft);
 +
plat_arr.push(h);
 +
plat_arr.push(pRight);
 +
if (len > 4 && !(random(5)))
 +
{
 +
moving = true;
 +
}
 +
for (var i:Number = 0; i < len; i++)
 +
{
 +
var newPlat:MovieClip = platform.attachMovie("platform", "platform_" + pID + "_mc", platform.getNextHighestDepth());
 +
newPlat._x = i * 40 + pLeft;
 +
newPlat._y = h;
 +
if (!moving && --nextFire == 0)
 +
{
 +
var newFire:MovieClip = platform.attachMovie("fire", "fire_" + pID + "_mc", platform.getNextHighestDepth());
 +
nextFire = random(12) + 3;
 +
newFire._x = newPlat._x + 20;
 +
newFire._y = newPlat._y + 10;
 +
newFire.onEnterFrame = function()
 +
{
 +
if (paused)
 +
{
 +
return;
 +
}
 +
if (this.hitTest(ices))
 +
{
 +
this.removeMovieClip();
 +
}
 +
if (igeman_mc.hitTest(this._x + platform._x, this._y - 50, true))
 +
{
 +
speed -= .4;
 +
}
 +
if (platform._x < -this._x - 80)
 +
{
 +
this.removeMovieClip();
 +
}
 +
};
 +
pID++;
 +
}
 +
newPlat.onEnterFrame = function()
 +
{
 +
if (paused)
 +
{
 +
return;
 +
}
 +
this.gotoAndStop(Math.max(1, (200 - (int(speed * 8)))));
 +
if (platform._x < -this._x - 80)
 +
{
 +
this.removeMovieClip();
 +
}
 +
};
 +
}
 +
if (moving)
 +
{
 +
var newFire:MovieClip = platform.attachMovie("fire", "fire_" + pID + "_mc", platform.getNextHighestDepth());
 +
newFire._x = pLeft + random(len) * 40 + 20;
 +
newFire._y = h + 10;
 +
newFire.left = pLeft + 20;
 +
newFire.right = pRight - 20;
 +
newFire.speed = 2;
 +
newFire.onEnterFrame = function()
 +
{
 +
if (paused)
 +
{
 +
return;
 +
}
 +
if (this.hitTest(ices))
 +
{
 +
this.removeMovieClip();
 +
}
 +
if (this._x < this.left || this._x > this.right)
 +
{
 +
this.speed *= -1;
 +
}
 +
this._x += this.speed;
 +
if (igeman_mc.hitTest(this._x + platform._x, this._y - 50, true))
 +
{
 +
speed -= .4;
 +
}
 +
if (platform._x < -this._x - pRight + pLeft - 80)
 +
{
 +
this.removeMovieClip();
 +
}
 +
};
 +
}
 +
}
</div>
</div>
</div>
</div>

Revision as of 05:59, 12 June 2013



Here's the source code of the game if you're interested:
//platform var platform:MovieClip = _root.createEmptyMovieClip("platform", _root.getNextHighestDepth()); var pID:Number = 20; var pLeft:Number = 0; var pRight:Number = pID * 40; var pFall:Number = 57; var pInc:Number = 3; //speed var speedTimer:Number = 0; var speedWait:Number = 48; var speedInc:Number = .2; var speed:Number = 7; var minSpeed:Number = 5; //jump var fallSpeed:Number = 0; var jumpSpeed:Number = 10; var floor:Number = 250; var jump:Number = 0; var doubleJump:Boolean = false; var gravity:Number = .5; var plat_arr:Array = [pLeft, 250, pRight]; var signal:Boolean = true; //animation var animFrame:Number = 0; igeman_mc.stop(); igeman_mc.run.stop(); //fps var fps:Number = 48; var frames:Number = 0; var startTime:Number = 0; //fire var nextFire:Number = random(5) + 20; //ice var ices:MovieClip = _root.createEmptyMovieClip("ices", _root.getNextHighestDepth()); var iceUse:Number = 1; var iceGiven:Number = 1; var iceReady:Boolean = true; var iceCooldown:Number = 0; var iceFloor:Number = 0; var iceRight:Number = 0; var iceWait:Number = 120; //music var doMute:Boolean = true; var firstMute:Number = mute_mc.getDepth(); mute_mc.swapDepths(_root.getNextHighestDepth()); if (snd) { mute_mc.gotoAndStop(1); } else { mute_mc.gotoAndStop(2); } var loop_snd:Sound = new Sound(this); var pauseTime:Number = 2000; var pause:Number; loop_snd.onSoundComplete = processPause; loop_snd.attachSound("music"); function loopSound() { clearInterval(pause); loop_snd.start(0,1); } function processPause() { pause = setInterval(loopSound, pauseTime); } if (snd) { loopSound(); } mute_btn.onPress = function() { if (snd) { pos = loop_snd.position / 1000; loop_snd.stop(); mute_mc.gotoAndStop(2); } else { loop_snd.start(pos); mute_mc.gotoAndStop(1); } snd = !snd; }; //pause var doPause:Boolean = true; var firstPause:Number = pause_mc.getDepth(); pause_mc.swapDepths(_root.getNextHighestDepth()); var paused:Boolean = false; pause_btn.onPress = function() { if (paused) { pause_mc.gotoAndStop(1); } else { pause_mc.gotoAndStop(2); } paused = !paused; }; //game over var over:Boolean = false; var score:Number = 0; var minTemp:Number = Infinity; //the Code for (var i:Number = 0; i < pID; i++) { var newPlat:MovieClip = platform.attachMovie("platform", "platform_" + i + "_mc", platform.getNextHighestDepth()); newPlat._x = i * 40; newPlat._y = 250; if (--nextFire == 0) { var newFire:MovieClip = platform.attachMovie("fire", "fire_" + pID + "_mc", platform.getNextHighestDepth()); nextFire = random(12) + 3; newFire._x = newPlat._x + 20; newFire._y = newPlat._y + 10; newFire.onEnterFrame = function() { if (paused) { return; } if (igeman_mc.hitTest(this._x + platform._x, this._y - 50, true)) { speed -= .4; } if (platform._x < -this._x - 80) { this.removeMovieClip(); } }; } newPlat.onEnterFrame = function() { if (paused) { return; } this.gotoAndStop(Math.max(1, (200 - (int(speed * 8))))); if (platform._x < -this._x - 80) { this.removeMovieClip(); } }; } onEnterFrame = function () { //mute if (Key.isDown(77)) { if (doMute) { mute_btn.onPress(); doMute = false; } } else { doMute = true; } //pause if (Key.isDown(80)) { if (doPause) { pause_btn.onPress(); doPause = false; } } else { doPause = true; } if (paused) { return; } var currentTime:Number = (getTimer() - startTime) / 1000; frames++; if (currentTime > 1) { fps = Math.floor((frames / currentTime) * 10.0) / 10.0; startTime = getTimer(); frames = 0; } if (signal && igeman_mc._x - platform._x + 20 > plat_arr[0]) { floor = plat_arr[1]; plat_arr = plat_arr.slice(2); signal = !signal; realFloor = floor; } if (!signal && igeman_mc._x - platform._x - 20 > plat_arr[0]) { floor = 800; plat_arr = plat_arr.slice(1); signal = !signal; realFloor = floor; } if (igeman_mc._x - platform._x - 10 < iceRight) { floor = Math.min(realFloor, iceFloor); if (floor == iceFloor && !jump) { speedInc = 1.2; } else { speedInc = .2; } } else { speedInc = .2; floor = realFloor; } if (!over) { if (platform._x <= -pLeft + 550) { addPlatform(); pFall += pInc; } if (++speedTimer >= speedWait) { speedTimer = 0; speed += speedInc; } if (speed < minSpeed) { speed = minSpeed; } platform._x -= speed * 12 / 25; ices._x -= speed * 12 / 25; animFrame = (animFrame + speed * 25 / 120) % igeman_mc.run._totalframes; igeman_mc.run.gotoAndStop(int(animFrame)); if (!jump && floor > igeman_mc._y + 95 / 2) { fallSpeed = 0; jump = 1; } if (Key.isDown(Key.UP)) { if (jump == 0) { fallSpeed = -jumpSpeed; jump++; } if (doubleJump == true) { fallSpeed = -jumpSpeed; jump++; doubleJump = false; } } else if (jump == 1) { doubleJump = true; } if (floor + 1 < igeman_mc._y + 95 / 2) { over = true; ices.removeMovieClip(); } } if (jump || over) { igeman_mc._y += fallSpeed += gravity; if (igeman_mc._y > floor - 95 / 2 && !over) { jump = 0; doubleJump = false; igeman_mc._y = floor - 95 / 2; } } if (jump) { igeman_mc.gotoAndStop(2); animFrame = 25; } else { igeman_mc.gotoAndStop(1); } var dist:Number = Math.floor((-platform._x) / 50); //ice if (dist >= iceGiven * iceWait) { iceGiven++; iceUse++; } if (iceCooldown > 0) { iceCooldown--; } if (Key.isDown(Key.SPACE)) { if (iceReady && iceUse && !iceCooldown) { iceCooldown = 24; iceReady = false; iceUse--; iceRight = -platform._x + igeman_mc._x + 300; var newIce:MovieClip = ices.attachMovie("ice", "ice", ices.getNextHighestDepth()); newIce._x = -platform._x + igeman_mc._x; newIce._y = igeman_mc._y + 95 / 2; iceFloor = newIce._y; newIce.onEnterFrame = function() { if (paused) { return; } if (this._x < -300 - ices._x) { this.removeMovieClip(); } }; } } else { iceReady = true; } //ui //fps_txt.text = (Math.round(fps * 10) / 10); speed_txt.text = (Math.round(speed * 10) / 10); dist_txt.text = dist; special_txt.text = iceUse; special_mc._xscale = 100 - (iceGiven * iceWait - dist) / iceWait * 100; //temp_txt.text = (200 - (int(speed * 8))); var temp:Number = (200 - (int(speed * 8))); minTemp = Math.min(minTemp, temp); thermometer_mc.gotoAndStop(Math.max(1, temp)); bg_mc.gotoAndStop(Math.max(1, temp)); if (igeman_mc._y > 400) { over = true; loop_snd.stop(); platform.removeMovieClip(); ices.removeMovieClip(); score = dist * 25 + Math.pow(Math.min(Math.max(0, 144 - minTemp), 144), 2); mute_mc.swapDepths(firstMute); pause_mc.swapDepths(firstPause); nextFrame(); delete onEnterFrame; } }; function addPlatform() { var h:Number = random(150) + 200; var len:Number = random(10) + 1; var moving:Boolean = false; pLeft = pRight + pFall; pRight = pLeft + len * 40; plat_arr.push(pLeft); plat_arr.push(h); plat_arr.push(pRight); if (len > 4 && !(random(5))) { moving = true; } for (var i:Number = 0; i < len; i++) { var newPlat:MovieClip = platform.attachMovie("platform", "platform_" + pID + "_mc", platform.getNextHighestDepth()); newPlat._x = i * 40 + pLeft; newPlat._y = h; if (!moving && --nextFire == 0) { var newFire:MovieClip = platform.attachMovie("fire", "fire_" + pID + "_mc", platform.getNextHighestDepth()); nextFire = random(12) + 3; newFire._x = newPlat._x + 20; newFire._y = newPlat._y + 10; newFire.onEnterFrame = function() { if (paused) { return; } if (this.hitTest(ices)) { this.removeMovieClip(); } if (igeman_mc.hitTest(this._x + platform._x, this._y - 50, true)) { speed -= .4; } if (platform._x < -this._x - 80) { this.removeMovieClip(); } }; pID++; } newPlat.onEnterFrame = function() { if (paused) { return; } this.gotoAndStop(Math.max(1, (200 - (int(speed * 8))))); if (platform._x < -this._x - 80) { this.removeMovieClip(); } }; } if (moving) { var newFire:MovieClip = platform.attachMovie("fire", "fire_" + pID + "_mc", platform.getNextHighestDepth()); newFire._x = pLeft + random(len) * 40 + 20; newFire._y = h + 10; newFire.left = pLeft + 20; newFire.right = pRight - 20; newFire.speed = 2; newFire.onEnterFrame = function() { if (paused) { return; } if (this.hitTest(ices)) { this.removeMovieClip(); } if (this._x < this.left || this._x > this.right) { this.speed *= -1; } this._x += this.speed; if (igeman_mc.hitTest(this._x + platform._x, this._y - 50, true)) { speed -= .4; } if (platform._x < -this._x - pRight + pLeft - 80) { this.removeMovieClip(); } }; } }

<forum_subtle/>