Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // awesome goblin game
- // Create the canvas
- var canvas = document.createElement("canvas");
- var ctx = canvas.getContext("2d");
- canvas.width = 512;
- canvas.height = 480;
- document.body.appendChild(canvas);
- // Background image
- var bgReady = false;
- var bgImage = new Image();
- bgImage.onload = function () {
- bgReady = true;
- };
- bgImage.src = "images/background.png";
- // Hero image
- var heroReady = false;
- var heroImage = new Image();
- heroImage.onload = function () {
- heroReady = true;
- };
- heroImage.src = "images/hero.png";
- // Monster image
- var monsterReady = false;
- var monsterImage = new Image();
- monsterImage.onload = function () {
- monsterReady = true;
- };
- monsterImage.src = "images/monster.png";
- // Game objects
- var hero = {
- speed: 256, // movement in pixels per second
- x: 0,
- y: 0
- };
- var monster = {
- speed: 256,
- x: 0,
- y: 0
- };
- var monstersCaught = 0;
- var delta = 0;
- var directionMonster = 0;
- var goThisWay = 1;
- // Handle keyboard controls
- var keysDown = {};
- addEventListener("keydown", function (e) {
- keysDown[e.keyCode] = true;
- }, false);
- addEventListener("keyup", function (e) {
- delete keysDown[e.keyCode];
- }, false);
- // Reset the game when the player catches a monster
- var reset = function () {
- hero.x = canvas.width / 2;
- hero.y = canvas.height / 2;
- // Throw the monster somewhere on the screen randomly
- monster.x = 32 + (Math.random() * (canvas.width - 64));
- monster.y = 32 + (Math.random() * (canvas.height - 64));
- };
- // Update game objects
- var update = function (modifier) {
- if (38 in keysDown) { // Player holding up
- hero.y -= hero.speed * modifier;
- }
- if (40 in keysDown) { // Player holding down
- hero.y += hero.speed * modifier;
- }
- if (37 in keysDown) { // Player holding left
- hero.x -= hero.speed * modifier;
- }
- if (39 in keysDown) { // Player holding right
- hero.x += hero.speed * modifier;
- }
- // Are they touching?
- if (
- hero.x <= (monster.x + 32)
- && monster.x <= (hero.x + 32)
- && hero.y <= (monster.y + 32)
- && monster.y <= (hero.y + 32)
- ) {
- ++monstersCaught;
- reset();
- }
- };
- //make our monster move :)
- var monsterMove = function (modifier){
- ++directionMonster;
- if (directionMonster <= 200){
- //bewegingen
- //rechts => links
- if (goThisWay == 1) {
- monster.x = monster.x - (monster.speed * modifier);
- if (monster.x <= -32){
- goThisWay = 2;
- }
- }
- //links => rechts
- if (goThisWay == 2) {
- monster.x = monster.x + (monster.speed * modifier);
- if (monster.x >= 512){
- goThisWay=1;
- }
- }
- //boven => onderen
- if (goThisWay == 3) {
- monster.y = monster.y + (monster.speed * modifier);
- if (monster.y >= 480){
- goThisWay=4;
- }
- }
- //onderen => boven
- if (goThisWay == 4) {
- monster.y = monster.y - (monster.speed * modifier);
- if (monster.y <= -32){
- goThisWay=3;
- }
- }
- //bepalen welke richting
- if (directionMonster ==200){
- directionMonster = 0;
- goThisWay = Math.floor((Math.random() * 4) + 1);
- console.log (goThisWay);
- }
- }
- };
- // Draw everything
- var render = function () {
- if (bgReady) {
- ctx.drawImage(bgImage, 0, 0);
- }
- if (heroReady) {
- ctx.drawImage(heroImage, hero.x, hero.y);
- }
- if (monsterReady) {
- ctx.drawImage(monsterImage, monster.x, monster.y);
- }
- // Score
- ctx.fillStyle = "rgb(250, 250, 250)";
- ctx.font = "24px Helvetica";
- ctx.textAlign = "left";
- ctx.textBaseline = "top";
- ctx.fillText("Monsterrs caught: " + monstersCaught, 32, 32);
- };
- // The main game loop
- var main = function () {
- var now = Date.now();
- delta = now - then;
- update(delta / 1000);
- render();
- monsterMove(delta / 1000);
- then = now;
- // Request to do this again ASAP
- requestAnimationFrame(main);
- };
- // Cross-browser support for requestAnimationFrame
- var w = window;
- requestAnimationFrame = w.requestAnimationFrame || w.webkitRequestAnimationFrame || w.msRequestAnimationFrame || w.mozRequestAnimationFrame;
- // Let's play this game!
- var then = Date.now();
- reset();
- main();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement