Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Spaceinvaders;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Polygon;
- import java.awt.Rectangle;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.ComponentAdapter;
- import java.awt.event.ComponentEvent;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- //import java.util.Timer;
- import javax.swing.Timer;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.ImageIcon;
- import javax.swing.JComponent;
- import javax.swing.JFrame;
- public class Game extends JPanel implements KeyListener, Runnable{
- private boolean play = true;
- private boolean bullet=false;
- //private int score =0;
- private Timer timer;
- private int enemy_amount;
- Thread t;
- //private int vechicle_width=Config.FRAME_WIDTH/11;
- private int delay = 5;
- private int bulletposition_x;
- private int bulletposition_y;
- private int count_enemy=0;
- //int x= Config.FRAME_WIDTH/11*2;
- //int y=50;
- boolean changemove = false;
- Player player=new Player(Config.HEALTH_PLAYER, Config.PLAYER_X, Config.PLAYER_Y);
- Enemy enemy [] = new Enemy[Config.TOTALENEMY];
- public Game(String name ){
- new Thread(new Runnable() {
- @Override
- public void run() {
- try {
- for(;;) {
- if((Config.ENEMY_X+((Config.LAST_ENEMY+1)*Config.VECHICLE_WIDTH))>=Config.FRAME_WIDTH) {
- changemove=true;
- enemy_moveLeft();
- }
- else if((Config.ENEMY_X+(Config.FIRST_ENEMY*Config.VECHICLE_WIDTH))<0) {
- changemove=false;
- enemy_moveRight();
- }
- else if(changemove) {
- enemy_moveLeft();
- }
- else {
- enemy_moveRight();
- }
- setDistribution();
- player.setPosition_x(Config.PLAYER_X);
- //repaint();
- Thread.sleep(10);
- //System.out.println(t);
- //System.out.println(x+" "+y);
- }
- //Thread.sleep(400);
- }
- catch(InterruptedException e) {
- }
- }
- }).start();
- new Thread(new Runnable() {
- @Override
- public void run() {
- try {
- for(;;) {
- if(play) {
- for(int i=0; i<Config.TOTALENEMY;i++) {
- if(enemy[i]!=null&&bullet) {
- int xpoints[]={enemy[i].getPosition_x(),enemy[i].getPosition_x()+Config.VECHICLE_WIDTH/2,enemy[i].getPosition_x()+Config.VECHICLE_WIDTH};
- int ypoints[]={enemy[i].getPosition_y()+(Config.VECHICLE_HEIGTH/2),enemy[i].getPosition_y()+Config.VECHICLE_HEIGTH,enemy[i].getPosition_y()+(Config.VECHICLE_HEIGTH/2)};
- if(new Polygon(xpoints,ypoints,3).intersects(new Rectangle(bulletposition_x,bulletposition_y,Config.BULLET_WIDTH,Config.BULLET_HEIGTH))) {
- Config.SCORES += enemy[i].getScore();
- enemy[i]=null;
- bullet=false;
- count_enemy--;
- }
- }
- }
- bulletposition_x=bulletposition_x;
- bulletposition_y-=Config.BULLET_WIDTH;
- if(bulletposition_y<0) {
- bullet=false;
- }
- }
- //repaint();
- player.setPosition_y(Config.PLAYER_Y);
- //timer = new Timer(delay,this);// Timer(int delay, ActionListener listener)
- Thread.sleep(10);
- }
- //Thread.sleep(400);
- }
- catch(InterruptedException e) {
- }
- }
- }).start();
- addKeyListener(this);
- setFocusable(true);
- setFocusTraversalKeysEnabled(false);
- Distribution(Config.LEVEL_1);
- t= new Thread(this);
- t.start();
- }
- public void Distribution(int [][]level) {
- int count=0;
- for(int i=0;i<4;i++) {
- for(int j=0; j<7;j++) {
- switch(level[i][j]) {
- case 1:
- enemy[count]=new Enemy_1(Config.HEALTH_ENEMY_1,Config.ENEMY_X+Config.VECHICLE_WIDTH*j,Config.FIRST_LINE+Config.VECHICLE_HEIGTH*i);
- count_enemy++;
- break;
- case 2:
- enemy[count]=new Enemy_2(Config.HEALTH_ENEMY_2,Config.ENEMY_X+Config.VECHICLE_WIDTH*j,Config.FIRST_LINE+Config.VECHICLE_HEIGTH*i);
- count_enemy++;
- break;
- case 0:
- break;
- }
- if(enemy[count]!=null) {
- if(j<Config.FIRST_ENEMY) {
- Config.setFirstEnemy(j);
- }
- if(j>Config.LAST_ENEMY) {
- Config.setLastEnemy(j);
- }
- }
- count++;
- }
- }
- enemy_amount=count;
- }
- public void setDistribution() {
- int count=0;
- int first_enemy_amount=0;
- int last_enemy_amount=0;
- for(int i=0;i<4;i++) {
- for(int j=0; j<7;j++) {
- if(j==Config.FIRST_ENEMY) {
- if(enemy[count]!=null) {
- first_enemy_amount++;
- }
- }
- if(j==Config.LAST_ENEMY) {
- if(enemy[count]!=null) {
- last_enemy_amount++;
- }
- }
- if(count<enemy_amount) {
- if(enemy[count]==null){
- count++;
- }
- else {
- enemy[count].setPosition_x(Config.ENEMY_X+Config.VECHICLE_WIDTH*j);
- enemy[count].setPosition_y(Config.ENEMY_Y+Config.VECHICLE_HEIGTH*i);
- count++;
- }
- }
- }
- }
- if(first_enemy_amount==0) {
- Config.setFirstEnemy(Config.FIRST_ENEMY+1);
- }
- if(last_enemy_amount==0) {
- Config.setLastEnemy(Config.LAST_ENEMY-1);
- }
- }
- public void paintComponent(Graphics g) {
- //background
- g.setColor(Color.black);
- g.fillRect(1, 1, Config.FRAME_WIDTH, Config.FRAME_HEIGTH);
- //borders
- //g.setColor(Color.yellow);
- //g.fillRect(0,0,3,592);
- //g.fillRect(0, 0, 992, 3);
- //g.fillRect(992, 0, 3, 592);
- //player
- player.paint(g);
- // bullet
- if(bullet) {
- g.setColor(Color.white);
- g.fillRect(bulletposition_x, bulletposition_y, Config.BULLET_WIDTH, Config.BULLET_HEIGTH);
- }
- //enemy
- for( int i=0;i<Config.TOTALENEMY;i++) {
- if(enemy[i]!=null)
- enemy[i].paint(g);
- }
- //scores
- g.setColor(Color.white);
- g.setFont(new Font("moja", Font.BOLD, 30));
- g.drawString("scores:"+Integer.toString(Config.SCORES), 5, 30);
- //level
- g.setColor(Color.white);
- g.setFont(new Font("moja", Font.BOLD, 30));
- g.drawString("LEVEL:"+Config.LEVEL, Config.FRAME_WIDTH-150, 30);
- //health
- g.setColor(Color.white);
- g.fillRect(Config.FRAME_WIDTH/2-55, 5, 110, 30);
- g.setColor(Color.red);
- g.fillRect(Config.FRAME_WIDTH/2-50, 10, player.getHealth(), 20);
- g.setColor(Color.white);
- g.setFont(new Font("moja", Font.BOLD, 15));
- g.drawString(Integer.toString(player.getHealth())+"%", Config.FRAME_WIDTH/2-25, 25);
- g.dispose();
- }
- @Override
- public void keyTyped(KeyEvent e) {}
- @Override
- public void keyReleased(KeyEvent e) {}
- @Override
- public void keyPressed(KeyEvent e) {
- if(e.getKeyCode()==KeyEvent.VK_RIGHT) {
- if(Config.PLAYER_X >= Config.FRAME_WIDTH-Config.VECHICLE_WIDTH) {
- Config.setPlayerX(Config.FRAME_WIDTH-Config.VECHICLE_WIDTH);
- }
- else {
- moveRight();
- }
- }
- if(e.getKeyCode()==KeyEvent.VK_LEFT) {
- if(Config.PLAYER_X <= 0) {
- Config.setPlayerX(0);
- }
- else {
- moveLeft();
- }
- }
- if(e.getKeyChar()==' '&&bullet==false) {
- bullet=true;
- bulletposition_x=Config.PLAYER_X+(Config.VECHICLE_WIDTH/2);
- bulletposition_y=Config.PLAYER_Y;
- }
- }
- public void moveRight(){
- play=true;
- Config.movePlayerRight();
- player.setPosition_x(Config.PLAYER_X);
- }
- public void moveLeft(){
- play=true;
- Config.movePlayerLeft();
- player.setPosition_x(Config.PLAYER_X);
- }
- public void enemy_moveRight(){
- for( int i=0;i<Config.TOTALENEMY;i++) {
- if(enemy[i]!=null) {
- enemy[i].setPosition_x((enemy[i].getPosition_x())+1);
- }
- }
- Config.setEnemyX(Config.ENEMY_X+=1);
- }
- public void enemy_moveLeft(){
- for( int i=0;i<Config.TOTALENEMY;i++) {
- if(enemy[i]!=null) {
- enemy[i].setPosition_x(enemy[i].getPosition_x()-1);
- }
- }
- Config.setEnemyX(Config.ENEMY_X-=1);
- }
- @Override
- public void run() {
- // TODO Auto-generated method stub
- try {
- for(;;) {
- if(count_enemy!=0) {
- repaint();
- Thread.sleep(10);
- System.out.println("tutaj");
- }
- else {
- Thread.sleep(5000);
- Config.LEVEL++;
- Config.setStartConfig();
- switch(Config.LEVEL) {
- case 1:
- Distribution(Config.LEVEL_1);
- break;
- case 2:
- Distribution(Config.LEVEL_2);
- break;
- case 3:
- Distribution(Config.LEVEL_3);
- break;
- case 4:
- Distribution(Config.LEVEL_4);
- break;
- case 5:
- Distribution(Config.LEVEL_5);
- break;
- }
- }
- }
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement