编辑:经过一个小时的思考,我可能自己也找到了答案,但我也希望看到您的答案! EDIT2:我找到了一种方法,nvm! EDIT3:如果起点是玩家位置,终点是鼠标位置,则使用敌方AI将对象移动到鼠标光标==。真的没有用。所以没有解决
我正在制作一个简单的p5.js游戏,其中您有一个玩家,一个敌人和子弹(稍后添加)。您的目标是向敌人射击并收集尽可能多的分数(也未添加分数)。但是当我准备发子弹时,我看到了一个问题:我不知道如何将对象移动到玩家光标上。 这是我当前的代码,如果有帮助的话: 这是我的播放器代码:
function Player(){
this.x = width/2;
this.y = height/2;
this.r = 20;
this.speed = 4;
this.show = function(){
fill(0,255,0);
stroke(0,128,0);
circle(this.x,this.y,this.r);
}
this.moveY = function(number){
this.y += (number*this.speed);
}
this.moveX = function(number){
this.x += (number*this.speed);
}
this.MovePlayer = function(){
if (keyIsDown(UP_ARROW)){
if (this.y + (-1*20) > 0)
this.moveY(-1);
}
if (keyIsDown(DOWN_ARROW)){
if (this.y + (1*20) < height)
this.moveY(1);
}
if (keyIsDown(LEFT_ARROW)){
if (this.x + (-1*20) > 0)
this.moveX(-1);
}
if (keyIsDown(RIGHT_ARROW)){
if (this.x + (1*20) < width)
this.moveX(1);
}
}
}
我的sketch.js:
var player;
function setup(){
createCanvas(600,600);
player = new Player();
enemy = new Enemy();
}
function draw(){
clear();
background(51);
enemy.show();
player.show();
player.MovePlayer();
}
我的敌人:
function Enemy(){
this.r = 15;
this.x = 0+this.r;
this.y = 0+this.r;
this.show = function(){
fill(255,0,0);
stroke(128,0,0);
circle(this.x,this.y,this.r);
}
}
我的html文件还可以,我以前用html编程过。
我知道这个问题已经被问过了,但是没有回答我的问题。假设我们有一个项目符号文件,并且在其中:
function Bullet(){
this.x = 40;
this.y = 40;
this.toCursor = function(){
// move the bullet to cursor, psuedo code in next line
// argument 1 == what to move, arg 2 == where to move
moveTowards(this.x,mouseX); // psuedo code #1
moveTowards(this.y,mouseY); // psuedo code #2
}
}
现在如何编写toCursor()
函数?