Compiled game
|
Source code
|
package com.space.invaders; import java.awt.Graphics2D; import java.awt.Image; import java.awt.event.KeyEvent; import com.gej.core.GWindow; import com.gej.core.Game; import com.gej.core.Global; import com.gej.graphics.Animation; import com.gej.graphics.Background; import com.gej.graphics.GFontAdvanced; import com.gej.graphics.GFontAnimated; import com.gej.input.GKeyBoard; import com.gej.map.Map; import com.gej.map.MapLoader; import com.gej.map.MapManager; import com.gej.map.MapView; import com.gej.object.GObject; import com.gej.object.Tile; import com.gej.util.ImageTool; import com.space.invaders.maps.Map1; import com.space.invaders.objects.AlienShip; import com.space.invaders.objects.PlayerShip; public class SpaceInvaders extends Game implements MapLoader { /** * */ private static final long serialVersionUID = 757757668261837831L; public static Animation PLAYER_SHIP = null; public static Animation ALIEN_SHIP = null; public static Animation PLAYER_SHOT = null; GFontAnimated gameFont = null; public void initResources(){ Global.FULLSCREEN = true; Global.USE_PIXELPERFECT_COLLISION = true; PLAYER_SHIP = new Animation(); Image image = loadImage("resources/player_ship.png"); PLAYER_SHIP.addFrame(image, 100); PLAYER_SHIP.addFrame(ImageTool.flipImageHorizontally(image), 100); ALIEN_SHIP = new Animation(); image = loadImage("resources/alien_ship.png"); ALIEN_SHIP.addFrame(image, 100); ALIEN_SHIP.addFrame(ImageTool.flipImageHorizontally(image), 100); PLAYER_SHOT = new Animation(); image = loadImage("resources/player_shot.png"); PLAYER_SHOT.addFrame(image, 100); PLAYER_SHOT.addFrame(ImageTool.flipImageHorizontally(image), 100); PLAYER_SHOT.addFrame(ImageTool.flipImageVertically(image), 100); PLAYER_SHOT.addFrame(ImageTool.flipImageHorizontally(ImageTool.flipImageVertically(image)), 100); gameFont = new GFontAnimated(); gameFont.addFont(GFontAdvanced.getFont(loadImage("ImageFonts/font_blue.png"), "ImageFonts/DefFontDescriptor.txt"), 150); gameFont.addFont(GFontAdvanced.getFont(loadImage("ImageFonts/font_brown.png"), "ImageFonts/DefFontDescriptor.txt"), 150); MapManager.addMap(new Map1(this)); MapManager.startFirstMap(); } public void update(long elapsedTime){ if (GKeyBoard.isPressed(KeyEvent.VK_ESCAPE)){ System.exit(0); } gameFont.update(elapsedTime); } public void render(Graphics2D g){ Background.render(g); Map.renderMap(g, MapView.OffSetX+10, MapView.OffSetY); gameFont.renderText("FPS : " + Global.FRAMES_PER_SECOND, g, 15, 15); } public GObject getObject(char c, int x, int y){ switch (c){ case 'P': return new PlayerShip(x, y); case 'A': return new AlienShip(x, y); } return null; } public Tile getTile(char c, int x, int y){ return null; } public static void main(String[] args){ GWindow.setup(new SpaceInvaders()); } }
package com.space.invaders.objects; import java.awt.event.KeyEvent; import com.gej.input.GKeyBoard; import com.gej.map.Map; import com.gej.map.MapView; import com.gej.object.GObject; import com.space.invaders.SpaceInvaders; public class PlayerShip extends GObject { int wait_to_fire = 0; public PlayerShip(float x, float y){ super(SpaceInvaders.PLAYER_SHIP, x, y); } public void update(long elapsedTime){ MapView.follow(this); setVelocityX(0); if (GKeyBoard.isPressed(KeyEvent.VK_LEFT)){ setVelocityX(-0.15f); } else if (GKeyBoard.isPressed(KeyEvent.VK_RIGHT)){ setVelocityX(0.15f); } if (GKeyBoard.isPressed(KeyEvent.VK_SPACE) && wait_to_fire>500){ Map.addObject(new PlayerShot(getX(), getY())); wait_to_fire = 0; } wait_to_fire += elapsedTime; } }
package com.space.invaders.objects; import com.gej.object.GObject; import com.space.invaders.SpaceInvaders; public class PlayerShot extends GObject { public PlayerShot(float x, float y){ super(SpaceInvaders.PLAYER_SHOT, x, y); setVelocityY(-0.15f); } public void update(long elapsedTime){ if (getY()<-(getHeight())){ destroy(); } } public void collision(GObject other){ if (other instanceof AlienShip){ other.destroy(); destroy(); } } }
package com.space.invaders.objects; import com.gej.object.GObject; import com.space.invaders.SpaceInvaders; public class AlienShip extends GObject { public AlienShip(float x, float y){ super(SpaceInvaders.ALIEN_SHIP, x, y); } }
package com.space.invaders.maps; import com.gej.core.Game; import com.gej.core.Global; import com.gej.graphics.Background; import com.gej.map.MapInfo; import com.gej.map.MapLoader; import com.gej.util.ImageTool; public class Map1 extends MapInfo { { tileSize = 48; MapData = "\n"+ "AAAAAAAAAAAAA\n"+ "A AA A\n"+ "AAAAAAAAAAAAA\n"+ " \n"+ "AAAAAAAAAAAAA\n"+ "AAAAAA AAAAA\n"+ " AA \n"+ " \n"+ " P "; } public Map1(MapLoader loader){ setMapLoader(loader); Background.setBackground(ImageTool.resize(Game.loadImage("resources/background.jpg"), Global.WIDTH, Global.HEIGHT)); } }
|
Includes GEJ GUIDE along with the complete version of space invaders.
|