制作移动到光标的对象

时间:2019-04-20 18:03:39

标签: javascript object p5.js

编辑:经过一个小时的思考,我可能自己也找到了答案,但我也希望看到您的答案! 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()函数?

0 个答案:

没有答案