stuppid_bot

Untitled

Apr 5th, 2013
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5 2.65 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <title>Пытаемся писать игру на Canvas</title>
  5.         <meta charset="utf-8">
  6.         <script>
  7.            
  8.             var pressed = [],
  9.                 left = 37,
  10.                 up = 38,
  11.                 right = 39,
  12.                 down = 40,
  13.                 // начальные координаты задали
  14.                 my = {x: 0, y: 0, width: 10, height: 10},
  15.                 brick = {x: 150, y: 170, width: 80, height: 40};
  16.            
  17.             function isCollide(a, b) {
  18.                 return a.x < (b.x + b.width) && a.y < (b.y + b.height)
  19.                    && (a.x + a.width) > b.x && (a.y + a.height) > b.y;
  20.             }
  21.            
  22.             // this === window
  23.             this.addEventListener('load', function() {
  24.                 var cvs = document.getElementsByTagName('canvas')[0];
  25.                 var ctx = cvs.getContext('2d');
  26.                 var oldX, oldY;
  27.                
  28.                 var loop = setInterval(function() {  
  29.                     ctx.clearRect(0, 0, cvs.width, cvs.height);
  30.                     // обработка нажатия клавиш
  31.                     oldX = my.x;
  32.                     oldY = my.y;
  33.                     if (pressed[left]) my.x -= 10;
  34.                     if (pressed[up]) my.y -= 10;
  35.                     if (pressed[right]) my.x += 10;
  36.                     if (pressed[down]) my.y += 10;
  37.                    
  38.                     if ( isCollide(my, brick) ) {
  39.                         my.x = oldX;
  40.                         my.y = oldY;
  41.                     }
  42.                    
  43.                     // рисуем красный квадрат, которым будем управлять                                  
  44.                     ctx.fillStyle = 'red';
  45.                     ctx.fillRect(my.x, my.y, my.width, my.height);
  46.                     // рисуем синий квадрат
  47.                     ctx.fillStyle = 'blue';
  48.                     ctx.fillRect(brick.x, brick.y, brick.width, brick.height);
  49.                 }, 40); // 1000 / 40 = 25 кадров
  50.             });
  51.            
  52.             this.addEventListener('keydown', function(event) {
  53.                 pressed[event.keyCode] = 1;
  54.             });
  55.            
  56.             this.addEventListener('keyup', function(event) {
  57.                 pressed[event.keyCode] = 0;
  58.             });
  59.            
  60.         </script>
  61.     </head>
  62.     <body style="font: 14px/1.5em Arial">  
  63.         <canvas style="background: black" width="480" height="320"></canvas>
  64.         <p>Управление стрелками.</p>
  65.     </body>
  66. </html>
Advertisement
Add Comment
Please, Sign In to add comment