私はBeeを1つ追加したCanvas(playArea)を作成しました(playArea.children.Add(bee)
を使用)。また、playArea
の任意の点でX秒ごとに新しいbox
を追加します。 bee
を現在のポイントからクリックしたポイントに移動するには、Storyboard
とDoubleAnimation
を使用してください。私が何をしたいか他のUIElementが渡すたびにUIElementを削除する
は私が削除したいですbee
はそれだけでplayAre.Children.Remove(box)
を行う必要がありますように。私はそれをチェックするためにどのようにそれを把握することはできません(通過さbox
。
ここに例を示します:Aをクリックすると、bee
はそのポイントに行き、3つのボックスを削除します。私はおそらく私自身のEventHandler
を使用すべきだと思っていました(私はまだ自分でそれはもう一つの問題です)。だから私は何をすべきか、私はどのような状態を作るべきですか?
EDIT: 私の使用方法は次のとおりです。私はbegginingで何、私は蜂を描き、自分のキャンバスに追加して、すべてのX秒は、私はちょうどあなたがあなたのアニメーションにCurrentTimeInvalidatedイベントハンドラを使用することができ、ランダムな場所
//moving the bee to the position which I got from Point p = Mouse.GetPosition(playArea);
public static void MoveBee(UIElement element, double toX, double toY)
{
double fromX = Canvas.GetLeft(element);
double fromY = Canvas.GetTop(element);
Storyboard storyboard = new Storyboard();
DoubleAnimation animationX = CreateDoubleAnimation(element,
fromX, toX, new PropertyPath(Canvas.LeftProperty));
DoubleAnimation animationY = CreateDoubleAnimation(element,
fromY, toY, new PropertyPath(Canvas.TopProperty));
storyboard.Children.Add(animationX);
storyboard.Children.Add(animationY);
storyboard.Begin();
}
public static DoubleAnimation CreateDoubleAnimation(UIElement element,
double from, double to, PropertyPath propertyToAnimate)
{
DoubleAnimation animation = new DoubleAnimation();
Storyboard.SetTarget(animation, element);
Storyboard.SetTargetProperty(animation, propertyToAnimate);
animation.From = from;
animation.To = to;
animation.Duration = TimeSpan.FromSeconds(3);
return animation;
}
public void DrawBox()
{
BoxControl newBox = new BoxControl();
playArea.Children.Add(newBox);
Canvas.SetTop(newBox, random.Next(0, 419));
Canvas.SetLeft(newBox, random.Next(0, 792));
}
これは何のフレームワークとは?統一?タイトルやタグを更新すると、より知識のある人が連動します。 – akatakritos
It's .NET、updated – Tripper
あなたは、あなたの蜂とあなたの箱の位置を知る必要があります(そのためのCanvas.GetLeft、Canvas.GetTopメソッドとその寸法)。次に、ハチが通過したかどうかを確認するのは簡単な数学です。すべてのボックスでこれを行う必要があります(このplayArea.children.OfType()のようなそれらのコレクションを得ることができます)。しかし、実際に作業しているコードを提供しない限り、手助けするのは難しい –
Omilis