-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEnemy.java
More file actions
55 lines (46 loc) 路 1.64 KB
/
Copy pathEnemy.java
File metadata and controls
55 lines (46 loc) 路 1.64 KB
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
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Enemy here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Enemy extends Actor
{
// --- Variabel utama musuh ---
private int speed = 2; // Kecepatan gerak musuh (positif = ke kanan, negatif = ke kiri)
private boolean counted = false; // Menandakan apakah musuh sudah dilewati dan dihitung skor-nya
/**
* Konstruktor Enemy - dijalankan saat objek musuh dibuat.
* Di sini gambar musuh ditetapkan.
*/
public Enemy() {
setImage("enemy.png"); // Menetapkan sprite (gambar) musuh
}
/**
* Method act() dijalankan berulang kali oleh Greenfoot.
* Mengatur pergerakan musuh dan pembalikan arah saat mencapai tepi dunia.
*/
public void act()
{
move(speed); // Gerakkan musuh sesuai nilai speed (ke kanan atau ke kiri)
// Jika musuh mencapai tepi dunia, balik arah dan cermin gambar agar menghadap arah berlawanan
if (isAtEdge()) {
speed = -speed; // Balik arah pergerakan
getImage().mirrorHorizontally(); // Balik gambar agar terlihat berbalik arah
}
}
/**
* Method getter untuk memeriksa apakah musuh sudah dihitung dalam skor.
* Digunakan di kelas Mario agar skor tidak bertambah dua kali untuk musuh yang sama.
*/
public boolean isCounted() {
return counted;
}
/**
* Method setter untuk menandai bahwa musuh sudah dilewati dan dihitung skor-nya.
*/
public void setCounted(boolean value) {
counted = value;
}
}