Javascript Touchstart?僵尸游戏
我正在做一个僵尸游戏。您可以在www.designedbychristian.com/u-vs-them上查看 我有一个可以点击的div。但在我的iphone5s和Ps-vita上测试时,可点击的div落后了 我决定使用原始javascript,避免导入jquery mobile 我把这个写进了我的代码Javascript Touchstart?僵尸游戏,javascript,html,iphone,touch,Javascript,Html,Iphone,Touch,我正在做一个僵尸游戏。您可以在www.designedbychristian.com/u-vs-them上查看 我有一个可以点击的div。但在我的iphone5s和Ps-vita上测试时,可点击的div落后了 我决定使用原始javascript,避免导入jquery mobile 我把这个写进了我的代码 <script> localStorage.setItem('facing', 'right') function touchEvent
<script>
localStorage.setItem('facing', 'right')
function touchEvents() {
document.getElementById('shoot').addEventListener("toustart", shoot, false);
document.getElementById('left').addEventListener("touchstart", left, false);
document.getElementById('right').addEventListener("touchstart", right, false);
function shoot(e) {
e.preventDefault()
$('#player').append('<div id="bullet" class="bullet">');
if (localStorage.getItem('facing') == "right") {
$('.bullet').animate({ "left": "1500px" }, 700, "linear", function () {
$(this).remove();
});
} else if ((localStorage.getItem('facing') == "left")) {
$('.bullet').animate({ "right": "1500px" }, 700, "linear", function () {
$(this).remove();
});
};
};
function left() {
var p = $("#player");
var poff = p.offset();
var pleft = poff.left;
if (pleft > 103) {
var element = document.getElementById("player");
element.style.left = parseInt(element.style.left) - 5 + 'px';
var bg = document.getElementById("bg");
bg.style.left = parseInt(bg.style.left) + 5 + 'px';
localStorage.setItem("facing", "left")
} else { return false }
}
//right function
function right() {
var p = $("#player");
var poff = p.offset();
var pleft = poff.left;
if (pleft < 962) {
var element = document.getElementById("player");
element.style.left = parseInt(element.style.left) + 5 + 'px';
var bg = document.getElementById("bg");
var zombz = document.getElementById("zombie");
bg.style.left = parseInt(bg.style.left) - 5 + 'px';
localStorage.setItem("facing", "right")
} else { return false }
}
};
window.onload = touchEvents;
</script>
setItem('facing','right')
函数touchEvents(){
document.getElementById('shoot')。addEventListener(“toStart”,shoot,false);
document.getElementById('left')。addEventListener(“touchstart”,left,false);
document.getElementById('right')。addEventListener(“touchstart”,right,false);
功能射击(e){
e、 预防默认值()
$('#player')。附加('');
if(localStorage.getItem('facing')==“right”){
$('.bullet')。动画({“左”:“1500px”},700,“线性”,函数(){
$(this.remove();
});
}else if((localStorage.getItem('facing')=“left”)){
$('.bullet')。动画({“右”:“1500px”},700,“线性”,函数(){
$(this.remove();
});
};
};
函数左(){
var p=$(“玩家”);
var poff=p.offset();
var pleft=poff.left;
如果(pleft>103){
var元素=document.getElementById(“播放器”);
element.style.left=parseInt(element.style.left)-5+'px';
var bg=document.getElementById(“bg”);
bg.style.left=parseInt(bg.style.left)+5+'px';
setItem(“面向”、“左”)
}else{return false}
}
//右函数
功能权限(){
var p=$(“玩家”);
var poff=p.offset();
var pleft=poff.left;
如果(pleft<962){
var元素=document.getElementById(“播放器”);
element.style.left=parseInt(element.style.left)+5+'px';
var bg=document.getElementById(“bg”);
var zombz=document.getElementById(“僵尸”);
bg.style.left=parseInt(bg.style.left)-5+'px';
setItem(“正面”、“右侧”)
}else{return false}
}
};
window.onload=触摸事件;
现在,它可以在我的windows 8触摸屏笔记本电脑上使用chrome,使用我的触摸屏而不是鼠标。(未在ie或ff中测试)
它不适用于任何其他触摸屏(iphone、ipad、ps vita)。
我不知道为什么。我一整天都在想办法弄清楚
你可以通过上面的url进一步查看我的游戏。如果在iphone上观看,您必须将其保存到主屏幕,并将方向更改为横向
$('#player')
是的jQuery快捷方式
document.getElementById("player");
我会检查您是否得到了正确的元素。我在其中添加什么似乎并不重要。即使警报也不会显示如果警报未显示,则表示脚本未到达该行代码。是否可以尝试移动函数调用,如
document.getElementById('shoot').addEventListener(“toStart”,shoot,false)代码>在函数定义下面?还有,你有没有检查控制台有没有错误?我有。由于左撇子没有定义,它扔了很多东西。我最终使用jquery mobile并使其正常工作。我只是不明白为什么它在windows 8上运行得这么好,而在iPhone上却不工作。你可能想用一个跨平台的框架来开发。嗯,好像很有趣。非常感谢。