📄 alignrule.java
字号:
package example.boids;
class AlignRule implements BoidRule, BoidsConstants {
private int totalVx;
private int totalVy;
private int count;
private Boid currentBoid;
private static final int ALIGN_FACTOR = (1 << FIXED_POINT_SHIFT) / 8;
AlignRule() { }
public void reset(Boid boid) {
totalVx = 0;
totalVy = 0;
count = 0;
currentBoid = boid;
}
public void applyTo(Boid boid) {
totalVx += boid.getVx();
totalVy += boid.getVy();
count++;
}
public int getVx() {
int vx = 0;
if (count > 0) {
vx = ( (totalVx / count) * ALIGN_FACTOR) >> FIXED_POINT_SHIFT;
}
return vx;
}
public int getVy() {
int vy = 0;
if (count > 0) {
vy = ( (totalVy / count) * ALIGN_FACTOR) >> FIXED_POINT_SHIFT;
}
return vy;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -