Question: Creating a game Stick Hero in JAVA So far in the project, under the file of Stick.java, it is still missing a condition

Creating a game "Stick Hero" in JAVA

So far in the project, under the file of "Stick.java", it is still missing a condition estimate. You can run the program, and you will see when you press and hold the SPACE key, a line will keeping going up until you stop pressing the space key. But after the line goes down, there is no more action after.

Creating a game "Stick Hero" in JAVA So far in the project,

I have created some of the tests.

class car.jave:

package mygame.test;

public class Car {

}

(This part is empty now)

Constant.java :

package mygame.test;

public class Constant { public static final int GAME_WIDTH = 500; public static final int GAME_HEIGHT = 500; public static final int COLUMN_HEIGHT = 290; public static final int COLUMN_lENGTH = 210; public static final int COLUMN_COORDINATESX = 8; public static final int COLUMN2_COORDINATESX = 160; public static final int COLUMN3_COORDINATESX = 450; }

GameFrame.java

package mygame.test;

import java.awt.Graphics; import javax.imageio.ImageIO; import java.awt.Image; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent;

import java.awt.image.BufferedImage; import java.io.IOException; import java.net.URL;

public class GameFrame extends MyFarme {

// Image img = GameFrame.getImage("Image/1500446274906.jpg");

Stick s = new Stick();

@Override public void launchFrame() { super.launchFrame(); addKeyListener(new GameFrame.KeyMonitor()); } @Override public void paint(Graphics g){ s.draw(g);

} class KeyMonitor extends KeyAdapter{ @Override public void keyPressed (KeyEvent e){ s.height(e); } @Override public void keyReleased (KeyEvent e){ s.heightEnd(e); } } public static Image getImage(String path) { //the image tranfer way URL u = GameFrame.class.getClassLoader().getResource(path); BufferedImage img = null; try { img = ImageIO.read(u); } catch (IOException e) { e.printStackTrace(); }

return img; }

public static void main(String[] args) { GameFrame gf = new GameFrame(); gf.launchFrame(); }

}

MyFarme.java

package mygame.test;

import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.logging.Level; import java.util.logging.Logger;

public class MyFarme extends Frame { public void launchFrame() {

new GameFrame.PaintThread().start(); // addKeyListener(new GameFrame.KeyMonitor()); Father class cannot use keylistner

setSize(Constant.GAME_WIDTH, Constant.GAME_HEIGHT); setLocation(100, 100); setVisible(true);

addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } class PaintThread extends Thread {

@Override public void run() { while (true) { repaint(); try { Thread.sleep(100); } catch (InterruptedException ex) { Logger.getLogger(GameFrame.class.getName()).log(Level.SEVERE, null, ex); } } } } }

Stick.java

import java.util.Scanner;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.KeyEvent;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.*;
import java.util.Random;
public class Stick extends JPanel{
Random n = new Random();
public int columnWidth = n.nextInt(70)+30;
public int columnCOORDINATESX2,columnCOORDINATESX3;
Scanner input = new Scanner(System.in);
private Timer timer = new Timer();
private int angle = 185;
double x = 5, y = 1, z = 60;
private boolean left;
public volatile boolean exit; //define while condition to end the run()
public volatile boolean conditiondown;
public int angle1;
public void height (KeyEvent e){
switch (e.getKeyCode()){ //e.getKeyCode() judgment the number of keyboard
case 32:
y += -3; //variate of length of stick
}
}
public void heightEnd (KeyEvent e){
switch (e.getKeyCode()){
case 32:
left = true ;
}
}
public void draw(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
int lengthColunm1 = columnWidth-20;
int lengthColunm2 = columnWidth+10;
int lengthColunm3 = columnWidth-15;
int stickCOORDINATESX = Constant.COLUMN_COORDINATESX + lengthColunm1 - 5;
g.fillRect(Constant.COLUMN_COORDINATESX, (int)Constant.COLUMN_HEIGHT, lengthColunm1, Constant.COLUMN_lENGTH);
g.fillRect(Constant.COLUMN2_COORDINATESX, (int)Constant.COLUMN_HEIGHT, lengthColunm2, Constant.COLUMN_lENGTH);
g.fillRect(Constant.COLUMN3_COORDINATESX, (int)Constant.COLUMN_HEIGHT, lengthColunm3, Constant.COLUMN_lENGTH);
int specing = Constant.COLUMN2_COORDINATESX - Constant.COLUMN_COORDINATESX - lengthColunm1;
int ss = angle1;
//stick
if (angle >271){
g2d.fillRect(stickCOORDINATESX, (int)Constant.COLUMN_HEIGHT, (int) -y, (int)x); // down stick
exit =false;
angle1 = angle;
}else if(angle
exit =true;
}
//System.out.println("angle1 "+ ss);
if (left){
timer.schedule(new TimerTask(){
@Override
public void run() {
while(exit){
angle+=3; //the speed of roatation
// repaint();
break;
}
}
}, 50);
g2d.translate(stickCOORDINATESX , (int)Constant.COLUMN_HEIGHT); //the rect site in window
if(angle
for (int i = 0; i
g2d.rotate(angle * Math.PI / 180); // angle of rotate
g2d.fillRect(0,0, (int)x, (int)-y); //???????????????
}
}
} else { //run one time
g2d.fillRect(stickCOORDINATESX, (int)Constant.COLUMN_HEIGHT, (int) x, (int)y); //(right,left / up,down / length/ high) //grow up stick
double lengthStick = -y+2;
System.out.println("one: "+lengthStick);
// System.out.println("two: "+specing);
// System.out.println( lengthColunm2+specing);
System.out.println("angle1 "+ ss);
if( lengthStick > specing && lengthStick
System.out.println("okokokokok");
}
}
}
}
MyGame ? ??? ? image 1500446274906. jpE backgr ound. jpg ?-B mygame. test ??.tr. ?NW? Constant. java GameFr am e. java MyFarme. java Stick. Java MyGame ? ??? ? image 1500446274906. jpE backgr ound. jpg ?-B mygame. test ??.tr. ?NW? Constant. java GameFr am e. java MyFarme. java Stick. Java

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!