0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
package sample.Model;
import static sample.Main.*;
import static sample.Model.Move.countEnemy;
class EnemyBang {
private static double here[] = {0, 0, 0, 0};
static void create() {
int speedOfCreate = 150;
if (countEnemy % speedOfCreate == 0) EnemyBang.start();
else if (countEnemy % speedOfCreate == speedOfCreate - 1) EnemyBang.finish();
else {
EnemyBang.move();
EnemyBang.heroPain();
}
}
private static void whereIsPlayer(){
if (image.getY()<enemy.getY()) here[0] = enemy.getY()-image.getY(); //w
if (image.getY()>enemy.getY()) here[1] = image.getY()-enemy.getY();//s
if (image.getX()<enemy.getX()) here[2] = enemy.getX()-image.getX();//a
if (image.getX()>enemy.getX()) here[3] = image.getX()-enemy.getX();//d
}
private static void start() {
bang.setX(enemy.getX()+10);
bang.setY(enemy.getY()+10);
bang.setVisible(true);
here[0] = 0;
here[1] = 0;
here[2] = 0;
here[3] = 0;
EnemyBang.whereIsPlayer();
}
private static void finish() {
bang.setVisible(false);
}
private static void heroPain() {
int pain = 40;
Health.change(bang, pain);
if (CollisionObjects.check(bang, image)) {
bang.setVisible(false);
explosive.stop();
explosive.play();
}
}
private static void move(){
int i = 0;
int mover = 5;
for (double a: here) {
if (a != 0) i++;
}
if (i > 1) mover /= Math.sqrt(2);
if (here[0]!=0 && ((here[2]/here[0]<=Math.sqrt(3) && here[2]!=0)||(here[3]/here[0]<=Math.sqrt(3) && here[3]!=0)
|| (here[2]==0 && here[3]==0))) {
bang.setY(bang.getY() - mover);
}
if (here[1]!=0 && ((here[2]/here[1]<=Math.sqrt(3) && here[2]!=0)||(here[3]/here[1]<=Math.sqrt(3) && here[3]!=0)
|| (here[2]==0 && here[3]==0))) {
bang.setY(bang.getY() + mover);
}
if (here[2]!=0 && ((here[0]/here[2]<=Math.sqrt(3) && here[0]!=0)||(here[1]/here[2]<=Math.sqrt(3) && here[1]!=0)
|| (here[1]==0 && here[0]==0))) {
bang.setX(bang.getX() - mover);
}
if (here[3]!=0 && ((here[0]/here[3]<=Math.sqrt(3) && here[0]!=0)||(here[1]/here[3]<=Math.sqrt(3) && here[1]!=0)
|| (here[1]==0 && here[0]==0))) {
bang.setX(bang.getX() + mover);
}
}
}
Всем привет, это моя третья программа, друг который мне помогает учиться отправил меня на этот сайт - сказал сюда отправить, потому что хуже кода он не видел. Подскажите, что тут не так? Он просто не комментирует
Запостил:
Tkachenko1380 ,
09.04.2023 (Updated 09.04.2023 )
guest # 0
[email protected] # 0
ropuJIJIa # 0 ⇈
guest # 0
Действительно, на этом сайте поощряется спокойное обсуждение плюсов и минусов програмного обеспечения. И без лишних эмоций.
Статические переменные (особенно из чужих классов) это плохо. Что такое "here"? Четырехмерное пространство? Почему void where?
guest6_uebok # 0 ⇈
kcalbCube # 0
Какой анскилл)))
Aksina_Polenova # 0
Нельзя ли поподробней, в каком плане помогает? Поддерживает морально, или манально?
OqpqpTOnHblu_nemyx # 0 ⇈
guest # 0