我在尝试重现一个我见过的游戏机械师。机械师是个装枪的人。
目前我已经设置好了,所以当你点击一个有“.武器”类的div时,它会倒数“弹药”,如果你到了0,它会说没有弹药。
如果你点击并按住“.武器”x时间,那么它就会进行重装。
问题是,当我做任何事情时,总是有很多---当我想重新装入武器3时,例如,我不知道如何获得那个div(“.warm”)开始的“ammo”的原始值。
我试着在var中设置值,但我不确定是否需要在对象或类似的东西中设置值?
最让我困惑的是jQuery$(this)。
例如,类“.武器”的5个div我知道你可以通过一个click函数(或其他任何东西)来隐藏类“.武器”,这取决于你点击的div中的哪一个,而不是全部隐藏它们。但对于我试图用var做的事情,显然是不一样的,反正我不认为是这样的。
我非常肯定,除了我强调的问题之外,所有其他的事情都做得不对,所以如果你想让我知道它有多糟糕,请放心,LOL。
不知道这是否有意义,因为我也不擅长解释自己。(反正不在文本中)
如果你想帮忙,我需要解释任何进一步的,请让我知道,并感谢您甚至阅读了这一点,如果你做了。:)
亲切的问候
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);
}
});
});
向标记为“maxammo”的元素添加一个属性。然后可以使用element.getAttribute(“maxammo”)
获取原始的ammo值。