2015-09-24 2 views
0

Javascript/PerlenspielКак сделать функцию бомбы в Perlenspiel/Javascript?

Привет, Я пытаюсь создать функцию/код, который позволит игроку взять элемент «БОМБ», а затем активировать его в любом месте на карте, нажав «b». Бомба уничтожит любые стены в радиусе 2 шайб игрока.

Как мне начать это делать? Я не знаком с объектами или нажатиями клавиш вроде этого.

Это единственная вещь, которую я до сих пор:

//Player 
var PLAYER = { 
    x : 1, // The x and y of where the player is now 
    y : 1, 
    StartX : 1, 
    StartY : 1, 
    glyph : "➽", 
    color : 0x0000FF, 
    data : "player", 
    //dead : false, 
} 


var BOMB = { 
    x : 3, 
    y : 3, 
    glyph : "♾", 
    color : 0x000000, 
    data : "bomb", 
} 
\var dataAtPlayer = PS.data(PLAYER.x, PLAYER.y); 

    if(dataAtPlayer ="bomb"){ 
     PS.debugClear(); 
     PS.debug("You picked up a bomb! Press the b key to use it!\n"); 
     if(key == 98){ 
      eraseBead(PLAYER.x + 1, 0); 
     } 
    } 
+2

@JeremyRoberts Как вы новичок, вы должны прочитать некоторые книги по JavaScript. Что бы вы ни пытались достичь, почти невозможно для новичка. Я прочитал книгу под названием «Начало JavaScript», чтобы начать работу с JavaScript. Вы также можете увидеть некоторые руководства по JavaScript, если вам не нравится читать книги. – Arjun

+0

@Arjun Ну, после того, как я поиграл с моим кодированием немного больше в разделе PS.keyDown, я обновил его и получил немного дальше. –

+0

ключевому процессу вы должны использовать код ключа и прослушиватель событий –

ответ

2

Для начала вам нужно больше объектов, они включают в себя:

  • Стена
  • Карта

Вы в игровой цикл включите (псевдокод):

while(!player.isDead) 
{ 
    ... 
    if(keyPress==KeyToPickupBOMB) 
    { 
     if(PlayerIsOnBomb(Player,Map)) 
     { 
      PlayerPicksUpBomb(Player,Map) 
     } 
    } 
    ... 
    if(keyPress=="B") 
    { 
     if(PlayerHasBomb(Player)) 
     { 
      explodeBomb(Player,Map) 
     } 
    } 
    ... 
} 

Функция, чтобы взорвать стены будет

function explodeBomb(Player,Map) 
{ 
    //Check for Borders 
    for(int x = Player.X-2; x<=Player.X+2;x++) 
    { 
     for(int y = Player.y-2; y<=Player.y+2;y++) 
     { 
       if(Map[x][y] is a Wall) 
       { 
        Map[x][y] is now empty space 
       } 
      } 
    } 
} 
Смежные вопросы