Я пытаюсь создать игру, в которой пользователь управляет стационарным прямоугольником, который указывает на мышь. У меня работает код прицеливания, но я также хочу заставить прямоугольник стрелять по кругу, когда пользователь нажимает на экран, и они также должны указывать и двигаться в направлении, в котором находилась мышь. Но у меня не работает клик и стрельба. Круги просто движутся вверх. Может кто-нибудь, пожалуйста, помогите?
Я использую 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);
}
}