ボード・ゲームを作っています。私は現在、3〜4時間を殺しています。どこにでもドキュメントがありませんので、私は運がなければ推測しています。このコードは、特定のブロックのための「ハイライト」四角形を描画することになっているエンティティ・モディファイヤは動作しますが、変化は見えません
public void highlightBlockTest(BoardCoordinate bc) {
Log.i("highlightBlock()", "entered.");
Point p = new Point(bc.getPuzzlePiece().getDestination());
Rect rect = getBoardCoordinateRectFromPoint(p);
int x = rect.getX();
int y = rect.getY();
int w = rect.getWidth();
int h = rect.getHeight();
Entity e = new Entity(0, 0);
Rectangle r;
r = new Rectangle(x, y, w, 5);
e.attachChild(r);
r = new Rectangle(x, y, 5, h);
e.attachChild(r);
r = new Rectangle(x + w - 5, y, 5, h);
e.attachChild(r);
r = new Rectangle(x, y + h - 5, w, 5);
e.attachChild(r);
SequenceEntityModifier sem = new SequenceEntityModifier(
new DelayModifier(1f),
new AlphaModifier(1f, 0.0f, 1.0f, new IEntityModifierListener() {
@Override
public void onModifierStarted(IModifier<IEntity> arg0, IEntity arg1) {
System.out.println("Alpha start!");
}
@Override
public void onModifierFinished(IModifier<IEntity> arg0, IEntity arg1) {
System.out.println("Alpha stop!");
}
})
);
e.registerEntityModifier(sem);
this.mScene.attachChild(e);
return;
}
:
はこのことを考えてみましょう。矩形はすべて描画されますが、AlphaModifierはその値を問題のエンティティに適用しません。 DelayModifierは正常に動作します。
ModifierListenerを追加して、呼び出されたかどうかを確認しました。私はLogcatで "Alpha start"と "Alpha stop"を見ています。しかし、ハイライトされた矩形はまだそこにあり、ボード上にはっきりと見える。
最後の手段として、MoveModifierを追加して、5秒間に50ピクセル右に移動し、矩形を瞬時に画面外に移動させました。
これらの修飾語が期待どおりに機能しないのはなぜですか?
まだ動作していません:/ for(int n = 0; n
bos
私はただ1つの矩形を作成し、それをシーンに(エンティティの代わりに、次にエンティティをシーンに)添付すれば、すべてが完全に動作します。したがって、モディファイアは子供には適用されないようです。 10時間以上を無駄にする前に私にこれを伝えるドキュメントがあっただけでしたら、 – bos
問題を解決しましたか? – JohnEye