Difference between revisions of "Today"
From CodeStuff
| (10 intermediate revisions by the same user not shown) | |||
| Line 5: | Line 5: | ||
*[[Coordinates]] | *[[Coordinates]] | ||
*[[Keycodes]] | *[[Keycodes]] | ||
| + | *[[Functions]] | ||
| + | *[[Loops]] | ||
| + | *[[Aiming]] | ||
The [[API|API page]] has a list of some of the functions you can use such as | The [[API|API page]] has a list of some of the functions you can use such as | ||
| Line 14: | Line 17: | ||
| − | <edcode> | + | <edcode>var c = {x:320, y:240, lastx:320, lasty:240, power:0.1, penSize:4}; |
| − | var | + | var gameOver = { image : loadImage("http://fingswotidun.com/images/GameOver.png"), |
| − | var | + | x:0, y: -10000, |
| + | endx: 0, endy: 150}; | ||
| + | |||
| + | var gameAge=0; | ||
| + | var stillAlive=true; | ||
| − | var | + | var mary = {x:200, y:240, speed:0.35,colour:"blue"}; |
| − | var | + | var frank = {x:380, y:240, speed:0.2,colour:"cyan"}; |
| + | var bob = {x:580, y:100, speed: 0.25,colour:"lightgreen"}; | ||
| − | var | + | var chasers = [mary,frank,bob]; |
| − | + | ||
| − | + | chasers.add({x:100,y:100}); | |
| − | + | ||
| − | function | + | function addChaser(x,y,speed=0.3,colour="yellow") { |
| − | var dx = | + | chasers.add({x,y,speed,colour}); |
| − | var dy = | + | } |
| + | |||
| + | addChaser(200,100); | ||
| + | addChaser(300,400,0.5); | ||
| + | addChaser(400,400,0.45,"magenta"); | ||
| + | |||
| + | function drawSpot(colour,x,y) { | ||
| + | setColour("red"); | ||
| + | fillCircle(x,y,10); | ||
| + | setColour(colour); | ||
| + | fillCircle(x,y,8); | ||
| + | } | ||
| + | |||
| + | function moveTowards(seeker,target) { | ||
| + | if (seeker.y < target.y) { | ||
| + | seeker.y+=seeker.speed; | ||
| + | } | ||
| + | |||
| + | if (seeker.y > target.y) { | ||
| + | seeker.y-=seeker.speed; | ||
| + | } | ||
| + | |||
| + | if (seeker.x <target.x) { | ||
| + | seeker.x+=seeker.speed; | ||
| + | } | ||
| + | |||
| + | if (seeker.x > target.x) { | ||
| + | seeker.x-=seeker.speed; | ||
| + | } | ||
| + | |||
| + | } | ||
| + | |||
| + | function play() { | ||
| + | var dx = c.x-c.lastx; | ||
| + | var dy = c.y-c.lasty; | ||
| − | lastx= | + | c.lastx=c.x; |
| − | lasty= | + | c.lasty=c.y; |
| − | + | c.x=c.x+dx; | |
| − | + | c.y=c.y+dy; | |
// the arrow keys have key codes 37,38,39 and 40 | // the arrow keys have key codes 37,38,39 and 40 | ||
if (keyIsDown(38)) { | if (keyIsDown(38)) { | ||
| − | + | c.y-=c.power; | |
} | } | ||
if (keyIsDown(40)) { | if (keyIsDown(40)) { | ||
| − | + | c.y+=c.power; | |
} | } | ||
if (keyIsDown(37)) { | if (keyIsDown(37)) { | ||
| − | + | c.x-=c.power; | |
} | } | ||
if (keyIsDown(39)) { | if (keyIsDown(39)) { | ||
| − | + | c.x+=c.power; | |
| − | } | + | } |
| − | if ( | + | //keep cx onscreen |
| − | + | if (c.x>640 ) { | |
| + | c.x=640; | ||
} | } | ||
| − | if ( | + | if (c.x <0) { |
| − | + | c.x=0; | |
} | } | ||
| − | if ( | + | //keep cy onScreen |
| − | + | if (c.y>480) { | |
| + | c.y=480; | ||
| + | } | ||
| + | |||
| + | if (c.y <0) { | ||
| + | c.y=0; | ||
} | } | ||
| − | if ( | + | //move chasers towards c |
| − | + | for (var meep of chasers) { | |
| + | moveTowards(meep,c); | ||
| + | |||
| + | if ( distance(meep,c) < 8) { | ||
| + | stillAlive=false; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | if ( (gameAge %300) === 0) { | ||
| + | var newX = Math.random() * 640; | ||
| + | var newY = Math.random() * 480; | ||
| + | |||
| + | addChaser(newX,newY,0.45+ gameAge/3000,"magenta"); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | function draw() { | ||
| + | |||
| + | clear(); | ||
| + | |||
| + | setColour("purple"); | ||
| + | fillCircle(c.x,c.y,c.penSize); | ||
| + | |||
| + | for (var q of chasers) { | ||
| + | drawSpot(q.colour,q.x,q.y); | ||
} | } | ||
| − | + | setColour("black"); | |
| − | + | print("the game age is "+gameAge); | |
| − | + | print(gameAge % 300); | |
| − | + | drawImage(gameOver.image,gameOver.x,gameOver.y); | |
| − | + | } | |
| − | + | function move() { | |
| − | + | gameAge+=1; | |
| + | if (stillAlive) { | ||
| + | play(); | ||
| + | } else { | ||
| + | |||
| + | } | ||
| + | if (keyIsDown(32)) { | ||
| + | stillAlive=false; | ||
| + | } | ||
| + | draw(); | ||
} | } | ||
run(move); | run(move); | ||
| − | |||
| − | + | ||
| + | </edcode> | ||
Latest revision as of 22:51, 6 July 2017
Useful things to refer to.
The API page has a list of some of the functions you can use such as