javascript - JQuery 游戏 - 让玩家在 % 值中平滑移动

标签 javascript jquery html css

我们有一个非常烦人的元素,我们需要用 JQuery 制作游戏。我在让我的 Angular 色按照我希望的方式移动时遇到了一些问题。我设法让 Angular 色移动,但他没有移动 %。他将自己的宽度添加到他的“左:”,然后动画到该位置。这不好,因为当您调整窗口大小时,它们不会“随之缩放”。基本上,任何人都可以帮助我让玩家在 % 值中顺利移动!这是我的代码! (变量和注释是瑞典语...)

JSfiddle:https://jsfiddle.net/Leqca77h/1/

index.html:

<!doctype html>
<html>
    <head>
    <title>JQuery spel</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" type="text/css" href="css/stil.css">
    <link href="https://fonts.googleapis.com/css?family=Ubuntu" rel="stylesheet">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

    <script type="text/javascript" src="script/start.js"></script>
    <script type="text/javascript" src="script/spelareRörelse.js"></script>

</head>
<body onresize="sättSpelareHöjd()">

    <header><h1>Jquery spel</h1></header>
    <br>

    <div id="bana"></div>

</body>

stil.css:

* {
box-sizing: border-box;
margin: 0;
padding: 0;
font-family: 'Ubuntu', sans-serif;
}

#bana {
position: relative;
border: 1px solid black;
margin: auto;
width: 99%;
height: 70vh;
}

#spelare1 {
background-color: green;
width: 2.7%;
height: 0;
display: block;
position: absolute;
}

开始.js:

$(document).ready(function(){

//var tid = parseInt(prompt("Hur långt ska du spela? (Ange i sekunder)"));

$("#bana").append("<div id='spelare1'></div>");
$("#bana").append("<div id='spelare2'></div>");

sättSpelareHöjd();
});

var knappTryckt1 = true;

function sättSpelareHöjd() {
var spelareHöjd = $("#spelare1").width();
$("#spelare1").css("height", spelareHöjd);
}

spelareRörelse.js (playerMovment.js):

//Spelare 1 rörelse
$(document).keydown(function(e){
    if(knappTryckt1) {
    if(e.keyCode == 37) {
        $("#spelare1").stop().animate({left: "-=" + $(this).width()},5000);
        //Pil vänster
    }

    else if (e.keyCode == 38) {
        $("#spelare1").stop().animate({top: "-=" + $(this).height()},5000);
        //Pil upp
    }

    else if (e.keyCode == 39) {
        $("#spelare1").stop().animate({left: "+=" + $(this).width()},5000);
        //Pil höger
    }

    else if (e.keyCode == 40) {
        $("#spelare1").stop().animate({top: "+=" + $(this).height()},5000);
        //Pil ner
    }

    knappTryckt1 = false;
    }
 });
 $(document).keyup(function(){
    $("#spelare1").stop();
    knappTryckt1 = true;
 });

如果你能帮上忙!谢谢! :) JSfiddle:https://jsfiddle.net/Leqca77h/1/

最佳答案

找到解决方案了!改变:
"左:"-="+ $(this).width()"
到:
"左:"-="+ 100 + "%""
对我有用!

关于javascript - JQuery 游戏 - 让玩家在 % 值中平滑移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43029400/

相关文章:

jquery - 将计数器移动到进度条 Bootstrap 3 的下方和右侧

javascript - Jquery覆盖我的对象中的 "this"

jquery - 谁能告诉我这个悬停效果是什么?

javascript - 在 webpack 2 配置中包含纯 JavaScript 文件

javascript - JS 实现栈时clear方法不清楚

javascript - 当页面加载到 div 类时,如何通过 javascript 追加一个类?

javascript - 如何在动态表中创建唯一的ID?

javascript - clientWidth 和 clientHeight 报告零,而 getBoundingClientRect 是正确的

javascript - Select 元素的 onChange 之后在 Javascript 上使用旧值和新值

HTML/CSS(快速拨号)