📄 car.java
字号:
package labyrinth;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JComponent;
import javax.swing.JPanel;
class Car extends JComponent implements MouseMotionListener, MouseListener {
Image cu,cd,cl,cr;
AnimaPanel container;
// 当前在path数组中的索引值
int curx;
int cury;
int lastx;
int lasty;
int direction = 1;
ToolPanel toolpanel;
public Car(int curx, int cury) {
lastx = this.curx = curx;
lasty = this.cury = cury;
Toolkit tk = Toolkit.getDefaultToolkit();
cu = tk.createImage(".\\res\\cu.gif");
cr = tk.createImage(".\\res\\cr.gif");
cd = tk.createImage(".\\res\\cd.gif");
cl = tk.createImage(".\\res\\cl.gif");
LoadImage.waitImage(this, cu);
LoadImage.waitImage(this, cr);
LoadImage.waitImage(this, cd);
LoadImage.waitImage(this, cl);
addMouseMotionListener(this);
addMouseListener(this);
}
public void paint(Graphics g) {
// 根据方向绘制
// System.out.println("car paint");
switch (direction) {
case 1:
g.drawImage(cr, 0, 0, container);
break;
case 2:
g.drawImage(cd, 0, 0, container);
break;
case 3:
g.drawImage(cl, 0, 0, container);
break;
case 4:
g.drawImage(cu, 0, 0, container);
break;
}
}
public Dimension getPreferredSize() {
return new Dimension(40, 40);
}
public void reset() {
direction = 1;
lastx = this.curx = 1;
lasty = this.cury = 0;
}
boolean startDragged = true;
public void mouseDragged(MouseEvent e) {
if (startDragged) {
ToolPanel.active = false;
toolpanel.ll.resetLocation(false);
startDragged = false;
ToolPanel.started = false;
}
int carInContainerX = getLocation().x;
int carInContainerY = getLocation().y;
int pixelX = e.getX();
int pixelY = e.getY();
container.carplx = carInContainerX + pixelX;
container.carply = carInContainerY + pixelY;
container.repaint();
// System.out.println(e.getX()+" "+e.getY());
}
public void mouseReleased(MouseEvent e) {
direction = 1;
int carInContainerX = getLocation().x;
int carInContainerY = getLocation().y;
//System.out.println(carInContainerX + " " + carInContainerY);
lastx = curx = carInContainerY / 40;
lasty = cury = carInContainerX / 40;
container.carplx = carInContainerX / 40 * 40;
container.carply = carInContainerY / 40 * 40;
container.repaint();
startDragged = true;
toolpanel.active = true;
try {
Thread.sleep(100);
} catch (Exception e1) {
// TODO: handle exception
e1.printStackTrace();
}
toolpanel.aniThread = new Thread(toolpanel);
toolpanel.start();
}
public void mouseMoved(MouseEvent arg0) {
}
public void mouseClicked(MouseEvent arg0) {
}
public void mouseEntered(MouseEvent arg0) {
}
public void mouseExited(MouseEvent arg0) {
}
public void mousePressed(MouseEvent arg0) {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -