Open navigation menu
Close suggestions
Search
Search
en
Change Language
Upload
Sign in
Sign in
Download free for days
0 ratings
0% found this document useful (0 votes)
219 views
Java Games Space Invaders
game java
Uploaded by
ThiệnNg
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here
.
Available Formats
Download as PDF or read online on Scribd
Download now
Download
Save Java Games Space Invaders For Later
Download
Save
Save Java Games Space Invaders For Later
0%
0% found this document useful, undefined
0%
, undefined
Embed
Share
Print
Report
0 ratings
0% found this document useful (0 votes)
219 views
Java Games Space Invaders
game java
Uploaded by
ThiệnNg
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here
.
Available Formats
Download as PDF or read online on Scribd
Download now
Download
Save Java Games Space Invaders For Later
Carousel Previous
Carousel Next
Save
Save Java Games Space Invaders For Later
0%
0% found this document useful, undefined
0%
, undefined
Embed
Share
Print
Report
Download now
Download
You are on page 1
/ 17
Search
Fullscreen
sinro1s slavagames Space Invaders Home Contents Previous Ney Space Invaders In this part of the Java 2D games tutorial we will create a © Phong van tiéng Anh: Ligu ban cé bj Toai ngay “véng gitr xe” Test ngay v6i bai trdc nghiém ng&n [) Aude Sree tgtce simple Space Invaders game clone. Space Invaders is an arcade video game designed by Tomohiro Nishikado. It was first released in 1978. The player controls a cannon, He is about to save the Earth from invasion of evil space invade Development In our Java clone we have 24 invaders. These aliens heavily shell the ground. When the player shoot a missile, he can shoot another one only wher shoots with the Alt key. Aliens launch randomly their bombs. Each alien shoots a bomb only after th it hits an alien or the top of the Board. The player previous one hits the bottom. Spacelnvaders java package spaceinvaders; import Javax.swing.JFrame; public class Spacelnvaders extends JFrame implenents Commons ( public SpaceInvaders() { add(new Board()); setTitle("Space Invaders"); setDefaultCloseoperation(EXIT_ON_CLOSE); nip detcode comftera'sjavagamestralspaceinvaders/ wrsinro1s slavagames Space Invaders setSize(BOARD_WIDTH, BOARD_HEIGTH); setLocationRelativeTo(nul1) setVisible(true) ; setResizable(false) ; public static void main(String[] args) ¢ new SpaceInvaders(); ‘This is the main class. Commons java package spaceinvaders; public interface Commons { public static final int BOARD_WIDTH = 358; public static final int BOARD_HEIGTH = 350; public static final int GROUND = 290; public static final int BONB_HEIGHT = 5: public static final int ALIEN HEIGHT = 12; public static final int ALIEN WIDTH = 125 public static final int BORDER_RIGHT = 30; public static final int BORDER_LEFT = 5: public static final int GO_DOWN = 15; public static final int NUNBER_OF_ALIENS TO_DESTROY = 24; public static final int CHANCE = 5; public static final int DELAY = 17; public static final int PLAYER WIDTH = 15; public static final int PLAYER HEIGHT = 10; The connons. java file has some common constants. They are self-explanatory. Alien java package spaceinvaders; import Javax. swing. InageIcon; public class Alien extends Sprite { private Bonb bomb; private final String shot /spacepix/alien.png" ; public Alien(int x, int y) ( this.x = x5 this.y = y5 nip detcode comftera'sjavagamestralspaceinvaders/ a7sinro1s slavagames Space Invaders bomb = new Bomb(x, y); ImageIcon ii = new ImageIcon(this.getClass().getResource(shot) ); setInage(ii.getimage()); y public void act(int direction) { this.x += direction; y public Bonb getonb() { return bomb; } public class Bomb extends Sprite { private final String bomb private boolean destroyed; /spacepix/bonb png" ; public Bonb(int x, int y) { setDestroyed(true) ; this.x = 3x this.y = yj Inagelcon ii = new InageIcon(this.getClass().getResource(bonb)); setInage(ii.getImage()); public void setDestroyed(boolean destroyed) { this.destroyed = destroyed; } public boolean isDestroyed() { return destroyed; sprite. Each alien has an inner Bonb cl public void act(int direction) { this.x += direction; The act () method is called from the Board class. It is used to position an alien in horizontal direction public Bonb getBonb() { return bonb; 3 The getéonb() method is called, when the alien is about to drop a bomb. tip dzetcodecomtera'sjavagamestralspaceinvaders/ ansinro1s slavagames Space Invaders Player java package spaceinvaders; import java.awt.event.Keyévent; import Javax. swing. InageTcon; public class Player extends Sprite implements Conmons{ private final int START_Y private final int START_X 280; 2703 private final String player = "../spacepix/player. png"; private int width; public Player() { ImageTcon ii = new ImageTcon(this.getClass().getResource(player)) 5 width = ii.getTmage().getWidth(nul1) ; setImage(ii.getImage()); setx(START_X)5 sety(START_Y)5 } public void act() { x += dx; if (x <= 2) x= 25 if (x BOARD_WIDTH - 2*width) BOARD_WIDTH - 2*width; public void keyPressed(KeyEvent e) { int key = e.getkeyCode(); if (key KeyEvent.VK_LEFT) KeyEvent.VK_RIGHT) public void keyReleased(KeyEvent e) { int key = e.getkeyCode(); if (key == KeyEvent.VK_LEFT) nip detcode comftera'sjavagamestralspaceinvaders/ airsinro1s slavagames Space Invaders t dx = 0; if (key == KeyEvent.Vk_RIGHT) { This is the Player sprite. We control the cannon with the cursor keys. private final int START_Y private final int START_X 280; 278; These are the initial coordinates of the player sprite. if (key { KeyEvent..VK_LEFT) If we press the left cursor key, the dx variable is set to -2. Next time the act() method is called, the player moves to the left. if (key KeyEvent..VK_LEFT) t } keyEvent.VK_RIGHT) If we release the left or the right cursor, the dx variable is set to zero. The player sprite stops moving, Shot java package spaceinvaders; import Javax. swing. InageTcon; public class Shot extends Sprite { private String shot = "../spacepix/shot.png"; private final int H_SPACE = 6; nip detcode comftera'sjavagamestralspaceinvaders/ si7sinro1s slavagames Space Invaders private final int V_SPACE public Shot() ( } public Shot(int x, int y) ImageTcon ii = new ImageIcon(this.getClass().getResource(shot)); setInage(ii.getimage()); setx(x + H_SPACE) ; setV(y - V_SPACE); This is the shot sprite. The shot is triggered with the ALT key. The #_space and the v_space constants are used to position the missile appropriately. Sprite. java package spaceinvaders; import Java.awt. Inages public class Sprite { private boolean visible; private Inage image; protected int x; protected int y; protected boolean dyings protected int dx; public Sprite() { visible = trues public void die() { visible = false; public boolean isVisible() { return visible; protected void setVisible(boolean visible) { this.visible = visible; public void setimage(Inage image) { this.image = image; } nip detcode comftera'sjavagamestralspaceinvaders/ ansinro1s sJavagames Space Invaders public Image getImage() { return image; public void setx(int x) ( this.x = x5 public void sety(int y) ( this.y = ys public int getv() { return y5 public int getx() { return x3 public void setbying(boolean dying) { this.dying = dying; public boolean isbying() { return this.dyings Other sprites inherit from it Board.java package spaceinvaders; import import import import import import import import import import import import import public Java.awt Color} Java.awt .Dimension; Java.awt.Font Java.awt.FontMetrics5 Java.awt Graphics} Java.awt Toolkits Java.awt .event .KeyAdapters Java.awt .event.KeyEvent Java.util ArrayList; Java.util. Iterator; Java.util.Randon; Javax. swing. ImageIcon; Javax. swing. JPanel ome common functionality. class Board extends 2Panel implements Runnable, Commons { nip detcode comftera'sjavagamestralspaceinvaders/ m7sinro1s lava games Space Invaders private Dimension dj private ArrayList aliens; private Player player; private Shot shot; private int alienx = 150; private int alienY = 5; private int direction private int deaths = 0; private boolean ingame = true; private final String expl //spacepix/explosion.png"; private final String alienpix = "../spacepix/alien. png"; private String message = "Game Over"; private Thread animator; public Board() { addkeyListener(new Tadapter()); setFocusable(true); 4 = new Dimension(BOARD_WIOTH, BOARD_HETGTH); setBackground(Color.black); gamernit(); setDoubleBuffered(true) ; public void addNotify() { super.addNotify(); ganernit(); > public void ganeInit() { aliens = new ArrayList(); Imagelcon ii = new InageTcon(this. getClass().getResource(alienpix)) for (int 1-0; i < 45 itt) { for (int j-0; 3 < 65 J++) { Alien alien = new Alien(alienx + 18*j, alieny + 181); alien. setImage(ii.getInage()); aliens.add(alien) ; } player = new Player(); shot = new Shot(); if (animator == null || !ingame) animator = new Thread(this); animator. start(); nip detcode comftera'sjavagamestralspaceinvaders/ anysinro1s slavagames Space Invaders x public void drawAliens(Graphics g) { Iterator it = aliens. iterator(); while (it.hasNext()) Alien alien = (Alien) it.next(); if (alien.isVisible()) { g.drawImage(alien.getImage(), alien.getX(), alien.get¥(), this); ? if (alien.isbying()) alien.die(); ? } } public void drawPlayer(Graphics g) { if (player.isvisible()) { g-drawinage(player.getImage(), player.getx(), player.getY(), this); if (player isbying()) { player.die(); ingame = false; public void drawShot (Graphics g) { if (shot isvisible()) g.dranInage(shot.getInage(), shot.getx(), shot.getY(), this); } public void drawBonbing(Graphics g) { Iterator i3 = aliens. iterator(); while (43.hasNext()) { Alien a = (Alien) i3.next(); Alien.Bonb b = a.getBomb(); if (Ib.isDestroyed()) { g-drawInage(b.getInage(), b.getX(), b-getv(), this); y + public void paint(Graphics g) { nip detcode comftera'sjavagamestralspaceinvaders/ a7sinro1s supel g.se efi Bese if ( 8. drs drs des des Tool eedi public { sJavagames Space Invaders r.paint(g); *tColor (Color .black) ; L1Rect(@, @, d.width, d.height); *tColor (Color.green) ; ingame) { drawLine(@, GROUND, BOARD_WIDTH, GROUND); ‘awAliens(g)5 ‘awPlayer(g); ‘awshot (g)5 ‘awBombing(g) 5 kit. getDefaultToolkit().syne(); spose(); void gameover() Graphics g = this.getGraphics(); e. e. e. 8. -setColor(Color.black); -fillRect(@, @, BOARD_WIDTH, BOARD_HEIGTH); setColor(new Color(®, 32, 48)); FillRect(5®, BOARD_WIDTH/2 - 3, BOARD_WIDTH-100, 50); setColor(Color.white) ; drawRect(5®, BOARD_WIDTH/2 - 30, BOARD WIDTH-100, 50); Font small = new Font("Helvetica*, Font.B0LD, 14); FontMetrics mete 8. 8. g-drawString(message, (BOARD_WIDTH - metr.stringwidth(nessage) )/2, public if (deaths } ‘this. getFontMetrics(small) ; setColor(Color.white); setFont (small) ; BOARD_WIDTH/2) ; void animationcycle() { NUMBER_OF_ALTENS_TO_DESTROY) { false; jame won! ingame message J player player.act()5 JI shot if (shot.isVisible()) { nip detcode comftera'sjavagamestralspaceinvaders/ sorsinro1s slavagames Space Invaders Iterator it = aliens. iterator(); nt shotx = shot.getx(); int shotY = shot.get¥(); while (it-hasNext()) { Alien alien = (Alien) it.next(); int alienx = alien.getx(); int alienY = alien.getY(); if (alien.isVisible() && shot.isVisible()) { if (shotX >= (alienX) && shotX <= (alienX + ALIEN_WIDTH) && shotY >= (alienY) && shotY <= (alienV+ALTEN HEIGHT) ) { ImageIcon ii = new InageTcon(getClass().getResource(expl)); alien. setImage(ii.getInage()); alien. setbying(true) ; deaths++; shot .die(); ? int y = shot.getv(); y 243 if (y < 0) shot .die(); else shot.set¥(y); Wf aliens Iterator iti = aliens. iterator(); while (iti.hasNext()) { Alien a1 = (Alien) iti.next(); int x = al.getx(); if (x >= BOARD_WIDTH - BORDER_RIGHT && direction direction = -1; Iterator i1 = aliens.iterator(); while (i1-hasNext()) { Alien a2 = (Alien) i1.next(); a2.set¥(a2.get¥() + GO_DOWN) ; 3 if (x <= BORDER LEFT && direction != 1) { direction = 1; Iterator i2 = aliens.iterator(); while (i2.hasNext()) { Alien a = (Alien)i2.next(); tp etcode comforialshavagaestoralspaceivades! wwsinro1s slavagames Space Invaders a.setY(a.getY() + GO_DOWN); Iterator it = aliens. iterator(); while (it.hasNext()) { Alien alien = (Alien) it.next(); if (alien.isVisible()) { int y = alien.getY(); if (y > GROUND - ALIEN_HETGHT) { ingame = false; message = } alien.act (direction); U1 bombs Iterator i3 = aliens. iterator(); Random generator = new Random(); while (i3.hasNext()) { int shot = generator.nextint (15); Alien a = (Alien) 13.next(); Alien.Bonb b = a.getBonb(); if (shot == CHANCE && a,isVisible() && b.isDestroyed()) { b.setDestroyed(false); b.setx(a.getx())5 b.set¥(a.get¥()); + int bombx = b.getx(); int bombY = b.get¥(); int playerx = player.getx(); int playerY = player.getY(); if (player.isVisible() && !b.isDestroyed()) ( if ( bonbx >= (playerx) 8& bonbX <= (playerX+PLAYER WIDTH) && bonby >= (playerY) && bomby <= (playerY+PLAYER HEIGHT) ) { ImageIcon new ImageIcon(this.getClass().getResource(expl)); player. setImage(ii.getInage()); player. setbying(true) ; b.setDestroyed(true) ;5 nip detcode comftera'sjavagamestralspaceinvaders/ varsinro1s slavagames Space Invaders ? if (Ib.isDestroyed()) { b.setv(b.getv() + 1); if (b.get¥() >= GROUND - BOMB_HEIGHT) { b.setDestroyed(true) ; } } public void run() { long beforeTime, timeDiff, sleep; beforeTime = System.currentTimeMillis(); while (ingame) { repaint(); animationcycle(); timeDiff = System.currentTimeMillis() - beforeTime; sleep = DELAY - timeDiff; if (sleep < 0) sleep = 23 try ¢ Thread. sleep(sleep); } catch (Interruptedexception e) { system.out.printIn("interrupted"); } beforeTime = System. currentTimeMillis(); } gameOver(); } private class TAdapter extends KeyAdapter ( public void keyReleased(Keyévent e) { player.keyReleased(e) ; + public void keyPressed(KeyEvent e) { player.keyPressed(e) ; int x int y player.getx(); player.get¥(); if (ingame) { if (e.isAltDown()) { if (Ishot.isVisible()) nip detcode comftera'sjavagamestralspaceinvaders/ 107sinro1s slavagames Space Invaders shot = new Shot(x, y)5 ‘The main logic of the game is located in the Board class. for (int iO; i < 4; ist) { for (int j=0; j < 65 j++) { Alien alien = new Alien(alienX + 18*j, alienY + 18*i); alien. setImage(ii.getImage()); aliens.add(alien) ; 3 player = new Player(); shot = new Shot(); In the ganernit() method we set up 24 aliens. The alien image size is 12x12px. We put 6px space among the aliens, We also ereate the player and the shot objects. public void drawBombing(Graphics g) { Iterator i3 = aliens.iterator(); bile (43.hasNext()) { Alien a = (Alien) i3.next(); Alien.Bonb b = a.getBonb(); Af (Ib.isbestroyed()) { g.drawimage(b.getImage(), b-getX(), b.get¥(), this); } The drawBonbing() method draws bombs launched by the aliens. if (ingame) { g.drawline(@, GROUND, BOARD_WIDTH, GROUND) ; drawAliens(g); draPlayer(e); drawShot(g); drawBombing(g) ; Inside the paint() method, we draw the ground, the aliens, the player, the shot, and the bombs. tip dzetcodecomtera'sjavagamestralspaceinvaders/ wirsinro1s slavagames Space Invaders Next we will examine the aninationcycle() method. Af (deaths == NUNBER_OF_ALIENS_TO_DESTROY) { ingane = false; message = "Gane won!"; } If we destroy all aliens, we win the game. (24 in this game) if (alien.isVisible() && shot-isVisible()) { Af (shotx >= (alienx) 8& shotX <= (alienX + ALTEN WIDTH) && shotY >= (alienY) && shotY <= (alienY+ALTEN HEIGHT) ) { TmageTcon new ImageTcon(getClass() .getResource(expl)); alien. setImage(ii.getImage()); alien. setbying(true) ; deaths++; shot.die(); If the shot triggered by the player collides with an alien, the alien ship is destroyed, More precisely, the dying flag is set. We use it to display an explosion. The deaths variable increases and the shot sprite is destroyed. if (x >= BOARD_WIOTH - BORDER_RIGHT && direction a; Iterator i1 = aliens.iterator(); while (i2-hasNext()) { Alien a2 = (Alien) i1.next(); a2.set¥(a2.get¥() + GO_DOWN); =-¢ direction Ifthe aliens reach the right end of the aoard, they move down and change their direction to the left. Iterator it = aliens. iterator(); while (it-hasNext()) { Alien alien = (Alien) it.next(); if (alien.isVisible()) { int y = alien.get¥(); Sf (y > GROUND - ALTEN HEIGHT) { ingame = false; message = "Invasion!"; tip dzetcodecomtera'sjavagamestralspaceinvaders/ 1817sinro1s slavagames Space Invaders y alien.act (direction) ; This code moves aliens. If they reach the bottom, the invasion begins. int shot = generator.nextInt(15); Alien a = (Alien) 13.next(); Alien.Bomb b = a.getBomb(); if (shot == CHANCE && a.isVisible() && b.isDestroyed()) { b. setDestroyed( false); b. setx(a.getx())5 b.setv(a.get¥()); ‘This is the code that determines whether the alien will drop a bomb. The alien must not be destroye: Eg. it must be visible. The bomb's destroyed flag must be set. In other words, it is alien's first bomb \dy hit the ground. If these two conditions are fulfilled, the dropping or previous dropped bomb alres bombing is left to the chance. if (Ib. sbestroyed()) ( b.setv(b.getY() + 1); if (b.get¥() >= GROUND - BOMB_HETGHT) b.setDestroyed(true) ; + If the bomb is not destroyed, it goes 1px to the ground. If t hits the bottom, the destroyed flag is set. The alien is now ready to drop another bomb. public void keyReleased(KeyEvent ©) player. keyReleased(e); > The actual processing of this particular keyevent is delegated to the player sprite. tip dzetcodecomtera'sjavagamestralspaceinvaders/ 187sinno1s slavagames Space Invaders Eeaipatans Figure: Space Invaders This was the Space Invaders game. Home Contents Top of Page ‘Ze\Code last modified September 28,2008 © 2007 - 2015 Jan Bodnar pete. comer sjavagamestoralispaceinvaders/ war
You might also like
Setedit Code Gpu
PDF
No ratings yet
Setedit Code Gpu
1 page
PPSSPP Ini
PDF
No ratings yet
PPSSPP Ini
5 pages
Untitled
PDF
No ratings yet
Untitled
509 pages
PacMan Tutorial
PDF
No ratings yet
PacMan Tutorial
17 pages
Space Invaders Design Document
PDF
No ratings yet
Space Invaders Design Document
43 pages
Pacman Project
PDF
No ratings yet
Pacman Project
13 pages
NO MORE AIM STUCK ACAPCRAFT YT COMMANDS
PDF
No ratings yet
NO MORE AIM STUCK ACAPCRAFT YT COMMANDS
3 pages
Video Game Development
PDF
No ratings yet
Video Game Development
7 pages
Assassin Kill All
PDF
No ratings yet
Assassin Kill All
4 pages
Exe
PDF
No ratings yet
Exe
3 pages
(FE) HyperTotal Gui
PDF
No ratings yet
(FE) HyperTotal Gui
53 pages
User Settings
PDF
No ratings yet
User Settings
2 pages
UE4 Bps
PDF
No ratings yet
UE4 Bps
25 pages
Skyrim Legendary Edition Modlist: Most Important Softwares
PDF
No ratings yet
Skyrim Legendary Edition Modlist: Most Important Softwares
7 pages
Dev - Mag - 22
PDF
No ratings yet
Dev - Mag - 22
21 pages
0004000000126100
PDF
No ratings yet
0004000000126100
3 pages
Fps Monitor
PDF
No ratings yet
Fps Monitor
6 pages
Cpu & Gpu Speed Boost
PDF
No ratings yet
Cpu & Gpu Speed Boost
1 page
AtivarDriversKitzy - SetEdit
PDF
No ratings yet
AtivarDriversKitzy - SetEdit
1 page
Emulated X68000 Development Workstation Setup
PDF
No ratings yet
Emulated X68000 Development Workstation Setup
12 pages
Largest Unity 3d Assets List
PDF
No ratings yet
Largest Unity 3d Assets List
9 pages
Otimização Ram
PDF
No ratings yet
Otimização Ram
1 page
All Code Secure
PDF
No ratings yet
All Code Secure
2 pages
GDD Annotated
PDF
No ratings yet
GDD Annotated
46 pages
Setprop GAMING Vip (SFILE
PDF
No ratings yet
Setprop GAMING Vip (SFILE
1 page
Fazer RPG Tutorial 2
PDF
No ratings yet
Fazer RPG Tutorial 2
27 pages
Last Stand - GDD
PDF
No ratings yet
Last Stand - GDD
58 pages
Use Module
PDF
No ratings yet
Use Module
1 page
Better Performance
PDF
No ratings yet
Better Performance
3 pages
Bowling With Unity
PDF
No ratings yet
Bowling With Unity
17 pages
Script Skin Mobile Legends V1 Galaxy Gaming
PDF
No ratings yet
Script Skin Mobile Legends V1 Galaxy Gaming
76 pages
Default Engine
PDF
No ratings yet
Default Engine
8 pages
Dev - Mag - 24
PDF
No ratings yet
Dev - Mag - 24
46 pages
Gaming Code
PDF
100% (1)
Gaming Code
1 page
FF Setedit Commands
PDF
No ratings yet
FF Setedit Commands
13 pages
1991-12 The Computer Paper - BC Edition
PDF
No ratings yet
1991-12 The Computer Paper - BC Edition
104 pages
Setedit Cpu Booster
PDF
No ratings yet
Setedit Cpu Booster
1 page
Pocket ZX Handheld ZX Spectrum
PDF
No ratings yet
Pocket ZX Handheld ZX Spectrum
15 pages
? ? Comandos Set Edit Sensibilidad ??
PDF
No ratings yet
? ? Comandos Set Edit Sensibilidad ??
2 pages
DD - Graphics Quality (200)
PDF
No ratings yet
DD - Graphics Quality (200)
1 page
Fall of Limgoth: Design Document
PDF
No ratings yet
Fall of Limgoth: Design Document
39 pages
New Codes
PDF
0% (1)
New Codes
7 pages
User Engine
PDF
No ratings yet
User Engine
3 pages
Prince of Persia
PDF
No ratings yet
Prince of Persia
11 pages
Messaging in C For Gam 150 Club: Randy Gaul
PDF
No ratings yet
Messaging in C For Gam 150 Club: Randy Gaul
36 pages
AMIGA - Alien Breed 3D 2 The Killing Grounds (AGA) Manual
PDF
No ratings yet
AMIGA - Alien Breed 3D 2 The Killing Grounds (AGA) Manual
3 pages
Options.4.cod23 (Esport)
PDF
100% (1)
Options.4.cod23 (Esport)
9 pages
High Fps
PDF
No ratings yet
High Fps
5 pages
GL Extetion No Config, With GL Tool
PDF
No ratings yet
GL Extetion No Config, With GL Tool
2 pages
Level Design Document 6
PDF
No ratings yet
Level Design Document 6
15 pages
FF
PDF
No ratings yet
FF
5 pages
Config
PDF
No ratings yet
Config
1 page
DCX
PDF
No ratings yet
DCX
51 pages
User Game
PDF
No ratings yet
User Game
10 pages
Aurei Character Movement Component
PDF
No ratings yet
Aurei Character Movement Component
8 pages
INSTRUCTIONS: Answer ALL Questions. Question One (25 Marks)
PDF
No ratings yet
INSTRUCTIONS: Answer ALL Questions. Question One (25 Marks)
1 page
Binder 1
PDF
No ratings yet
Binder 1
36 pages
Space Invaders Shooter Tutorial
PDF
No ratings yet
Space Invaders Shooter Tutorial
3 pages
Moving Sprites
PDF
No ratings yet
Moving Sprites
15 pages
Game Title
PDF
No ratings yet
Game Title
4 pages