-
Notifications
You must be signed in to change notification settings - Fork 0
/
Planet.java
99 lines (85 loc) · 2.73 KB
/
Planet.java
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
* Write a description of class Planet here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Planet extends World
{
private int worldWidth;
private Block anchor;
public Planet(int windowWidth, int windowHeight, int worldWidth)
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(windowWidth, windowHeight, 1, false);
this.worldWidth = worldWidth;
setPaintOrder(Bar.class, Astronaut.class, Alien.class, Block.class);
addFloor();
addWalls();
}
public int getWorldWidth()
{
return worldWidth;
}
public void addFloor()
{
anchor = new Block();
addObject(anchor, 0, getHeight() - 20);
int blockWidth = new Block().getImage().getWidth();
for(int i = 0; i <= getWorldWidth() + blockWidth; i = i + blockWidth)
{
addObject(new Block(), i, 480);
}
}
public void addWalls()
{
addObject(new Wall(), -120, getHeight());
addObject(new Wall(), worldWidth + 120, getHeight());
}
public void scrollLeft(int speed)
{
List<ScrollingActor> scrollers = (List<ScrollingActor>) getObjects(ScrollingActor.class);
for(ScrollingActor scroller : scrollers)
{
scroller.setLocation(scroller.getX() + speed, scroller.getY());
}
}
public void scrollRight(int speed)
{
List<ScrollingActor> scrollers = (List<ScrollingActor>) getObjects(ScrollingActor.class);
for(ScrollingActor scroller : scrollers)
{
scroller.setLocation(scroller.getX() - speed, scroller.getY());
}
}
public void scrollUp(int speed)
{
List<ScrollingActor> scrollers = (List<ScrollingActor>) getObjects(ScrollingActor.class);
for(ScrollingActor scroller : scrollers)
{
scroller.setLocation(scroller.getX() , scroller.getY() + speed);
}
}
public void scrollDown(int speed)
{
if(anchor.getY() > getHeight() - 20)
{
List<ScrollingActor> scrollers = (List<ScrollingActor>) getObjects(ScrollingActor.class);
for(ScrollingActor scroller : scrollers)
{
scroller.setLocation(scroller.getX() , scroller.getY() - speed);
}
}
}
protected void createPlatform(int length, int x, int y)
{
Platform p = new Platform(length);
addObject(p, x, y);
}
public void victory()
{
//override in subclasses
}
}