?? gamechar.java
字號:
package net.java.gamebase.core;
import java.awt.AlphaComposite;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Point;
import java.awt.Toolkit;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
/**
*
*
* 26-mar-2007 HAL add setX setY methods
*/
public abstract class GameChar
extends JComponent {
private Image image;
private boolean drawBorder = false;
private float alpha = 1;
/**
* recebe nome da imagem a ser desenhada, largura e altura
*
* @param name
* @param width
* @param height
*/
public GameChar(String name, int x, int y, int width, int height) {
this.image = Toolkit.getDefaultToolkit().getImage(name);
setBounds(x, y, width, height);
}
/**
* enquanto imagem nao estiver sido ainda processada desenha retangulo no
* lugar da mesma
*
* @see java.awt.Canvas#paint(java.awt.Graphics) v3 HAL - use the drawBorder
* in case of dont have image
*/
public void paintComponent(Graphics g) {
int type = AlphaComposite.SRC_OVER;
AlphaComposite rule = AlphaComposite.getInstance(type, alpha);
( (Graphics2D) g).setComposite(rule);
if (image.getWidth(this) < 0) {
if (drawBorder) {
g.drawRect(0, 0, getWidth() - 1, getHeight() - 1);
}
}
else {
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
if (drawBorder) {
g.drawRect(0, 0, getWidth() - 1, getHeight() - 1);
}
}
}
public void setAlpha(int alpha) {
this.alpha = alpha / 100.0F;
}
public void tick() {
}
public Point getCenter() {
return getCenter(getLocation().x, getLocation().y);
}
public Point getCenter(int x, int y) {
Point result = new Point(x + (getWidth() / 2), y + (getHeight() / 2));
return result;
}
/**
*
* @param gameChar
* @return if should repaint or not, default is false
*/
public boolean colideTo(GameChar gameChar) {
return false;
}
public void message(String string) {
JOptionPane.showMessageDialog(this, string);
}
public void setX(int x) {
setBounds(x, getY(), getWidth(), getHeight());
}
public void setY(int y) {
setBounds(getX(), y, getWidth(), getHeight());
}
/**
* change the Image using the name
*
* @param name
*/
public void setImage(String name) {
this.image = Toolkit.getDefaultToolkit().getImage(name);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -