Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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.

image text in transcribed

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

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Support For Data Mining Applications Discovering Knowledge With Inductive Queries Lnai 2682

Authors: Rosa Meo ,Pier L. Lanzi ,Mika Klemettinen

2004th Edition

3540224793, 978-3540224792

More Books

Students also viewed these Databases questions

Question

Express using summation notation. 1-1/2+ 3 1/3+ 4 .. + 1 13

Answered: 1 week ago

Question

Write a short note on rancidity and corrosiveness.

Answered: 1 week ago

Question

Does it exceed two pages in length?

Answered: 1 week ago

Question

Does it avoid typos and grammatical errors?

Answered: 1 week ago