?? gamebaseui.java
字號:
package net.java.gamebase.core;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
*
* @author HAL v3 HAL - to allow the setBackgroundImage() the paintComponent
* method was implemented
*/
public class GameBaseUI
extends JPanel
implements KeyListener, Runnable {
private static final long serialVersionUID = 1L;
int celula = 30;
private long step = 500;
private JFrame frame;
private boolean running = true;
private Image backgroundImage;
private ArrayList timers;
public GameBaseUI(int width, int height) {
setBackground(Color.white);
setPreferredSize(new Dimension(width, height));
setSize(width, height);
setLayout(null);
Thread thread = new Thread(this);
thread.start();
timers = new ArrayList();
frame = new JFrame();
frame.getContentPane().add(this);
frame.addKeyListener(this);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(new GameAgentEscExit());
}
public void show() {
frame.setVisible(true);
}
// v3 to allow the setBackgroundImage() HAL
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (getBackgroundImage() != null) {
if (getBackgroundImage().getWidth(this) > 0) {
g.drawImage(getBackgroundImage(), 0, 0, getWidth(),
getHeight(), this);
}
}
}
public void keyPressed(KeyEvent e) {
Component[] childs = getComponents();
for (int i = 0; i < childs.length; i++) {
if (childs[i] instanceof GameCharMovable) {
GameCharMovable one = (GameCharMovable) childs[i];
one.keyPressed(e.getKeyCode());
}
if (childs[i] instanceof GameAgent) {
GameAgent one = (GameAgent) childs[i];
one.keyPressed(e.getKeyCode());
}
}
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
public void run() {
while (Thread.currentThread() != null && running) {
try {
Thread.sleep(step);
}
catch (InterruptedException i) {
}
Component[] childs = getComponents();
for (int i = 0; i < childs.length; i++) {
if (childs[i] instanceof GameChar) {
GameChar one = (GameChar) childs[i];
one.tick();
}
}
Iterator iterator = timers.iterator();
while (iterator.hasNext()) {
GameTimer element = (GameTimer) iterator.next();
element.tick();
}
}
System.exit(0);
}
public void exit() {
running = false;
}
/**
* evita verificacoes de overlapping de componentes
*
* @see javax.swing.JComponent#isOptimizedDrawingEnabled()
*/
public boolean isOptimizedDrawingEnabled() {
return true;
}
public long getStep() {
return step;
}
public void setStep(long step) {
this.step = step;
}
public Image getBackgroundImage() {
return backgroundImage;
}
public void setBackgroundImage(Image backgroundImage) {
this.backgroundImage = backgroundImage;
}
public void setBackgroundImage(String name) {
this.backgroundImage = Toolkit.getDefaultToolkit().getImage(name);
}
public void addTimer(GameTimer timer) {
timers.add(timer);
}
public void removeTimer(GameTimer timer) {
timers.remove(timer);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -