Tuesday 15 June 2010

java - Game Screen Change Issues -



java - Game Screen Change Issues -

when set want alter screen when press space bar, when press key, automatically closes. if help great!

screen class:

package net.jacobmob.towerdefence; import java.awt.color; import java.awt.graphics; import javax.swing.jpanel; public class screen extends jpanel implements runnable{ thread thread = new thread(this); frame frame; /** account*/ user user; private int fps = 0; public int scene; public boolean running = false; public screen (frame frame) { this.frame = frame; this.frame.addkeylistener(new keyhandler(this)); thread.start(); } public void paintcomponent(graphics g) { g.clearrect(0, 0, this.frame.getwidth(), this.frame.getheight()); //background if(scene == 0) { g.setcolor(color.cyan); g.fillrect(0, 0, this.frame.getwidth(), this.frame.getheight()); }else if (scene == 1) { g.setcolor(color.green); g.fillrect(0, 0, this.frame.getwidth(), this.frame.getheight()); //grid g.setcolor(color.gray); for(int x =0; x < 22; x++) { for(int y = 0; y < 13; y++) { double width1 = getwidth() * 10000 / 1100; double width2 = width1 / 10000; double width3 = this.frame.getwidth() / width2; double width = width3 / 22; double height1 = getheight() * 10000 / 700; double height2 = height1 / 10000; double height3 = this.frame.getheight() / height2; double height = height3 / 14; g.drawrect(50 + (x * 50), 50 + (y * 50), (int) width, (int) height); } } //health + moneys g.drawrect(x, y, width, height); }else{ g.setcolor(color.white); g.fillrect(0, 0, this.frame.getwidth(), this.frame.getheight()); } //fps @ bottom g.drawstring(fps + "", 10, 10); } //only first time public void loadgame() { user = new user(this); running = true; } public void startgame(user user) { user.createplayer(); this.scene = 1; //level 1 } public void run() { system.out.println("[success] frame created"); long lastframe = system.currenttimemillis(); int frames = 0; loadgame(); while(running) { repaint(); frames++; if(system.currenttimemillis() - 1000 >= lastframe) { fps = frames; frames = 0; lastframe = system.currenttimemillis(); } seek { thread.sleep(1); } grab (interruptedexception e) { e.printstacktrace(); } } system.exit(0); } public class keytyped{ public void keyesc() { running = false;; } public void keyspace() { startgame(user); } } }

keyhandler class:

package net.jacobmob.towerdefence; import java.awt.event.keyevent; import java.awt.event.keylistener; public class keyhandler implements keylistener{ private screen screen; private screen.keytyped keytyped; public keyhandler (screen screen) { this.screen = screen; this.keytyped = this.screen.new keytyped(); } public void keypressed(keyevent e) { int keycode = e.getkeycode(); system.out.println(keycode); if(keycode == 27); this.keytyped.keyesc(); if(keycode == 32); this.keytyped.keyspace(); } public void keyreleased(keyevent e) { } public void keytyped(keyevent e) { } }

frame class:

package net.jacobmob.towerdefence; import javax.swing.jframe; public class frame extends jframe{ public static void main(string[] args) { new frame(); } public frame() { new jframe(); this.settitle("gigantocypris tower defence - jacob o.b."); this.setdefaultcloseoperation(exit_on_close); this.setextendedstate(maximized_both); this.setundecorated(true); this.setresizable(false); this.setvisible(true); screen screen = new screen(this); this.add(screen); } }

well wrong.

if(keycode == 27); this.keytyped.keyesc(); if(keycode == 32); this.keytyped.keyspace();

you want

if(keycode == 27){ this.keytyped.keyesc(); } if(keycode == 32){ this.keytyped.keyspace(); }

java swing

No comments:

Post a Comment