Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Java, class bullet

максим максим Ученик (99), на голосовании 8 часов назад
Как доделать код Class Bullet { constructor(x, y, targetX, targetY, size) { this.x = x this.y = y this.size = size this.speed = 15 this.angle = Math.atan2(targetY - (this.y + this.size / 2), targetX - (this.x + this.size / 2)) this.dx = Math.cos(this.angle) * this.speed this.dy = Math.sin(this.angle) * this.speed } move(){ this.x += this.dx this.y +=this.dy } }
Голосование за лучший ответ
Tails Оракул (56405) 1 месяц назад
проблема заключается в том, что метод move() не использует правильные параметры. это может быть исправлено путем добавления двух параметров, которые будут использоваться в качестве координат. метод move() может выглядеть примерно так: move(x, y) { x += dx y += dy }
следует добавить параметры x и y к методу move(). также, следует изменить значение переменной targetX и targetY на текущие координаты объекта, на который направляется пуля. это может быть сделано путем добавления этих переменных в конструктор. также, следует добавить условие для проверки, не достигла ли пуля своей цели. это может быть сделано путем добавления проверки на расстояние между пулей и цели, и в случае, если оно меньше определенного значения, пуля должна быть удалена из игры.
S.H.I. Оракул (72672) 1 месяц назад
 public class Bullet { 
// Поля класса (используем тип double для более точного расчёта)
private double x;
private double y;
private double size;
private double speed;
private double angle;
private double dx;
private double dy;

// Конструктор
public Bullet(double x, double y, double targetX, double targetY, double size) {
this.x = x;
this.y = y;
this.size = size;
this.speed = 15; // можно при необходимости изменить скорость

// Расчёт угла направления от центра пули к целевой точке
this.angle = Math.atan2(targetY - (this.y + this.size / 2),
targetX - (this.x + this.size / 2));

// Расчёт смещений по осям x и y для движения
this.dx = Math.cos(this.angle) * this.speed;
this.dy = Math.sin(this.angle) * this.speed;
}

// Метод для перемещения пули
public void move() {
this.x += this.dx;
this.y += this.dy;
}

// Геттеры для получения координат пули (если нужно использовать извне)
public double getX() {
return x;
}

public double getY() {
return y;
}

public double getSize() {
return size;
}

// Можно добавить метод для отрисовки пули, например, если используете библиотеки для графики
// public void draw(Graphics g) {
// g.fillOval((int)x, (int)y, (int)size, (int)size);
// }
}
Похожие вопросы