JAVA İLE SİLAH OYUN YAPIMI!
-Allien Java Script:
public class Alien extends Sprite { private final int INITIAL_X = 0; public boolean sol =false; public boolean sag =true; public Alien(int x, int y) { super(x, y); initAlien(); } private void initAlien() { loadImage("C:\\Users\\delic\\Downloads\\images (1)\\sokoban\\wall.png"); getImageDimensions(); } public void move() { if (x > 400) { sol = true; sag=false; } if (x<0) { sag =true; sol =false; } if (sag) { x+=5; } if (sol) { x-=5; } x -= 1; } }
- Board Java Script:
import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.util.ArrayList; import java.util.List; import javax.swing.JPanel; import javax.swing.Timer; public class Board extends JPanel implements ActionListener { private Timer timer; private SpaceShip spaceship; private List<Alien> aliens; private boolean ingame; private final int ICRAFT_X = 180; private final int ICRAFT_Y = 280; private final int B_WIDTH = 400; private final int B_HEIGHT = 300; private final int DELAY = 15; private final int[][] pos = { {100, 10}, }; public Board() { initBoard(); } private void initBoard() { addKeyListener(new TAdapter()); setFocusable(true); setBackground(Color.BLACK); ingame = true; setPreferredSize(new Dimension(B_WIDTH, B_HEIGHT)); spaceship = new SpaceShip(ICRAFT_X, ICRAFT_Y); initAliens(); timer = new Timer(DELAY, this); timer.start(); } public void initAliens() { aliens = new ArrayList<>(); for (int[] p : pos) { aliens.add(new Alien(p[0], p[1])); } } @Override public void paintComponent(Graphics g) { super.paintComponent(g); if (ingame) { drawObjects(g); } else { drawGameOver(g); } Toolkit.getDefaultToolkit().sync(); } private void drawObjects(Graphics g) { if (spaceship.isVisible()) { g.drawImage(spaceship.getImage(), spaceship.getX(), spaceship.getY(), this); } List<Missile> ms = spaceship.getMissiles(); for (Missile missile : ms) { if (missile.isVisible()) { g.drawImage(missile.getImage(), missile.getX(), missile.getY(), this); } } for (Alien alien : aliens) { if (alien.isVisible()) { g.drawImage(alien.getImage(), alien.getX(), alien.getY(), this); } } } private void drawGameOver(Graphics g) { String msg = "Game Over"; Font small = new Font("Helvetica", Font.BOLD, 14); FontMetrics fm = getFontMetrics(small); g.setColor(Color.white); g.setFont(small); g.drawString(msg, (B_WIDTH - fm.stringWidth(msg)) / 2, B_HEIGHT / 2); } @Override public void actionPerformed(ActionEvent e) { inGame(); updateShip(); updateMissiles(); updateAliens(); checkCollisions(); repaint(); } private void inGame() { if (!ingame) { timer.stop(); } } private void updateShip() { if (spaceship.isVisible()) { spaceship.move(); } } private void updateMissiles() { List<Missile> ms = spaceship.getMissiles(); for (int i = 0; i < ms.size(); i++) { Missile m = ms.get(i); if (m.isVisible()) { m.move(); } else { ms.remove(i); } } } private void updateAliens() { if (aliens.isEmpty()) { ingame = false; return; } for (int i = 0; i < aliens.size(); i++) { Alien a = aliens.get(i); if (a.isVisible()) { a.move(); } else { aliens.remove(i); } } } public void checkCollisions() { Rectangle r3 = spaceship.getBounds(); for (Alien alien : aliens) { Rectangle r2 = alien.getBounds(); if (r3.intersects(r2)) { spaceship.setVisible(false); alien.setVisible(false); ingame = false; } } List<Missile> ms = spaceship.getMissiles(); for (Missile m : ms) { Rectangle r1 = m.getBounds(); for (Alien alien : aliens) { Rectangle r2 = alien.getBounds(); if (r1.intersects(r2)) { m.setVisible(false); alien.setVisible(false); } } } } private class TAdapter extends KeyAdapter { @Override public void keyReleased(KeyEvent e) { spaceship.keyReleased(e); } @Override public void keyPressed(KeyEvent e) { spaceship.keyPressed(e); } } }
- CollisionEx Java Script
import java.awt.EventQueue; import javax.swing.JFrame; public class CollisionEx extends JFrame { public CollisionEx() { initUI(); } private void initUI() { add(new Board()); setResizable(false); pack(); setTitle("Collision"); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { EventQueue.invokeLater(() -> { CollisionEx ex = new CollisionEx(); ex.setVisible(true); }); } }
- Missile Java Script:
public class Missile extends Sprite { private final int BOARD_WIDTH = 390; private final int MISSILE_SPEED = 2; public Missile(int x, int y) { super(x, y); initMissile(); } private void initMissile() { loadImage("C:\\Users\\delic\\Downloads\\images (1)\\sokoban\\sokoban.png"); getImageDimensions(); } public void move() { y -= MISSILE_SPEED; if (y > BOARD_WIDTH) visible = false; } }
-SpaceShip Java Script:
import java.awt.event.KeyEvent; import java.util.ArrayList; import java.util.List; import java.awt.geom.AffineTransform; public class SpaceShip extends Sprite { int rot = 0; int widthheight = 100; int posx = 250,posy =0; int atesx=225,atesy=450; boolean sag = true, sol =false,visible = true; private int dx; private int dy; private List<Missile> missiles; public SpaceShip(int x, int y) { super(x, y); initCraft(); } private void initCraft() { missiles = new ArrayList<>(); loadImage("C:\\Users\\delic\\Downloads\\images (1)\\pacman\\ghost.png"); getImageDimensions(); } public void move() { x += dx; y += dy; if (x < 1) { x = 1; } if (y < 1) { y = 1; } } public List<Missile> getMissiles() { return missiles; } public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); if (key == KeyEvent.VK_SPACE) { fire(); } if (key == KeyEvent.VK_LEFT) { dx -= 2; } if (key == KeyEvent.VK_RIGHT) { dx = 2; } } public void fire() { missiles.add(new Missile(x + width/15, y + height / 15)); } public void keyReleased(KeyEvent e) { int key = e.getKeyCode(); if (key == KeyEvent.VK_LEFT) { dx = 0; } if (key == KeyEvent.VK_RIGHT) { dx = 0; } } }
-Sprite Java Script:
import java.awt.Image; import java.awt.Rectangle; import javax.swing.ImageIcon; public class Sprite { protected int x; protected int y; protected int width; protected int height; protected boolean visible; protected Image image; public Sprite(int x, int y) { this.x = x; this.y = y; visible = true; } protected void getImageDimensions() { width = image.getWidth(null); height = image.getHeight(null); } protected void loadImage(String imageName) { ImageIcon ii = new ImageIcon(imageName); image = ii.getImage(); } public Image getImage() { return image; } public int getX() { return x; } public int getY() { return y; } public boolean isVisible() { return visible; } public void setVisible(Boolean visible) { this.visible = visible; } public Rectangle getBounds() { return new Rectangle(x, y, width, height); } }
Yorum Gönderme