Advertisement
| 12.02.2008 at 06:21AM PST, ID: 23949652 | Points: 125 |
|
[x]
Attachment Details
|
||
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: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: |
import java.util.Random;
import java.io.*;
import java.util.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
public class GameScreen extends GameCanvas implements Runnable
{
private Vector al;
private Hashtable ht;
private Image spaceImage;
private Image shipImage;
private Image invaderImage;
private Image bulletImage;
private LayerManager manager;
private Sprite spaceSprite;
private Sprite shipSprite;
private Sprite invaderSprite;
private Sprite bulletSprite;
private Thread gameThread;
private boolean isGameRunning;
private int shipX;
private int shipY;
private int invaderX;
private int invaderY;
private int bulletX;
private int bulletY;
private boolean isMovingRight;
private boolean fired;
private boolean invaderfire;
private Random rndm = new Random();
private int score;
private int i;
SpaceInvaders theMidlet;
public GameScreen(SpaceInvaders m)
{
super(true);
this.theMidlet = m;
isMovingRight = true;
loadImages();
manager = new LayerManager();
loadSprites();
isGameRunning = true;
setInitialPositions();
}
public void start()
{
gameThread = new Thread(this);
gameThread.run();
}
public void run()
{
Graphics g = getGraphics();
while(isGameRunning)
{
checkUserInput();
moveObjects();
collisionDetection();
updateGameScreen(g);
flushGraphics();
invaderSprite.nextFrame();
try
{
gameThread.sleep(60);
}
catch(InterruptedException ie)
{
System.err.println(ie);
}
}
}
public void loadSprites()
{
spaceSprite = new Sprite(spaceImage);
shipSprite = new Sprite(shipImage);
invaderSprite = new Sprite(invaderImage, 12, 8);
bulletSprite = new Sprite(bulletImage);
ht = new Hashtable();
ht.put("1", invaderSprite);
ht.put("2", invaderSprite);
ht.put("3", invaderSprite);
//Remember the z-order
manager.append(invaderSprite);
manager.append(shipSprite);
manager.append(bulletSprite);
manager.append(spaceSprite);
}
public void checkUserInput()
{
int button = getKeyStates();
if((button & LEFT_PRESSED) != 0)
{
//Check the paddle is not already at the top
if(shipX >0)
{
shipX -= 4;
}
}
if((button & RIGHT_PRESSED) != 0)
{
//Check the paddle isn't at the bottom of the screen
if(shipX < spaceSprite.getWidth() - shipSprite.getWidth())
{
shipX += 4;
}
}
//Set the new location
shipSprite.setRefPixelPosition(shipX, shipY);
if((button & UP_PRESSED) != 0)
{
if(!fired)
{
bulletSprite.setRefPixelPosition(shipX + shipSprite.getWidth() /2, shipY);
bulletSprite.setVisible(true);
fired = true;
}
}
}
public void moveObjects()
{
if(isMovingRight)
{
if(invaderX < spaceSprite.getWidth() - invaderSprite.getWidth())
{
invaderX += 2;
}
if(invaderX >= spaceSprite.getWidth() - invaderSprite.getWidth())
{
isMovingRight = false;
invaderY += invaderSprite.getHeight();
}
}
else if(!isMovingRight) //If its supposed to move left
{
if(invaderX > 0)
{
invaderX -= 2;
}
if(invaderX <= 0)
{
isMovingRight= true;
invaderY += invaderSprite.getHeight();
}
}
invaderSprite.setRefPixelPosition(invaderX, invaderY);
if(fired)
{
bulletY = bulletSprite.getRefPixelY();
bulletX = bulletSprite.getRefPixelX();
if(bulletY < spaceSprite.getHeight() - bulletSprite.getHeight())
{
bulletY -= 5;
}
if(bulletY <= 0)
{
fired = false;
bulletSprite.setVisible(false);
}
}
bulletSprite.setRefPixelPosition(bulletX, bulletY);
/** int rand = rndm.nextInt() % 2;
if(rand == 1)
{
if(!invaderfire)
{
invaderfire = true;
int invaderbulletX = invaderSprite.getRefPixelX();
int invaderbulletY = invaderSprite.getRefPixelY();
bulletSprite.setRefPixelPosition(invaderbulletX + shipSprite.getWidth() /2, invaderbulletY);
bulletSprite.setVisible(true);
manager.insert(bulletSprite, 0);
}
} */
}
public void collisionDetection()
{
if(bulletSprite.collidesWith(invaderSprite, false))
{
// invaderSprite.setVisible(false);
manager.remove(invaderSprite);
bulletSprite.setVisible(false);
fired = false;
score += 10;
}
}
public void updateGameScreen(Graphics g)
{
manager.paint(g, 0, 0);
g.setColor(0, 255, 0);
g.drawString("Score: " + score, 10, getHeight() - getHeight() + 10, 0);
}
public void setInitialPositions()
{
//Remember the size of the sprite and the ref pixel is top left
shipSprite.setRefPixelPosition(spaceSprite.getWidth() / 2 - shipSprite.getWidth() /2, spaceSprite.getHeight() - 80);
shipX = shipSprite.getRefPixelX();
shipY = shipSprite.getRefPixelY();
invaderSprite.setRefPixelPosition(invaderSprite.getWidth(), spaceSprite.getHeight()/5);
invaderX = invaderSprite.getRefPixelX();
invaderY = invaderSprite.getRefPixelY();
bulletSprite.setRefPixelPosition(0,0);
bulletSprite.setVisible(false);
fired = false;
}
public void loadImages()
{
try
{ //Remember to load the res folder into netbeans
spaceImage = Image.createImage("/space.png");
shipImage = Image.createImage("/ship.png");
invaderImage = Image.createImage("/10.png");
bulletImage = Image.createImage("/bullet.png");
System.out.println("Loaded Images!");
}
catch(IOException ioex)
{
System.err.println(ioex+" Error loading images");
}
}
}
|
Advertisement