2014-02-19 78 views
0

試圖爲我殘疾的兒子製作一個簡單的單人射擊遊戲,我有射擊工作正常射擊1個子彈,但似乎無法讓它射擊第二,第三等,當按鈕被點擊。我是基礎編碼的新手,所以用實際編碼的答案是有幫助的。 謝謝 這是我的代碼 遊戲測試員 使按鈕點擊不止一次

<style id="game-css"> 
#missile{ 
position:fixed; 
top: 640px; 
left:820px; 
width:0px; 
height:0px; 
background:#ffffff; 
} 
#missile>div{ 
position:absolute; 
top: -4px; 
width:4px; 
height:10px; 
border-radius:10px 10px 0 0 ; 
background:black; 
} 
#fire{ 
image:shooter.jpg; 
width:140px; 
height:190px; 
} 
</style> 

</head> 
<body bgcolor="#ffffff"> 
<marquee behavior="scroll" direction="left" scrollamount="15"> 
<img src="diamond.jpg" /><img src="diamond.jpg" /> 
<img src="star.jpg" /><img src="diamond.jpg" /><img src="star.jpg" /> 
<img src="bomm.jpg" /><img src="diamond.jpg" /><img src="star.jpg" /></marquee> 
<br><marquee behavior="scroll" direction="right" scrollamount="10"> 
<img src="diamond.jpg" /><img src="diamond.jpg" /><img src="bomm.jpg" /> 
<img src="diamond.jpg" /><img src="diamond.jpg" /><img src="diamond.jpg" /> 
<img src="bomm.jpg" /><img src="diamond.jpg" /><img src="star.jpg" /></marquee> 
<br><marquee behavior="scroll" direction="left" scrollamount="20"> 
<img src="diamond.jpg" /><img src="star.jpg" /><img src="bomm.jpg" /> 
<img src="diamond.jpg" /><img src="star.jpg" /><img src="diamond.jpg" /> 
<img src="star.jpg" /></marquee> 
<TABLE borderColor="#ffffff" cellSpacing="0" cellPadding="0" width="100%" border="0"> 
<TR valign=bottom align=center> 
<!--LEFT--> 
<TD align=center width="30%" bgcolor="#ffffff"><font face="arial, helvetica" size="6" 
color="#000000"><br><br><br><br><br><img src="rules.jpg"></font></TD> 
<!--MIDDLE--> 
<TD align=center width="40%" bgcolor="#ffffff"><font face="arial, helvetica" size="6" 
color="#000000"><br><br><br><br><br><img src="shooter.jpg" border="0" id="fire" alt="Click to 
shoot"></font></TD> 
<!--RIGHT--> 
<TD align=center width="30%" bgcolor="#ffffff"><font face="arial, helvetica" size="6" 
color="#000000"><br><br><br><br><br><img src="goal.jpg"> 
<br><br><img src="bullets.jpg"></font></TD> 
</TR> 
</TABLE> 
<div id="missile"><div></div></div> 

<script>$(document).ready(function(){ 

     $('#fire').click(function(){ 
     $('#missile').animate({top:-400},1500); 

}); 

}); 

</script> 


</body> 
</html> 

問題解決 謝謝NickR

+0

你用什麼語言來實現它? –

+0

好心的提一下您用於構建遊戲的平臺/語言 – Shiva

+0

代碼是在jscript中,有人向我提到「回調」功能,但我不熟悉該編碼,任何幫助將不勝感激 – Sha

回答

0

外行的做法是重複的代碼觸發在一個單一的點擊(事件)。

單顆子彈被單顆子彈射擊(一次),兩顆子彈可能重複兩次。

當您爲第一個子彈完成功能時,您可以嘗試觸發自定義事件。 請參閱Fire a custom event with javascript (or jquery) when my function finishes

這可以幫助你的一個開始:

var isRunning = false; 
document.getElementById('fire').addEventListener('click', function() { 
    if (isRunning) { 
     isRunning = false; 
     //code for stop fire 
    } else { 
     isRunning = true; 
     //code for start fire 
    } 
}, true); 

這可以幫助你火多個子彈。

Thanx!

+0

我試着複製相同的代碼,但由於某些原因,它不會「重新加載」射擊者的子彈以「反射」它。 – Sha

+0

我是一名flex開發人員,據我所知,當第一個事件結束時,您可以嘗試綁定第二個「拍攝」。你能分享代碼嗎? – Amar

+0

使用回調或自定義事件。在基本的谷歌搜索,我發現在js中「element.addEventListener」,我想它的作用和actionscript(Flex)一樣。試圖暗示這個邏輯。 – Amar

1

你可以做這樣的事情:

$('#fire').click(function(){ 
    $('#missile').animate({top:-400},1500, function() { 
     // your callback 
     $('#missile').css({top: 'auto', bottom: '-100px'}); 
    }); 
}); 

然後在回調函數你重置的位置,如果你再次點擊,那麼動畫將再次運行。

+0

這個代碼看起來像一個很好的解決方案,但是當我把它放在我的代碼中它什麼也沒有發射,甚至沒有1 bullet – Sha

+0

@Sha - 在這裏很好用:http://jsfiddle.net/g9rUX/1/雖然你需要擴大預覽區域。 –

+0

好吧,當我去那裏,點擊射手我什麼都沒有,沒有子彈,只是一個滾動圖像的白色背景 – Sha