2016-03-16 34 views
0

我有一個作戰系統,我想設置它,以便填充#dam的文本,它將創建一個新的p元素,直到怪物hp爲0。它只需點擊一下按鈕即可創建所有p元素。每個p元素都應該顯示在它上面的下面。繼續創建新的元素,直到遇到一個條件

JSfiddle

$('#battleButton').click(function() { 
    //playerDam(); 
    monsterEl = $('#monsterList option:selected'); 
    monster = monsterEl.data('monster') 
    if(monster.hp > 0) { 
    $('#dam').html("You have hit the " + $('#monsterList').val() + " for " + monster.playerDam() + " damage"); 
    monster.hp -= monster.playerDam(); 
    } 
    else { 
    $('#dam').html("You have defeated the " + $('#monsterList').val() + ", you have received " + monster.exp + " experience and " + monster.gold + " gold!"); 
    monster.hp = monster.hp; 
    } 
}); 

而且該碼是現在,一旦monster.hp達到0以下我無法弄清楚如何重置HP以便單擊再次戰鬥的工作方式。

回答

1

這是一個while循環的教科書情況。排隊的元素,使用append代替html然後在戰鬥開始時清空你的div:

$('#dam').empty(); 
while(monster.hp > 0) { 
    $('#dam').append("<p>You have hit the " + $('#monsterList').val() + " for " + monster.playerDam() + " damage</p>"); 
    monster.hp -= monster.playerDam(); 
} 
$('#dam').append("<p>You have defeated the " + $('#monsterList').val() + ", you have received " + monster.exp + " experience and " + monster.gold + " gold!</p>"); 

要重置怪物的生活,你的屬性添加到怪物類來存儲自己的生命的量當他在完美的健康:

function Monster(name, exp, gold, hp, atk, def, spd) { 
    var self = this; 
    this.name = name; 
    this.exp = exp; 
    this.gold = gold; 
    this.fullLife = hp; 
    this.hp = hp; 
    ... 
} 

然後,所有你需要做的就是給他的HP放回到他fullLife屬性在戰鬥結束:

monster.hp = monster.fullLife; 

這裏的小提琴:https://jsfiddle.net/5cdwu23d/3/

(要小心,雖然,你playerDam功能不太fonctionnal,你有無限與while,當怪物是玩家強硬和他的生活永遠不會接近零的有環)

+0

謝謝你的回答,我打算添加一個if語句,在一定數量的回合後會導致爭吵超時 – Shniper

1

您可以嘗試將p#dam更改爲div容器。然後只需將p標籤添加到它。

所以這

<p id="dam"></p> 

(從提琴54)成爲該

<div id="dam"></div> 

這行

$('#dam').html("You have hit the " + $('#monsterList').val() + " for " + monster.playerDam() + " damage"); 

成爲該

$('#dam').append("<p>You have hit the " + $('#monsterList').val() + " for " + monster.playerDam() + " damage</p>"); 
0

我不知道你在按鈕的點擊創建所有<p>元素的意思,但也許這將幫助:

您可以通過包裝的HTML作爲字符串創建的jQuery您<p>元素jQuery的功能,象這樣:

var paragraph = $('<p>Hey</p>');

一次一個或一次全部,可以遍歷創造這種方式的元素,然後使用jQuery的追加將它們添加到#dam元素

JSFiddle

相關問題