📄 animationgo.java
字号:
package org.yushang.jumpchess.Interface;
// Download:http://www.codefans.net
import java.util.Vector;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Point;
import org.yushang.jumpchess.audio.WavePlayer;
import org.yushang.jumpchess.pkg.Chess;
import org.yushang.jumpchess.pub.Position;
public class AnimationGo extends Animation {
private Drawer drawer;
private Chess chess;
private Point[] pointPath;
private int pathIndex = 0;
private int BigOffset = 0;
private final static int Offest = 2;
private WavePlayer wavePlayer = new WavePlayer();
public AnimationGo(Drawer drawer, Chess chess, Position[] path) {
this.drawer = drawer;
this.chess = chess;
this.pointPath = CreatePointPath(path);
this.pathIndex = 0;
}
private double getDistance(Point p1, Point p2) {
double re = (p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y);
return Math.sqrt(re);
}
private Point[] CreatePointPath(Position[] path) {
Vector vector = new Vector();
for (int i = 0; i < path.length - 1; i++) {
Point beginPoint = drawer.PositionToMouseXY(path[i]);
Point endPoint = drawer.PositionToMouseXY(path[i + 1]);
int SpanCount = (int) (getDistance(beginPoint, endPoint) / Offest);
for (int j = 0; j < SpanCount; j++) {
Point point = new Point(0, 0);
point.x = j * (endPoint.x - beginPoint.x) / SpanCount + beginPoint.x;
point.y = j * (endPoint.y - beginPoint.y) / SpanCount + beginPoint.y;
vector.add(point);
}
}
//vector.add(drawer.PositionToMouseXY(positions[positions.length - 1]));
Point[] points = new Point[vector.size()];
for (int i = 0; i < points.length; i++) {
points[i] = (Point) vector.get(i);
}
return points;
}
public void Draw(GC gc) {
/*for (int i = 0; i < pointPath.length - 1; i++) {
gc.drawLine(pointPath[i].x, pointPath[i].y,
pointPath[i + 1].x, pointPath[i + 1].y);
}*/
drawer.DrawChess(gc, chess.GetColor(), pointPath[pathIndex], BigOffset / 6 - 1);
}
public boolean Run() {
BigOffset += 1;
BigOffset %= 18;
pathIndex ++;
boolean re = (pathIndex < pointPath.length);
if (!re) {
pathIndex = pointPath.length - 1;
}
if(!re) {
wavePlayer.Play(WavePlayer.WAVEDOWN);
}
return re;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -