首先让我说我是 js 的完全新手,我正在上课,我们的任务之一是制作一个基本的竞赛游戏。我们可以使用我们找到的任何脚本,所以我选择了 gamequery。前提是玩家是完全自动化的,并且会在 x% 的时间直接获得,在 y% 的时间正确,其余的时间离开。我使用了 gamequery 教程空间游戏作为一种指南,但是当我处理运动和碰撞时,我的代码使它变得非常慢,尤其是在所有的前后运动中。
function Movement(){
movetwo = Math.random();
$(".obstacle").each(function(){
var collided = $(this).collision("#player2Body,."+$.gQ.groupCssClass);
if(collided.length > 0){
$("#player2").x($("#player2").x()-2);
}
var collided2 = $(this).collision("#playerBody,."+$.gQ.groupCssClass);
if(collided2.length > 0){
$("#player").x($("#player").x()-2);
}
});
if (movetwo <= twol) {
$("#player2").y($("#player2").y()+2);
}
else if ((movetwo > twol) && (movetwo <= (twol + twor))){
$("#player2").y($("#player2").y()-2);
}
else {
$("#player2").x($("#player2").x()+2);
}
moveone = Math.random();
if (moveone <= twol) {
$("#player").y($("#player").y()+2);
}
else if ((moveone > twol) && (moveone <= (twol + twor))){
$("#player").y($("#player").y()-2);
}
else {
$("#player").x($("#player").x()+2);
}
}
我知道有一种方法可以在移动之前检测碰撞,但我真的不知道如何实现它,因为移动是随机的。交换机会更快吗?同样奇怪的是,它显示了与我放置的三个障碍物以外的所有障碍物发生碰撞,并且由于某种原因,它忽略了那些少数的障碍物,无论它们被随机放置在哪里。我认为我比我的技能水平保证更多,所以任何帮助将不胜感激。