Difference between revisions of "Today"
From CodeStuff
| (5 intermediate revisions by the same user not shown) | |||
| Line 6: | Line 6: | ||
*[[Keycodes]] | *[[Keycodes]] | ||
*[[Functions]] | *[[Functions]] | ||
| + | *[[Loops]] | ||
*[[Aiming]] | *[[Aiming]] | ||
| Line 16: | Line 17: | ||
| − | <edcode>var c={x:320, y:240, lastx:320, lasty:240, power:0.1, penSize:4}; | + | <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"}; | ||
| − | function drawSpot(x,y) { | + | var chasers = [mary,frank,bob]; |
| + | |||
| + | chasers.add({x:100,y:100}); | ||
| + | |||
| + | function addChaser(x,y,speed=0.3,colour="yellow") { | ||
| + | chasers.add({x,y,speed,colour}); | ||
| + | } | ||
| + | |||
| + | addChaser(200,100); | ||
| + | addChaser(300,400,0.5); | ||
| + | addChaser(400,400,0.45,"magenta"); | ||
| + | |||
| + | function drawSpot(colour,x,y) { | ||
setColour("red"); | setColour("red"); | ||
fillCircle(x,y,10); | fillCircle(x,y,10); | ||
| − | setColour( | + | setColour(colour); |
| − | fillCircle(x,y, | + | 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 | + | function play() { |
var dx = c.x-c.lastx; | var dx = c.x-c.lastx; | ||
var dy = c.y-c.lasty; | var dy = c.y-c.lasty; | ||
| Line 62: | Line 98: | ||
//keep cx onscreen | //keep cx onscreen | ||
if (c.x>640 ) { | if (c.x>640 ) { | ||
| − | c. | + | c.x=640; |
} | } | ||
| Line 78: | Line 114: | ||
} | } | ||
| − | //move | + | //move chasers towards c |
| − | if ( | + | for (var meep of chasers) { |
| − | + | moveTowards(meep,c); | |
| + | |||
| + | if ( distance(meep,c) < 8) { | ||
| + | stillAlive=false; | ||
| + | } | ||
} | } | ||
| − | + | ||
| − | if ( | + | 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(); | clear(); | ||
| Line 117: | Line 138: | ||
fillCircle(c.x,c.y,c.penSize); | fillCircle(c.x,c.y,c.penSize); | ||
| − | drawSpot( | + | 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> | </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