Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pack;
- import java.applet.Applet;
- import java.awt.BorderLayout;
- import java.awt.Button;
- import java.awt.Color;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Frame;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Rectangle;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import java.awt.geom.RoundRectangle2D;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Random;
- import java.util.TimerTask;
- import javax.imageio.ImageIO;
- import javax.swing.JApplet;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JProgressBar;
- public class StartingClass extends Applet implements Runnable, KeyListener {
- // dafuq
- private static final long serialVersionUID = 1L;
- private Player player;
- private Image image, background;
- private Graphics second;
- static Container pane;
- private BackgroundAnimation bAnimation1 = new BackgroundAnimation();
- private BackgroundAnimation bAnimation2 = new BackgroundAnimation();
- private ArrayList<Missile> missiles = new ArrayList<>();
- private ArrayList<Blast> blasts = new ArrayList<>();
- public static int NUM_OF_MISSILES = 3; // missiles in each wave (increments by level)
- public Random randomY = new Random();
- public Thread gameloop;
- public boolean game_running = false;
- private JProgressBar healthBar;
- private Button button;
- private boolean check = false;
- private JLabel message;
- @Override
- public void init() {
- setSize(Constants._Screen_Width, Constants._Screen_Height);
- //setBackground(Color.BLACK);
- setFocusable(true);
- setName("witam");
- try {
- background = ImageIO.read( ClassLoader.getSystemResource("data/background.png"));
- } catch (IOException e) { e.printStackTrace(); }
- bAnimation1.setFrames(background);
- bAnimation1.setXY(0, 0); // first animation is in the left corner
- bAnimation1.setDelay(5);
- bAnimation2.setFrames(background);
- bAnimation2.setXY(1024, 0);
- bAnimation2.setDelay(5);
- player = new Player(300, 300);
- gameloop = new Thread(this);
- healthBar = new JProgressBar(0, 100);
- healthBar.setValue(0);
- healthBar.setStringPainted(true);
- message = new JLabel("Beginning work!");
- add(healthBar);
- add(message);
- addKeyListener(this);
- }
- public void launchMissiles(){
- Random randomY = new Random();
- Missile temp;
- healthBar.setValue(healthBar.getValue()+1);
- System.out.println(message.getX() + " " + message.getY());
- for(int i=0;i<NUM_OF_MISSILES;i++){
- // height must be < 720
- do{
- // type 0 for normal missile, 1 for bombing missile
- temp = new Missile(1050, randomY.nextInt(700), 5, 1);
- }
- // if generated missile is too near with existing missiles, we have to create a new one.
- while(checkMissilesCollision(temp));
- synchronized(missiles){
- missiles.add(temp);
- }
- }
- }
- public boolean checkMissilesCollision(Missile m){
- synchronized(missiles){
- for(int i=0;i<missiles.size();i++)
- if(Math.abs(missiles.get(i).getY() - m.getY()) < 80)
- return true; // if missiles are too near
- }
- return false;
- }
- @Override
- public void stop() {
- // TODO Auto-generated method stub
- }
- @Override
- public void destroy() {
- // TODO Auto-generated method stub
- }
- @Override
- public void run() {
- while (true) {
- repaint();
- player.update();
- bAnimation1.update();
- bAnimation2.update();
- synchronized(missiles){
- for(int i=0;i<missiles.size();i++){
- if(missiles.get(i).getX() < -100)
- missiles.remove(i);
- }
- for(int i=0;i<missiles.size();i++){
- missiles.get(i).update();
- //if(player.checkForCollision(missiles.get(i)))
- //{
- // blasts.add(new Blast(player.getX(), player.getCenterY()));
- // missiles.remove(i);
- //}
- if(player.getRectangle().intersects(missiles.get(i).getRectangle())){
- blasts.add(new Blast(missiles.get(i).getX(), missiles.get(i).getCenterY()));
- missiles.remove(i);
- }
- }
- }
- synchronized(blasts){
- for(int i=0;i<blasts.size();i++){
- blasts.get(i).update();
- if(blasts.get(i).animation.playedOnce()) blasts.remove(i);
- }
- }
- }
- }
- @Override
- public void update(Graphics g) {
- if (image == null) {
- image = createImage(this.getWidth(), this.getHeight());
- second = image.getGraphics();
- }
- second.setColor(getBackground());
- second.fillRect(0, 0, getWidth(), getHeight());
- second.setColor(getForeground());
- paint(second);
- g.drawImage(image, 0, 0, this);
- }
- @Override
- public void paint(Graphics g) {
- //g.drawImage(bAnimation1.getImage(), bAnimation1.getX(), bAnimation1.getY(), this);
- //g.drawImage(bAnimation2.getImage(), bAnimation2.getX()-1, bAnimation1.getY(), this);
- g.drawRect(player.getX(), player.getY(), player.getHalfWidth()*2, player.getHalfHeight()*2);
- g.drawImage(player.getAnimation().getImage(), player.getX(), player.getY(), this);
- synchronized(missiles){
- for(int i=0;i<missiles.size();i++){
- g.drawRect(missiles.get(i).getX(), missiles.get(i).getY(), missiles.get(i).getHalfWidth()*2, missiles.get(i).getHalfHeight()*2);
- g.drawImage(missiles.get(i).getAnimation().getImage(), missiles.get(i).getX(), missiles.get(i).getY(), this);
- }
- }
- synchronized (blasts) {
- for(int i=0;i<blasts.size();i++){
- //if(!blasts.get(i).animation.playedOnce())
- g.drawImage(blasts.get(i).getAnimation().getImage(), blasts.get(i).getX(), blasts.get(i).getY(), this);
- }
- }
- }
- @Override
- public void keyPressed(KeyEvent e) {
- switch (e.getKeyCode()) {
- case KeyEvent.VK_SPACE:
- if(!game_running){
- gameloop.start();
- game_running = true;
- new MissilesLauncher().start();
- }
- player.setAccelerating(true);
- break;
- }
- }
- @Override
- public void keyReleased(KeyEvent e) {
- switch (e.getKeyCode()) {
- case KeyEvent.VK_SPACE:
- player.setAccelerating(false);
- break;
- }
- }
- @Override
- public void keyTyped(KeyEvent e) {
- // TODO Auto-generated method stub
- }
- public class MissilesLauncher extends Thread{
- @Override
- public void run(){
- while(true){
- try {
- sleep(2000);
- launchMissiles();
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }
- public static void main(String []args)
- {
- new StartingClass();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement