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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122 |
package bump_n_jump;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import java.util.*;
/*
* A sprite super class
* Taken mostly from class examples.
*/
public abstract class Sprite
{
protected ArrayList <BufferedImage> frames;
protected int currentFrame;
protected double x, y;
public Sprite()
{
x = 0;
y = 0;
frames = new ArrayList<BufferedImage>();
currentFrame = 0;
}
public Sprite (double initX, double initY)
{
x = initX;
y = initY;
frames = new ArrayList<BufferedImage>();
currentFrame = 0;
}
public BufferedImage loadImageBuffered (String imageName)
{
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsConfiguration gc = ge.getDefaultScreenDevice().getDefaultConfiguration();
try {
BufferedImage bi = ImageIO.read(getClass().getResource(imageName));
int transparency = bi.getColorModel().getTransparency();
BufferedImage copy = gc.createCompatibleImage(bi.getWidth(), bi.getHeight(), transparency);
Graphics2D g2d = copy.createGraphics();
g2d.drawImage(bi, 0, 0, null);
g2d.dispose();
return copy;
}
catch (IOException e)
{
System.err.println("Image loading error: " + e.toString());
return null;
}
}
public ArrayList <BufferedImage> loadStripImageArray(String imageName, int numImages)
{
ArrayList<BufferedImage> list = new ArrayList<BufferedImage>();
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsConfiguration gc = ge.getDefaultScreenDevice().getDefaultConfiguration();
BufferedImage stripIm;
if (numImages > 0) {
stripIm = loadImageBuffered(imageName);
if (stripIm != null) {
int width = (int) stripIm.getWidth() / numImages;
int height = stripIm.getHeight();
int transparency = stripIm.getColorModel().getTransparency();
Graphics2D stripGC;
for (int i = 0; i < numImages; i++) {
BufferedImage holder = gc.createCompatibleImage(width, height, transparency);
list.add(holder);
stripGC = holder.createGraphics();
stripGC.drawImage(stripIm, 0, 0, width, height, i * width, 0, (i * width) + width, height, null);
stripGC.dispose();
}
return list;
}
}
return null;
}
public double getX()
{
return x;
}
public void setX (double xCoord)
{
x = xCoord;
}
public double getY()
{
return y;
}
public void setY (double yCoord)
{
y = yCoord;
}
/*
* drawSprite - must implement this method.
* We gotta see it right?
*/
public abstract void drawSprite (Graphics g);
/*
* updateFrame - to be called to advance the sprite's image frame.
*/
public abstract void updateFrame();
/*
* used to update the new coordinates of where the sprite should be.
*/
public abstract void updateCoordinates();
} |