CodeHS цель и стрелять с помощью мыши - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь создать игру, в которой пользователь управляет стационарным прямоугольником, который указывает на мышь. У меня работает код прицеливания, но я также хочу заставить прямоугольник стрелять по кругу, когда пользователь нажимает на экран, и они также должны указывать и двигаться в направлении, в котором находилась мышь. Но у меня не работает клик и стрельба. Круги просто движутся вверх. Может кто-нибудь, пожалуйста, помогите?

Я использую CodeHS Graphics для создания этой игры. Вот мой код:

var arr = [];

var mis = [];

var eX;
var eY;

var ship = new Rectangle(40, 60);
ship.setPosition(getWidth()/2, getHeight() * 7/8);
add(ship);


function start(){
    setTimer(game, 50);    
    mouseMoveMethod(aim);
    mouseClickMethod(shoot);
}

function aim(e){
    eX = e.getX();
    eY = e.getY();
    var angle = Math.atan2(eY - ship.getY(), eX - ship.getX() - ship.getWidth()/2);
    angle = angle * (180/Math.PI);
    if (angle < 0){
        angle = 360 - (-angle);
    }
    ship.setRotation(90 + angle);
}

function shoot(e){
    eX = e.getX();
    eY = e.getY();
    var m = new Circle(10);
    m.setPosition(ship.getX(), ship.getY());
    m.setColor(Color.blue);
    //m.tarX = e
    var angle = Math.atan2(eY - ship.getY(), eX - ship.getX());
    angle = angle * (180/Math.PI);
    if (angle < 0){
        angle = 360 - (-angle);
    }
    m.setRotation(90 + angle);
    println(90 + angle);
    add(m);
    mis.push(m);


}

function game(){
    for (var k = 0; k < mis.length; k++){
        var par = mis[k];
        par.setPosition(par.getX(), par.getY()-1);
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...