从Javascript中的坐标随机移动

Moody_jr

我正在使用Javascript建立我的谦虚机器人军队。

// Objet Robot
function Robot(nick, pv, maxSpeed, position) {
  this.nick = nick;
  this.pv = pv;
  this.maxSpeed = maxSpeed;
  this.position = position;
};

//Méthode présentation des robots
Robot.prototype.sePresenter = function() {
  console.log("Bonjour je m'appelle " + this.nick + ". J'ai " + this.pv + "         points de vie." + " Je me déplace à " + this.maxSpeed + " cases par seconde. Je suis à la case de coordonnées " + this.position);
};

//Variables array
var robots = [
  new Robot('Maurice',95,2,[5,8]),
  new Robot('Lilian',76,3,[12,25]),
  new Robot('Ernest',100,1,[11,14]),
  new Robot('Juliette',87,3,[2,17]),
];

//boucle
robots.forEach(function(robot) {
  robot.sePresenter();
});

我想添加机器人运动。每转一圈,机器人都可以在1和maxSpeed之间移动许多空间。每次移动都可以向上/向下/向左/向右。

我知道我必须使用,Maths.random但我无法解释机器人如何移动。

这是功能的开始

Robot.prototype.seDeplacer = function() {
  var point1X = (this.position(Math.random() * this.maxSpeed+1);
  var point1Y = (this.position(Math.random() * this.maxSpeed)+1;
     console.log("je suis" + point1X + point1Y);
};

robots.forEach(function(robot) {
robot.seDeplacer();
});

我在机器人运动的正确轨道上吗?

马特·伯兰德

我想您的问题是在弄清楚如何进行这项工作:

Robot.prototype.seDeplacer = function() {
  var point1X = (this.position(Math.random() * this.maxSpeed+1);
  var point1Y = (this.position(Math.random() * this.maxSpeed)+1;
     console.log("je suis" + point1X + point1Y);
};

现在,假设该位置是x和y坐标的数组,那么如果您只是向上,向下,向左或向右移动,则首先需要确定要在x轴还是y轴上移动:

if (Math.random() > 0.5) {
    // move on X axis
}
else {
    // move on Y axis
}

如果您希望能够对角移动,那么您确实需要if / else构造。

现在,例如要在X轴上移动,您需要在-maxSpeed之间生成一个随机数+maxSpeed因为您可以在任一方向上移动:

var dx = (Math.random() * this.maxSpeed * 2) - this.maxSpeed;

然后您可以更新自己的位置:

this.position[0] += dx;   

如果只需要整数坐标,则可以简单地使用 Math.floor

您需要处理的最后一件事是边界条件。您将需要检查新位置是否超出了“木板”的末端,或者将其停在边缘,或者将其包裹在另一侧,或者尝试执行的操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

javascript中逼真的鼠标移动坐标?

来自分类Dev

使用Javascript中的随机x和y坐标生成矩阵

来自分类Dev

在通过 JavaScript 的 Canvas 中,如何获取对象的纵坐标,然后将该对象移动到不同的坐标?

来自分类Dev

Android 应用中的随机坐标

来自分类Dev

HTML5和Javascript中的随机移动

来自分类Dev

如何在Javascript中在表格周围随机移动图像

来自分类Dev

HTML5和Javascript中的随机移动

来自分类Dev

Delphi-图像在桌面坐标内随机移动

来自分类Dev

在SpriteKit中以随机坐标生成节点

来自分类Dev

随机坐标中的Cout向量n次

来自分类Dev

Javascript从坐标数组中的某个坐标中找到最远的坐标

来自分类Dev

在JavaScript中创建坐标数组

来自分类Dev

在 JavaScript 中生成随机的谷歌地图街景坐标

来自分类Dev

C中的随机移动TAC TAC脚趾

来自分类Dev

如何使用Javascript将“ div”移动到某些坐标?

来自分类Dev

Python:在坐标系中显示随机点

来自分类Dev

在matplotlib中的极坐标图上移动径向刻度标签

来自分类Dev

将画布中的多个对象移动到x,y坐标

来自分类Dev

加权随机坐标

来自分类Dev

移动基本坐标Tkinter

来自分类Dev

试图移动y坐标

来自分类Dev

如何使用JavaScript在页面加载时随机移动div

来自分类Dev

在mousemove事件javascript中获取光标坐标

来自分类Dev

JavaScript googlemaps从文件中读取坐标

来自分类Dev

目录中的Javascript随机图片

来自分类Dev

数组中的javascript随机项目?

来自分类Dev

数组中的javascript随机项目?

来自分类Dev

清单中的Javascript随机词组

来自分类Dev

如何在Python中随机移动画布上的球?