【发布时间】:2021-06-08 13:02:17
【问题描述】:
我正在尝试重新创建我见过的游戏机制。机械师是装枪的。
目前,我已经设置好了,所以当你点击一个具有“.weapon”类的 div 时,它会倒计时“弹药”,如果你到达 0,它会说没有弹药。
如果您单击并按住“.weapon” x 时间,它将重新加载。
当我做任何事情时总是有很多问题-_-例如,当我想重新加载武器 3 时,我不知道如何获取那个 div( ".weapon") 开头。
我尝试在 var 中设置值,但我不确定这是否需要在对象或类似的东西中完成?
除了一切之外,最让我困惑的是 jQuery $(this)。
例如 5 个具有“.weapon”类的 div 我知道您可以根据您单击的哪个div而不是全部隐藏它们来单独隐藏类“.weapon”的单击功能(或任何其他功能)。但是对于我试图用 var 做的事情,显然是不一样的,我不认为是这样。
我很确定除了我要强调的问题之外的所有其他事情也没有正确完成,所以如果你想让我知道它有多糟糕,请随时大声笑。
不确定这是否有意义,因为我也不擅长解释自己。 (反正不是文字)
如果您想提供帮助并且我需要进一步解释任何事情,请告诉我,如果您愿意阅读本文,请告诉我。
HTML
<div id="wrapper">
<div class="weapon center">
<div class="ammo">5</div>
</div>
<div class="weapon center">
<div class="ammo">8</div>
</div>
<div class="weapon center">
<div class="ammo">10</div>
</div>
<div class="weapon center">
<div class="ammo">12</div>
</div>
<div class="message"></div>
</div>
CSS
#wrapper{
width:40%;
margin:30px auto;
}
.weapon{
float:left;
width:80px;
height:80px;
border: 2px dashed #000;
padding:5px;
margin:5px;
line-height:80px;
text-align:center;
}
jQuery
$(document).ready(function(){
var n;
var currentReload = 0;
var reloaded = false;
$('.weapon').ready(function(){
bb = $(this);
bcurrentAmmo = bb.find('.ammo').html();
});
function reload(bb,bcurrentAmmo) {
if(currentReload <= 2){
currentReload++;
}else{
bb.find('.ammo').html(bcurrentAmmo);
reloaded = true;
clearInterval(n);
}
}
$('.weapon').mousedown(function(){
reloaded = false;
n = setInterval(function() { reload(bb,bcurrentAmmo);}, 100);
}).mouseup(function() {
currentReload = 0;
clearInterval(n);
});
$('.weapon').click(function(){
if(reloaded == false){
b = $(this);
currentAmmo = b.find('.ammo').html();
if(currentAmmo >= 1){
currentAmmo--;
}else{
$('.message').html("No Ammo! Click & Hold To Reload")
}
b.find('.ammo').html(currentAmmo);
}
});
});
【问题讨论】:
标签: javascript jquery css class object