資源簡介
Java Swing開發(fā)的《星際爭霸》游戲
代碼片段和文件信息
package?core;
import?java.awt.Color;
import?java.awt.Component;
import?java.awt.Graphics;
import?java.awt.event.InputEvent;
import?java.awt.event.KeyEvent;
import?java.awt.event.KeyListener;
import?java.awt.event.MouseAdapter;
import?java.awt.event.MouseEvent;
import?java.awt.event.MouseMotionAdapter;
import?javax.swing.KeyStroke;
/**
?*?用戶交互控制
?*?@author?Administrator
?*/
public?class?Control?{
private?int?x?y?dx?dy?width?height;
private?boolean?dragged?moveing;
private?Component?component;
private?ControlDragListener?dragLister?=?new?ControlDragListener();
private?ControlMoveListener?moveLister?=?new?ControlMoveListener();
private?ControlKeyListener?keyLister?=?new?ControlKeyListener();
private?DragListener?dragListener;
private?MoveListener?moveListener;
private?LeftPressListener?leftPressListener;
private?RightPressListener?rightPressListener;
private?KeyPressListener?keyPressListener;
public?static?final?int?LEFT_MOUSE?=?1;
public?static?final?int?RIGHT_MOUSE?=?3;
??
public?Control(Component?mouseComponentComponent?keyComponent)?{
this.component?=?mouseComponent;
component.addMouseListener(dragLister);
component.addMouseMotionListener(moveLister);
keyComponent.addKeyListener(keyLister);
}
public?void?drag(Graphics?g)?{
if?(dragged?&&?moveing)?{
g.setColor(Color.red);
width?=?Math.abs(dx?-?x);
height?=?Math.abs(dy?-?y);
g.drawRect(Math.min(x?dx)?Math.min(y?dy)?width?height);
}
}
/**
?*?新增鼠標拖放回調(diào)
?*?@param?dragCallBack
?*/
public?Control?addDragListener(DragListener?dragCallBack){
this.dragListener?=?dragCallBack;
return?this;
}
/**
?*?新增鼠標移動回調(diào)
?*?@param?moveListener
?*?@return
?*/
public?Control?addMoveListener(MoveListener?moveListener){
this.moveListener?=?moveListener;
return?this;
}
public?Control?addLeftPressListener(LeftPressListener?selectCallBack){
this.leftPressListener?=?selectCallBack;
return?this;
}
public?Control?addRightPressListener(RightPressListener?selectCallBack){
this.rightPressListener?=?selectCallBack;
return?this;
}
public?Control?addKeyPressListener(KeyPressListener?keyPressListener){
this.keyPressListener?=?keyPressListener;
return?this;
}
?
/**
?*?內(nèi)部類,處理鼠標點擊
?*/
private?class?ControlDragListener?extends?MouseAdapter?{
public?void?mousePressed(MouseEvent?e)?{
//如果是左鍵
if(e.getButton()==LEFT_MOUSE){
x?=?e.getX();
y?=?e.getY();
dragged?=?true;
if(leftPressListener!=null){
leftPressListener.press(x?y);
}
//如果是右鍵
}?else?if(e.getButton()==RIGHT_MOUSE){
if(rightPressListener!=null){
// System.out.println(e.getX()+““+e.getY());
rightPressListener.press(e.getX()?e.getY());
}
}
}
public?void?mouseReleased(MouseEvent?e)?{
//如果需要有回調(diào)
if(dragListener!=null&&dragged&&moveing){
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-08-26?15:23??StarCraft-Java?Swing\
?????目錄???????????0??2010-08-05?14:56??StarCraft-Java?Swing\Swing星際爭霸\
?????目錄???????????0??2010-08-05?14:57??StarCraft-Java?Swing\Swing星際爭霸\source\
?????文件?????????274??2009-02-17?19:26??StarCraft-Java?Swing\Swing星際爭霸\source\.classpath
?????文件?????????379??2009-02-24?17:49??StarCraft-Java?Swing\Swing星際爭霸\source\.project
?????目錄???????????0??2009-03-22?15:19??StarCraft-Java?Swing\Swing星際爭霸\source\.settings\
?????目錄???????????0??2009-05-06?13:41??StarCraft-Java?Swing\Swing星際爭霸\source\bin\
?????目錄???????????0??2009-04-23?15:02??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\
?????文件????????2096??2009-05-05?13:05??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\Control$ControlDragListener.class
?????文件????????1261??2009-05-05?13:05??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\Control$ControlKeyListener.class
?????文件????????1434??2009-05-05?13:05??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\Control$ControlMoveListener.class
?????文件?????????202??2009-05-05?13:05??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\Control$DragListener.class
?????文件?????????208??2009-05-05?13:05??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\Control$KeyPressListener.class
?????文件?????????211??2009-05-05?13:05??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\Control$LeftPressListener.class
?????文件?????????200??2009-05-05?13:05??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\Control$MoveListener.class
?????文件?????????213??2009-05-05?13:05??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\Control$RightPressListener.class
?????文件????????5009??2009-05-05?13:05??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\Control.class
?????文件????????5638??2009-05-05?09:46??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\FocusManager.class
?????文件?????????671??2009-04-20?17:43??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\FullGameCore$1.class
?????文件????????3846??2009-04-20?17:43??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\FullGameCore.class
?????文件????????3432??2009-04-20?17:43??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\GameCore.class
?????文件?????????309??2009-04-20?17:43??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\Grid.class
?????文件????????5585??2009-05-05?09:46??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\GridMap.class
?????文件????????8745??2009-05-05?13:09??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\GridMapRender.class
?????文件????????1359??2009-04-20?17:43??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\ImageManager.class
?????文件????????1051??2009-04-20?17:43??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\NullRepaintManager.class
?????文件???????10937??2009-05-05?13:03??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\ResourceManager$Constant.class
?????文件????????5986??2009-05-05?13:03??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\ResourceManager.class
?????文件?????????738??2009-04-20?17:43??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\ScreenManager$1.class
?????文件????????4251??2009-04-20?17:43??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\ScreenManager.class
?????文件????????1865??2009-04-20?17:43??StarCraft-Java?Swing\Swing星際爭霸\source\bin\core\TileList.class
............此處省略440個文件信息
評論
共有 條評論