Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 2D图形,比较对象,面向对象_Android_Oop_Graphics_Drawing - Fatal编程技术网

Android 2D图形,比较对象,面向对象

Android 2D图形,比较对象,面向对象,android,oop,graphics,drawing,Android,Oop,Graphics,Drawing,我想开发一个Android 2D游戏,有一个充满矩形和圆形的游戏场。 矩形和圆形将显示由数字组成的对象,这些数字必须在某个点进行比较 此外,所有对象(矩形和圆形)都需要可拖动。我想将一个对象拖动到另一个位置,然后将周围对象的值与拖动对象中的值进行比较 到目前为止,我拥有一个抽象基类和两个子类,它们表示矩形和圆形中显示的对象 此外,基类扩展了视图,因此我可以为两个子类中的每一个子类重写onDraw方法。现在,我画一个矩形的一个对象,和一个圆形的另一个对象,此外,我画的文本包含每个对象的数字 我的问

我想开发一个Android 2D游戏,有一个充满矩形和圆形的游戏场。 矩形和圆形将显示由数字组成的对象,这些数字必须在某个点进行比较

此外,所有对象(矩形和圆形)都需要可拖动。我想将一个对象拖动到另一个位置,然后将周围对象的值与拖动对象中的值进行比较

到目前为止,我拥有一个抽象基类和两个子类,它们表示矩形和圆形中显示的对象

此外,基类扩展了视图,因此我可以为两个子类中的每一个子类重写onDraw方法。现在,我画一个矩形的一个对象,和一个圆形的另一个对象,此外,我画的文本包含每个对象的数字

我的问题是,在开发这样的应用程序时,我是走在正确的道路上,还是有更好的方法


非常感谢您。

关于您的类层次结构,我想说您走的是正确的道路。这是假设基类已经实现了拖动机制。此外,基类还应定义比较两个对象的方法,以便子类也具有该方法。对象比较的实际逻辑位置取决于算法。您可以让父类比较对象,但只有在比较时只需要基类和实际对象类型的成员时,这才有效。如果需要特定于不同子类的任何内容,则需要重写每个子类中的比较方法

您还需要一种查找相邻对象的机制。这可以通过对所有游戏对象的列表进行简单的坐标检查(如果您可以自由拖动)来完成,或者通过包含对所有相邻对象的引用的基类来完成,只要拖动一个片段(如果它更像一个拼图游戏),该基类就会更新

然而,我强烈建议对任何复杂的游戏使用OpenGL。不幸的是,我只有一个很好的德语教程,但我相信也有很多英语教程


如果您有任何更详细的问题,请告诉我。

事实上,我是奥地利人,所以任何德语教程都可以!我当前将所有对象存储在二维数组中,从基类的类型开始。这会使邻居之间的比较容易得多。好吧,那就来吧