-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathChandelier.java
More file actions
70 lines (65 loc) · 2.05 KB
/
Chandelier.java
File metadata and controls
70 lines (65 loc) · 2.05 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
import java.util.ArrayList;
/**
* Write a description of class Chandelier here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Chandelier extends ScrollingActor
{
boolean hit = false;
private static final int NUM_FRAGMENTS = 1;
GreenfootSound brokenGlass = new GreenfootSound("glassBreak.mp3");
GreenfootSound hitGlass = new GreenfootSound("hitChandelier.mp3");
private ChandelierHitbox chandelier;
int cWidth = 200;
int cHeight = 80;
int cDX = 0;
int cDY = 30;
/**
* Act - do whatever the Chandelier wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
protected void addedToWorld(World w) {
chandelier = new ChandelierHitbox(this, cWidth, cHeight, cDX, cDY, true);
getWorld().addObject(chandelier, getX() + cDX, getY() + cDY);
}
public void checkHit()
{
List<Meatball> meatball = chandelier.getHitboxIntersections();
if (!meatball.isEmpty()) hit = true;
if (hit == true) {
getWorld().removeObject(meatball.get(0));
dropCrystal();
hit = false;
}
}
public void act()
{
// Add your action code here.
checkHit();
}
public void dropCrystal()
{
placeDebris(getX(), getY(), NUM_FRAGMENTS);
hitGlass.play();
}
private void placeDebris(int x, int y, int numFragments)
{
for (int i = 0; i < numFragments; i++)
{
getWorld().addObject(new GlassDebris(), x, y);
/*bi = Greenfoot.getRandomNumber(2);
if (bi == 1)
{
getWorld().addObject(new MeatballDebris(), x, y);
}
else
{
getWorld().addObject(new NoodleDebris(), x, y);
}*/
}
}
}