View
Theme
Font Style
7pt
8pt
9pt
10pt
11pt
Line Style
100%
110%
120%
130%
140%
Bold Keyword
Default
Inspector
Kkaefer
Eclipse
SQ Light
Lesser
Dark
Cobalt
Monokai
Rubyblue
Night
SQ Dark
Ambiance
Blackboard
Line Num.
Wrap Lines
Preview
Redraw
JS Tab
HTML Tab
CSS Tab
Live Tab
Prev. Tab
Next Tab
Browser
History…
Help
Edit
Settings
Auto Complete
Match Brackets
Match Highlight
Strip Whitespace
Auto Close Brackets
Auto Close Quotes
Show Print Margin
Undo
Redo
Delete
Select Line
Select All
Find & Replace
Find
Find in Repo.
Find Next
Find Previous
Replace Single
Replace All
Wrap Search
Revert
As Template
Diff Revision
Format
Compress
Text
Zen Coding
Indent
Tab Width
1
2
3
4
5
6
7
8
Indent Unit
1
2
3
4
5
6
7
8
Smart Indent
Use Tabs
Visible Tabs
Shift Left
Shift Right
Put Indent
Number
Increment by 1
Decrement by 1
Increment by 0.1
Decrement by 0.1
Increment by 10
Decrement by 10
Simple Math
Comment
Line
Move Up
Move Down
Copy Up
Copy Down
Go to Line…
Remove Line
Next Point
Prev. Point
Help
Share
Login
You can jump to the latest bin by adding
/latest
to your URL
×
z
Find
→
←
⟲
Replace
⊗
All
Replace
var key_manager={ value:0, init:function(){ document.onkeydown=this.keydown; document.onkeyup=this.keyup; }, keydown:function(e){ if(!e) e=window.event; if(e.keyCode==37 && (key_manager.value&1)==0) key_manager.value=key_manager.value+1; if(e.keyCode==32 && (key_manager.value&2)==0) key_manager.value=key_manager.value+2; if(e.keyCode==39 && (key_manager.value&4)==0) key_manager.value=key_manager.value+4; if(e.keyCode==40 && (key_manager.value&8)==0) key_manager.value=key_manager.value+8; if(e.keyCode==38 && (key_manager.value&16)==0) key_manager.value=key_manager.value+16; if(e.keyCode==81 && (key_manager.value&32)==0) key_manager.value=key_manager.value+32; }, keyup:function(e){ if(!e) e=window.event; if(e.keyCode==37 && (key_manager.value&1)==1) key_manager.value=key_manager.value-1; if(e.keyCode==32 && (key_manager.value&2)==2) key_manager.value=key_manager.value-2; if(e.keyCode==39 && (key_manager.value&4)==4) key_manager.value=key_manager.value-4; if(e.keyCode==40 && (key_manager.value&8)==8) key_manager.value=key_manager.value-8; if(e.keyCode==38 && (key_manager.value&16)==16) key_manager.value=key_manager.value-16; if(e.keyCode==81 && (key_manager.value&32)==32) key_manager.value=key_manager.value-32; } } key_manager.init(); var Game=new CPGE.game("Game","canvas"); var coin=function(obj){ CPGE.animationObject(obj); CPGE.physicsObject(obj); CPGE.floorObject(obj); obj.addState("spin",CPGE.resourceLoader.resource["coin"],0,0,75,75,23,true); obj.changeState("spin"); obj.coin=true; } var baddie1=function(obj){ CPGE.animationObject(obj); CPGE.physicsObject(obj); CPGE.floorObject(obj); obj.addState("walk",CPGE.resourceLoader.resource["baddie1_walk"],0,0,100,80,25,true); obj.addState("die",CPGE.resourceLoader.resource["baddie1_die"],0,0,100,80,5,false); obj.changeState("walk"); obj.dir=1; obj.baddie=true; obj.onFrameChange=function(frame){ if(this.state!="die"){ if(this.onWall){ this.dir=this.dir*-1; this.velocity[0]=this.velocity[0]*-1; } if(frame==10) this.velocity[0]=200*this.dir; if(frame==1) this.velocity[0]=0; } else { this.velocity[0]=0; if(frame==4) this.visible=false; } } } var Livescnt=3; Gamemenu=function(){ Livescnt=3; this.map.size=[2400,600]; //background layer var mylayer=new CPGE.layer(); mylayer.img=CPGE.resourceLoader.resource["mount"]; mylayer.size=[3,1]; mylayer.blocksize=[800,600]; mylayer.data=[[1,1,1]]; this.map.addLayer(mylayer); //foregound layer var mylayer=new CPGE.layer(); mylayer.img=CPGE.resourceLoader.resource["menu"]; mylayer.size=[1,1]; mylayer.blocksize=[700,500]; mylayer.data=[[1]]; this.map.addLayer(mylayer); var newgame=new CPGE.gameObject(); newgame.overlay=true; CPGE.animationObject(newgame); CPGE.drawableObject(newgame); newgame.addState("static",CPGE.resourceLoader.resource["newgame"],0,0,250,50,1,false); newgame.addState("move",CPGE.resourceLoader.resource["newgame"],0,0,250,50,14,true); newgame.changeState("static"); newgame.position=[440,65]; this.addObject(newgame); var hiscore=new CPGE.gameObject(); hiscore.overlay=true; CPGE.animationObject(hiscore); CPGE.drawableObject(hiscore); hiscore.addState("static",CPGE.resourceLoader.resource["highscores"],0,0,320,55,1,false); hiscore.addState("move",CPGE.resourceLoader.resource["highscores"],0,0,320,55,14,true); hiscore.changeState("static"); hiscore.position=[465,130]; this.addObject(hiscore); var credits=new CPGE.gameObject(); credits.overlay=true; CPGE.animationObject(credits); CPGE.drawableObject(credits); credits.addState("static",CPGE.resourceLoader.resource["credits"],0,0,200,50,1,false); credits.addState("move",CPGE.resourceLoader.resource["credits"],0,0,200,50,14,true); credits.changeState("static"); credits.position=[410,180]; this.addObject(credits); var Cursor=new CPGE.gameObject(); Cursor.overlay=true; CPGE.animationObject(Cursor); CPGE.drawableObject(Cursor); Cursor.addState("cursor",CPGE.resourceLoader.resource["cursor"],0,0,32,32,20,true); Cursor.changeState("cursor"); Cursor.position=[280,120]; Cursor.target=[280,120]; Cursor.addTick(function(time){ this.game.map.view.offset=[Math.round(((time-this.startTime)/20)%900),0]; if(this.target[1]==65){ newgame.changeState("move"); } else { newgame.changeState("static"); } if(this.target[1]==120){ hiscore.changeState("move"); } else { hiscore.changeState("static"); } if(this.target[1]==175){ credits.changeState("move"); } else { credits.changeState("static"); } if((key_manager.value&2)==2){ if(this.target[1]==65){ this.game.onRestart=Maingame; this.game.init(); } if(this.target[1]==120){ document.getElementById("debug").innerHTML="no top scores yet"; } if(this.target[1]==175){ document.getElementById("debug").innerHTML="Everything by Paul Brunt"; } } if((key_manager.value&8)==8 && this.target[1]==this.position[1]){ if(this.target[1]<175) this.target[1]=this.target[1]+55; } if((key_manager.value&16)==16 && this.target[1]==this.position[1]){ if(this.target[1]>65) this.target[1]=this.target[1]-55; } if(this.position[1]!=this.target[1]){ this.position[1]=this.position[1]-(this.position[1]-this.target[1])/5; } if(Math.abs(this.position[1]-this.target[1])/5<0.1) this.position[1]=this.target[1]; }); this.addObject(Cursor); } Maingame=function(){ eval(CPGE.resourceLoader.resource["level1"]); //sort out the layers this.map.environment.size=[environment[0].length,environment.length]; this.map.environment.blocksize=[100,100]; this.map.environment.data=environment; this.map.size=[environment[0].length*100,environment.length*100]; //background layer var mylayer=new CPGE.layer(); mylayer.img=CPGE.resourceLoader.resource["mount"]; mylayer.size=[3,1]; mylayer.blocksize=[800,600]; mylayer.data=[[1,1,1]]; this.map.addLayer(mylayer); //background layer var mylayer=new CPGE.layer(); mylayer.img=CPGE.resourceLoader.resource["backtrees"]; mylayer.size=[7,1]; mylayer.blocksize=[800,600]; mylayer.data=[[1,1,1,1,1,1,1]]; this.map.addLayer(mylayer); mylayer=new CPGE.layer(foreground[0].length,foreground.length); mylayer.img=CPGE.resourceLoader.resource["background"]; mylayer.blocksize=[100,100]; mylayer.data=foreground; mylayer.foreground=true; this.map.addLayer(mylayer); mylayer=new CPGE.layer(playerlayer1[0].length,playerlayer1.length); mylayer.img=CPGE.resourceLoader.resource["background"]; mylayer.blocksize=[100,100]; mylayer.data=playerlayer1; this.map.addLayer(mylayer); mylayer=new CPGE.layer(playerlayer2[0].length,playerlayer2.length); mylayer.img=CPGE.resourceLoader.resource["background"]; mylayer.blocksize=[100,100]; mylayer.data=playerlayer2; this.map.addLayer(mylayer); for(var i=0;i
19 && this.state=="exitclosed") this.changeState("exitopen"); }); this.addObject(gameexit); } var Score=new CPGE.gameObject(); CPGE.textObject(Score,"CrimewaveBB","Coins:0"); Score.position=[20,430]; Score.score=0; Game.addObject(Score); var Lives=new CPGE.gameObject(); CPGE.textObject(Lives,"CrimewaveBB","Lives:"+Livescnt); Lives.position=[500,420]; Game.addObject(Lives); var fadeout=function(time){ if(!this.fadetime) this.fadetime=2000; if(!this.fadeStart) { if(key_manager.value!=2 && key_manager.value!=0) this.fadeStart=time; } else { this.alpha=1-Math.min((time-this.fadeStart)/this.fadetime,1); if(this.alpha==0){ this.alpha=0.001; this.visible=false; //remove this fading from the loop delete(this.ticks); this.ticks=[]; } } } //level overlay var Level1=new CPGE.gameObject(); CPGE.textObject(Level1,"CrimewaveBB","LEVEL 1"); Level1.position=[250,200]; Level1.addTick(fadeout); Game.addObject(Level1); var desc=new CPGE.gameObject(); CPGE.textObject(desc,"CrimewaveBB","Berts Breakdown"); desc.position=[150,250]; desc.addTick(fadeout); Game.addObject(desc); //end overlay var Totaltime=new CPGE.gameObject(); CPGE.textObject(Totaltime,"CrimewaveBB","Time: 12:00:00"); Totaltime.position=[150,100]; Totaltime.visible=false; Totaltime.addTick(function(time){ if(!this.totaltime) this.totaltime=time-this.game.gamestart; if(!this.starttime){ if(this.visible) this.starttime=time; } else { var frametime=this.totaltime-Math.min((time-this.starttime)/5000,1)*this.totaltime; minutes=Math.round(frametime/1000/60); seconds=Math.round((frametime/1000)%60); milisecs=Math.round((frametime/10)%99); if((""+milisecs).length<2) milisecs="0"+(milisecs); if((""+seconds).length<2) seconds="0"+(seconds); if((""+minutes).length<2) minutes="0"+(minutes); this.text="Time: "+minutes+":"+seconds+":"+milisecs; } }); Game.addObject(Totaltime); var Totalcoins=new CPGE.gameObject(); CPGE.textObject(Totalcoins,"CrimewaveBB","Coins: 0"); Totalcoins.position=[150,150]; Totalcoins.visible=false; Totalcoins.addTick(function(time){ if(!this.starttime){ if(this.visible) this.starttime=time; } else { var frametime=Math.round(Score.score-Math.min(Math.max((time-this.starttime-5000)/5000,0),1)*Score.score); this.text="Coins: "+frametime; } }); Game.addObject(Totalcoins); var Totalscore=new CPGE.gameObject(); CPGE.textObject(Totalscore,"CrimewaveBB","Score: 0"); Totalscore.position=[150,230]; Totalscore.visible=false; Totalscore.addTick(function(time){ var bonustime=1000000; if(!this.starttime){ if(this.visible) this.starttime=time; } else { totalscore=Math.max(bonustime-Totaltime.totaltime,0)/100; var currentscore=Math.round(Math.min(Math.max((time-this.starttime)/5000,0),1)*totalscore); currentscore=currentscore+Math.round(Math.min(Math.max((time-this.starttime-5000)/5000,0),1)*Score.score*20); this.text="Score: "+currentscore; if((time-this.starttime)>10000){ Pressspace.visible=true; } } }); Game.addObject(Totalscore); var Pressspace=new CPGE.gameObject(); CPGE.textObject(Pressspace,"CrimewaveBB","Press spacebar"); Pressspace.visible=false; Pressspace.addTick(function(time){ if((key_manager.value&2)==2 && this.visible){ this.game.onRestart=Gamemenu; this.game.init(); } }); Pressspace.position=[150,330]; Game.addObject(Pressspace); var Gameover=new CPGE.gameObject(); CPGE.textObject(Gameover,"CrimewaveBB","Game Over"); Gameover.visible=false; Gameover.position=[200,230]; Game.addObject(Gameover); var Player=new CPGE.gameObject(); CPGE.animationObject(Player); CPGE.drawableObject(Player); CPGE.physicsObject(Player); CPGE.floorObject(Player); CPGE.collisionObject(Player); Player.position=[objects[1][0][0],objects[1][0][1]]; this.map.view.offset=[objects[1][0][0],objects[1][0][1]]; Player.frameRate=40; Player.addState("walkleft",CPGE.resourceLoader.resource["player_walkleft"],0,0,120,120,16,false); Player.addState("walkright",CPGE.resourceLoader.resource["player_walkright"],0,0,120,120,16,false); Player.addState("standleft",CPGE.resourceLoader.resource["player_standleft"],0,0,100,120,5,false); Player.addState("standright",CPGE.resourceLoader.resource["player_standright"],0,0,100,120,5,false); Player.addState("turnright",CPGE.resourceLoader.resource["player_turnright"],0,0,100,120,7,false); Player.addState("turnleft",CPGE.resourceLoader.resource["player_turnleft"],0,0,100,120,7,false); Player.addState("startwalkright",CPGE.resourceLoader.resource["player_startwalkright"],0,0,100,120,5,false); Player.addState("startwalkleft",CPGE.resourceLoader.resource["player_startwalkleft"],0,0,100,120,5,false); Player.addState("standingleft",CPGE.resourceLoader.resource["player_standingleft"],0,0,80,120,14,false); Player.addState("standingright",CPGE.resourceLoader.resource["player_standingright"],0,0,80,120,14,false); Player.addState("jumpleft",CPGE.resourceLoader.resource["player_jumpleft"],0,0,120,135,15,false); Player.addState("jumpright",CPGE.resourceLoader.resource["player_jumpright"],0,0,120,135,15,false); Player.addState("landleft",CPGE.resourceLoader.resource["player_landleft"],0,0,120,135,15,false); Player.addState("landright",CPGE.resourceLoader.resource["player_landright"],0,0,120,135,15,false); Player.addState("jumpturnleft",CPGE.resourceLoader.resource["player_jumpturnleft"],0,0,120,135,7,false); Player.addState("jumpturnright",CPGE.resourceLoader.resource["player_jumpturnright"],0,0,120,135,7,false); Player.addState("die",CPGE.resourceLoader.resource["player_die"],0,0,120,120,15,false); Player.changeState("walkright"); Player.onFrameChange=function(frame){ } Player.onCollision=function(gameObjects){ for(var i=0;i
0){ this.position[1]=gameObjects[i].position[1]-gameObjects[i].size[1]/2-this.size[1]/2; gameObjects[i].overrideState("die"); this.velocity[0]=this.velocity[0]*-0.7; this.velocity[1]=this.velocity[1]*-0.7; } else if(gameObjects[i].baddie && this.state!="die") { this.overrideState("die"); Livescnt--; if(Livescnt==0){ Gameover.visible=true; Pressspace.visible=true; this.addTick(fadeout); Score.addTick(fadeout); Lives.addTick(fadeout); } } if(gameObjects[i].exit && gameObjects[i].state=="exitopen"){ Totaltime.visible=true; Totalcoins.visible=true; Totalscore.visible=true; this.fadetime=500; this.addTick(fadeout); Score.addTick(fadeout); Lives.addTick(fadeout); } } } Player.addTick(function(time){ //"q" key quits if((key_manager.value&32)==32){ this.game.onRestart=Gamemenu; this.game.init(); } this.game.map.setCenter(Math.round(this.position[0]),Math.round(this.position[1])); if(this.state=="die" && this.frame==14 && Livescnt>0){ this.game.restart(); } if(this.onSpring && this.velocity[1]>0) this.velocity[1]=-800; //make him use jump when falling if(this.velocity[1]>100){ switch(this.state){ case "standleft": case "walkleft": case "turnleft": case "standingleft": case "startwalkleft": this.overrideState("jumpleft"); break; case "standright": case "walkright": case "turnright": case "standingright": case "startwalkright": this.overrideState("jumpright"); break; } } if((key_manager.value&2)==2 && this.onFloor){ this.onFloor=false; this.landed=false; this.startjump=time; this.jumping=true; switch(this.state){ case "standleft": case "walkleft": case "turnleft": case "standingleft": case "startwalkleft": case "landleft": case "jumpleft": case "jumpturnleft": this.overrideState("jumpleft"); break; case "standright": case "walkright": case "turnright": case "standingright": case "startwalkright": case "landright": case "jumpright": case "jumpturnright": this.overrideState("jumpright"); break; } this.velocity[1]=-5; } if((key_manager.value&2)==2 && this.jumping && this.velocity[1]>-520 && this.velocity[1]!=0){ dv=-50-(200+(time-this.startjump)*2); if(dv<-550) dv=-550; this.velocity[1]=dv; } else if(this.jumping) { this.jumping=false; } if((this.state=="jumpleft" || this.state=="jumpturnleft") && (key_manager.value&1)==1) this.velocity[0]=-200; if((this.state=="jumpright" || this.state=="jumpturnright") && (key_manager.value&4)==4) this.velocity[0]=200; if(key_manager.value==0 && this.onFloor){ switch(this.state){ case "walkleft": case "startwalkleft": this.changeState("standleft"); this.velocity[0]=-100; break; case "walkright": case "startwalkright": this.changeState("standright"); this.velocity[0]=100; break; case "standleft": case "landleft": case "turnleft": case "standingleft": var idelframe=Math.round(time/1000)%10; if(idelframe==9 || idelframe==1) this.changeState("standingleft"); break; case "standright": case "landright": case "turnright": case "standingright": var idelframe=Math.round(time/1000)%10; if(idelframe==9 || idelframe==1) this.changeState("standingright"); break; } } if(this.onFloor){ switch(this.state){ case "jumpleft": case "jumpturnleft": this.changeState("landleft"); break; case "jumpright": case "jumpturnright": this.changeState("landright"); break; } } //left if((key_manager.value&1)==1 && this.onFloor){ switch(this.state){ case "standright": case "turnright": case "standingright": case "startwalkright": case "landright": case "walkright": this.changeState("turnleft"); break; case "standleft": case "standingleft": case "turnleft": case "landleft": this.changeState("startwalkleft"); break; case "startwalkleft": this.velocity[0]=-100; this.changeState("walkleft"); break; case "walkleft": this.velocity[0]=-400; this.changeState("walkleft"); break; } } if((key_manager.value&1)==1 && !this.onFloor){ switch(this.state){ case "jumpright": case "jumpturnright": this.changeState("jumpturnleft"); break; } } if((key_manager.value&4)==4 && this.onFloor){ switch(this.state){ case "standleft": case "turnleft": case "standingleft": case "startwalkleft": case "landleft": case "walkleft": this.changeState("turnright"); break; case "standright": case "standingright": case "turnright": case "landright": this.changeState("startwalkright"); break; case "startwalkright": this.velocity[0]=100; this.changeState("walkright"); break; case "walkright": this.velocity[0]=400; this.changeState("walkright"); break; } } if((key_manager.value&4)==4 && !this.onFloor){ switch(this.state){ case "jumpleft": case "jumpturnleft": this.changeState("jumpturnright"); break; } } }); this.addObject(Player); this.map.setCenter(Math.round(Player.position[0]),Math.round(Player.position[1])); } function loaded(){ //set up the loader Game.init(); var loading=new CPGE.gameObject(); CPGE.textObject(loading,"CrimewaveBB","Loading..."); loading.position=[200,200]; loading.addTick(function(time){ this.text="loading"+(Math.round(time/100)%3==1 ? "." : (Math.round(time/100)%3==2 ? ".." : "...")); res.text="Resource "+(CPGE.resourceLoader.totalloading-CPGE.resourceLoader.loading)+" of "+CPGE.resourceLoader.totalloading; }); Game.addObject(loading); var res=new CPGE.gameObject(); CPGE.textObject(res,"CrimewaveBB","Resource "+(CPGE.resourceLoader.totalloading-CPGE.resourceLoader.loading)+" of "+CPGE.resourceLoader.totalloading); res.position=[120,250]; Game.addObject(res); CPGE.resourceLoader.addImage("player_walkleft","/assets/bert/player-walkleft.png"); CPGE.resourceLoader.addImage("player_walkright","/assets/bert/player-walkright.png"); CPGE.resourceLoader.addImage("player_standleft","/assets/bert/player-standleft.png"); CPGE.resourceLoader.addImage("player_standright","/assets/bert/player-standright.png"); CPGE.resourceLoader.addImage("player_turnright","/assets/bert/player-turnright.png"); CPGE.resourceLoader.addImage("player_turnleft","/assets/bert/player-turnleft.png"); CPGE.resourceLoader.addImage("player_startwalkright","/assets/bert/player-startwalkright.png"); CPGE.resourceLoader.addImage("player_startwalkleft","/assets/bert/player-startwalkleft.png"); CPGE.resourceLoader.addImage("player_standingleft","/assets/bert/player-standingleft.png"); CPGE.resourceLoader.addImage("player_standingright","/assets/bert/player-standingright.png"); CPGE.resourceLoader.addImage("player_jumpleft","/assets/bert/player-jumpleft.png"); CPGE.resourceLoader.addImage("player_jumpright","/assets/bert/player-jumpright.png"); CPGE.resourceLoader.addImage("player_landleft","/assets/bert/player-landleft.png"); CPGE.resourceLoader.addImage("player_landright","/assets/bert/player-landright.png"); CPGE.resourceLoader.addImage("player_jumpturnright","/assets/bert/player-jumpturnright.png"); CPGE.resourceLoader.addImage("player_jumpturnleft","/assets/bert/player-jumpturnleft.png"); CPGE.resourceLoader.addImage("player_die","/assets/bert/player-die.png"); CPGE.resourceLoader.addImage("coin","/assets/bert/coin.png"); CPGE.resourceLoader.addImage("baddie1_walk","/assets/bert/baddie1-walk.png"); CPGE.resourceLoader.addImage("baddie1_die","/assets/bert/baddie1-die.png"); CPGE.resourceLoader.addImage("newgame","/assets/bert/newgame.png"); CPGE.resourceLoader.addImage("highscores","/assets/bert/highscores.png"); CPGE.resourceLoader.addImage("credits","/assets/bert/credits.png"); CPGE.resourceLoader.addImage("toonback","/assets/bert/toonback.jpg"); CPGE.resourceLoader.addImage("background","/assets/bert/background.png"); CPGE.resourceLoader.addImage("exitclosed","/assets/bert/closed.png"); CPGE.resourceLoader.addImage("exitopen","/assets/bert/open.png"); CPGE.resourceLoader.addImage("backtrees","/assets/bert/bgtrees.png"); CPGE.resourceLoader.addImage("mount","/assets/bert/cloudsky.jpg"); CPGE.resourceLoader.addImage("menu","/assets/bert/title.png"); CPGE.resourceLoader.addText("level1","/assets/bert/newmap2.map"); CPGE.resourceLoader.addImage("cursor","/assets/bert/cursor.png"); CPGE.resourceLoader.onLoad=function(){ Game.onRestart=Gamemenu; Game.init(); } }
Berts Breakdown
<< Back to Website
Instructions: Use the cursor keys for left and right and spacebar to jump
body{ background-image:url(http://www.paulbrunt.co.uk/bert/cloudsky.jpg); background-repeat:repeat-x; background-color:#fff; margin:0px; text-align:center; font-family:arial; } #canvas{ border: 1px solid #888; margin:auto; }
Pop out
Help
About
×
×