0
我正在使用WPF來製作一個使用XAML和C#的小型物理引擎。兩種不同對象類型的多維數組
我想繪製矩形到窗體上,並基於鼠標輸入應用基本的物理運動。在該程序中,有一個Shape類,其中包含重力值,鼠標速度和質量等屬性。
我需要將這些屬性值應用到矩形圖上,所以我創建了Shape類的對象來調用這些屬性。但是,我將有多個矩形,所以我需要一個方法來識別矩形,以便我可以將這些重力/速度/質量值應用到每個單獨的矩形。我一直在尋找方法來做到這一點,Union of two array of two different Objects,除了我不確定這是我在找什麼。
下面是包含物理值(重力,速度,質量)
namespace Shapes
{
public class Shapee
{
int _count;
Physics_Engine.MainWindow _parent;
public Shapee(int clickcount, Physics_Engine.MainWindow parent)
{
_parent = parent;
_count = clickcount;
}
public double Mass { get; set; }
public double Velocity { get; set; }
}
}
以我主類的類,我已經從這個類創建的對象的陣列,並且還繪製矩形。
public partial class MainWindow : Window
{
public double boxvalue;
public const int MAXSHAPES = 20;
Shapee[,] shapes = new Shapee[MAXSHAPES, MAXSHAPES];
public int addshapeclickcount = 0;
//Start
private void Button_Click(object sender, RoutedEventArgs e)
{
addshapeclickcount++;
Debug.WriteLine(addshapeclickcount);
if (addshapeclickcount < 20 && addshapeclickcount != 20)
{
//Draw rectangle
var rect = new System.Windows.Shapes.Rectangle()
{
Stroke = new SolidColorBrush(Colors.Black),
Fill = new SolidColorBrush(Colors.Black),
StrokeThickness = 2,
Width = 20,
Height = 20
};
Canvas.SetLeft(rect, 2);
Canvas.SetTop(rect, 6);
Draw.Children.Add(rect);
//Create shape object
var shape = new Shapee(addshapeclickcount, this);
shapes[addshapeclickcount] = shape; //Create new shape every button click
}
else
{
MessageBox.Show(" Max Shapes Reached");
}
}
}
如何將能夠將這些這兩個對象在一個數組鏈接,這樣我可以分配式樣質量和速度值,以每個矩形對象的座標值?
您需要簡化您的示例,並使其完成(請參閱[mcve]),以適合堆棧溢出的方式呈現您的問題。事實上,你的問題太廣泛了......有太多不同的方法來解釋你的關注,而不用回答它。這就是說,看起來你做的「全部錯誤」。你的整個物理模擬應該獨立於用戶界面,這樣所有的交互都可以用你的用戶定義的對象完成。然後,您應該在描述視覺方面的用戶定義對象中包含屬性,並將這些屬性綁定到XAML。 –