Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Creating variables
- var sizeX = 50, sizeY = 50;
- // -1 -> nishto
- // x -> sleda player x
- var grid = [];
- for(var i = 0;i < sizeX;i ++) {
- grid[i] = [];
- for(var j = 0;j < sizeY;j ++) {
- grid[i][j] = -1;
- }
- }
- var drawSize = 10;
- var playerX = [], playerY = [], playerDirection = [], playerAlive = [], playerColor = [];
- var moveX = [], moveY = [];
- moveX[0] = 0;
- moveX[1] = 0;
- moveX[2] = 1;
- moveX[3] = -1;
- moveY[0] = -1;
- moveY[1] = 1;
- moveY[2] = 0;
- moveY[3] = 0;
- // 0 - nagore
- // 1 - nadoly
- // 2 - nadqsno
- // 3 - nalqvo
- // 999 - nishto
- var reverseDir = [];
- reverseDir[0] = 1;
- reverseDir[1] = 0;
- reverseDir[2] = 3;
- reverseDir[3] = 2;
- for(var i = 0;i < 5;i ++) {
- playerX[i] = Math.floor(Math.random() * sizeX);
- playerY[i] = Math.floor(Math.random() * sizeX);
- playerDirection[i] = Math.floor(Math.random() * moveX.length);
- playerAlive[i] = true;
- playerColor[i] = "rgb(" + Math.floor(Math.random() * 255) + "," + Math.floor(Math.random() * 255) + "," + Math.floor(Math.random() * 255) + ")";;
- }
- var keyToDirection = [];
- for(var i = 0;i < 200;i ++) {
- keyToDirection[i] = 999;
- }
- keyToDirection[87] = 0;
- keyToDirection[83] = 1;
- keyToDirection[68] = 2;
- keyToDirection[65] = 3;
- var updateCount = 0;
- function update() {
- updateCount ++;
- if(updateCount % 5 == 0) {
- for(var cp = 1;cp < playerX.length;cp ++) {
- if(playerAlive[cp]) {
- var newX = playerX[cp] + moveX[playerDirection[cp]];
- var newY = playerY[cp] + moveY[playerDirection[cp]];
- var shteUmremLi = false;
- // proverka za izlizane ot ekrana
- if(newX < 0 || newX >= sizeX || newY < 0 || newY > sizeY) {
- shteUmremLi = true;
- } else {
- if(grid[newX][newY] != -1) {
- shteUmremLi = true;
- }
- }
- if(shteUmremLi || (Math.random() > 0.9)) {
- var newDir = Math.floor(Math.random() * moveX.length);
- while(newDir == playerDirection[cp] || newDir == reverseDir[playerDirection[cp]]) {
- newDir = Math.floor(Math.random() * moveX.length);
- }
- playerDirection[cp] = newDir;
- }
- }
- }
- for(var cp = 0;cp < playerX.length;cp ++) {
- if(playerAlive[cp]) {
- var newX = playerX[cp] + moveX[playerDirection[cp]];
- var newY = playerY[cp] + moveY[playerDirection[cp]];
- // proverka za izlizane ot ekrana
- if(newX < 0 || newX >= sizeX || newY < 0 || newY > sizeY) {
- playerAlive[cp] = false;
- } else {
- if(grid[newX][newY] != -1) {
- playerAlive[cp] = false;
- } else {
- grid[playerX[cp]][playerY[cp]] = cp;
- playerX[cp] = newX;
- playerY[cp] = newY;
- }
- }
- }
- }
- }
- }
- function draw() {
- // This is how you draw a rectangle
- for(var x = 0;x < sizeX;x ++) {
- for(var y = 0;y < sizeY;y ++) {
- if(grid[x][y] != -1) {
- context.fillStyle = playerColor[grid[x][y]];
- context.fillRect(x * drawSize, y * drawSize, drawSize, drawSize);
- }
- }
- }
- context.strokeStyle = "red";
- context.lineWidth = 5;
- for(var cp = 0;cp < playerX.length;cp ++) {
- context.strokeRect(playerX[cp] * drawSize, playerY[cp] * drawSize,
- drawSize, drawSize);
- if(playerAlive[cp]) { context.fillStyle = "black"; }
- else { context.fillStyle = "red"; }
- context.fillRect(playerX[cp] * drawSize, playerY[cp] * drawSize,
- drawSize, drawSize);
- }
- };
- function keyup(key) {
- if(keyToDirection[key] != 999) {
- playerDirection[0] = keyToDirection[key];
- }
- console.log(playerDirection[0]);
- // Show the pressed keycode in the console
- console.log("Pressed", key);
- };
- function mouseup() {
- // Show coordinates of mouse on click
- console.log("Mouse clicked at", mouseX, mouseY);
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement