⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 car.java

📁 数据结构中的迷宫算法
💻 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 + -