1
スネークがマウスに追随する単純なスネークゲームを作成しようとしています。私のヘビ体はpolyline
でなければなりません。私の問題は、マウスをあまりにも速く動かすか遅すぎると、ヘビの体が長くなったり短くなったりすることです。私は、マウス座標で新しいポイントを追加しているという事実のために起こっていることを知っています。問題を引き起こす行を接続しています。しかし、私はよりスマートな解決策は考えられません。マウスカーソルの後ろにあるWPFスネークゲーム
public partial class MainWindow : Window
{
Point mousePos;
Polyline polyline;
public MainWindow()
{
InitializeComponent();
polyline = new Polyline();
polyline.Stroke = Brushes.Black;
polyline.StrokeThickness = 4;
var points = new PointCollection();
for (int i = 0; i < 50; i++)
{
points.Add(new Point(i, i));
}
polyline.Points = points;
canvas.Children.Add(polyline);
}
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
mousePos = e.GetPosition(canvas);
polyline.Points.Add(mousePos);
for (int i = 0; i < polyline.Points.Count - 1; i++)
{
polyline.Points[i] = new Point(polyline.Points[i + 1].X, polyline.Points[i + 1].Y);
}
polyline.Points.RemoveAt(0);
}
}
これは私の方法よりも優れています。 –