我正在嘗試爲一個「小遊戲」測試做一個多鍵新聞組合驗證。 基本上是一個真人快打的角色,我用ASDW鍵移動......但是如果我想在同一時間(例如S + K)進行鴨子和阻擋,會發生什麼情況。我不能使它工作:S如何在jquery/javascript中處理多鍵遊戲的遊戲目的?
現在...不僅如此,如果我只按S,它會鴨。然後我按下K(同時保持S推)它應該阻止而躲避。如果我釋放K,它應該繼續躲避。這一個可能嗎?
如何處理例如在JavaScript中做技能的組合? 如果我按S-> D-> Punch會做一個技巧(不是同時按下一個序列)
是否有任何可能的方法來做到這一點?
這是我的一個簡單的HTML內整個代碼,所以你完全可以看到它:
PS:看在預置圖像部分的評論,我的意思是,動畫不連貫,同時試圖將字符從移動一種方式到另一種......爲什麼是這樣?我究竟做錯了什麼?
<! DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<style>
#reptile_wrapper {
top: 120px;
left: 140px;
position:relative;
}
#container {
margin-top: 240px;
margin-left: 470px;
width: 890px;
height: 301px; /* entire one 547px */
background: url("img/bgs/pit_background.png") no-repeat;
background-size: 100%;
}
#pit {
top: 0px;
position: relative;
width: 890px;
height: 300px;
background: url("img/bgs/pit.png") no-repeat;
background-size: 100%;
}
#pit_chain {
position: absolute;
width: 150px;
height: 340px;
background: url("img/bgs/pit_chains.png") no-repeat;
margin-left: 695;
}
</style>
</head>
<body>
<audio src="sounds/mk3thepit.mp3" preload="auto" loop="true" autoplay="true" autobuffer></audio>
<div id="pit_chain">
</div>
<div id="container">
<div id="pit">
<div id="reptile_wrapper">
<img src="img/reptile_idle.gif"/>
</div>
</div>
</div>
<script>
/* Preload all the images and gifs */
function preloadImages(srcs, imgs, callback) {
var img;
var remaining = srcs.length;
for (var i = 0; i < srcs.length; i++) {
img = new Image();
img.onload = function() {
--remaining;
if (remaining <= 0) {
callback();
}
};
img.src = srcs[i];
imgs.push(img);
}
}
// then to call it, you would use this
var imageSrcs = ["img", "img/bgs"];
var images = [];
preloadImages(imageSrcs, images, startGame());
/* End of preloading images and gifs */
var duckImages = ["d01", "d02"];
var defaultY = '120px';
reptileIdleAnimation();
function startGame() {
var keys = [];
window.addEventListener("keydown",
function(e){
keys[e.keyCode] = e.keyCode;
var keysArray = getNumberArray(keys);
if(keysArray.toString() == "68"){
$("#reptile_wrapper img").attr('src', 'img/reptile_walk_forward.gif')
.parent().css({left: '+=5px'});
}else if(keysArray.toString() == "17,65"){
// document.body.innerHTML += " Select all!"
}
},
false);
window.addEventListener('keyup',
function(e){
keys[e.keyCode] = false;
reptileIdleAnimation();
},
false);
function getNumberArray(arr){
var newArr = new Array();
for(var i = 0; i < arr.length; i++){
if(typeof arr[i] == "number"){
newArr[newArr.length] = arr[i];
}
}
return newArr;
}
}
</script>
</body>
</html>
感謝。
聲音對我來說是可能的,一些鍵盤會限制同時按下按鈕的數量,但兩個在大多數現代鍵盤上都不應該是問題,但是沒有任何代碼,我們應該怎麼知道問題是什麼? – adeneo
請向我們展示如何捕捉按鍵。包括你的JS代碼。 – SquareCat
@SquareCat發佈了我的所有代碼,另請參閱圖像預加載哪個不工作,我應該在我的代碼中使用這些img.src? :(但如何? – user3078876