java创建了一个简单的游戏引擎
我的第一场比赛我在路上,所有的设计和那些东西都完成了,只需左编码。 我已经在万维网上成功地观看了一些教程,其中包括关于图形以及如何在其中成功创建线程同步的信息就像现在我有一个SurfaceView类和一个Thread类。thread类使用这个构造函数从我的SurfaceView类接收游戏引擎。 线程类构造函数中的简单代码:
public Thread(SurfaceHolder localsurfaceHolder,
Context context,
Handler handler,
SurfacefView localEngine) {
surfaceHolder = localsurfaceHolder;
this.handler = handler;
this.context = context;
engine = localEngine;
}
从我的SurfaceView类中的surfaceCreated方法:
thread = new GameThread(getHolder(), context, new Handler(), this);
还有我的代码,当创建曲面时,它将开始触发线程
现在来看真正的交易。很快,我想要一个完全与视图分离的游戏引擎。问题是;如何做到这一点?GameEngine类构造函数应该是什么样子?我应该把绘图/计算方法放在哪里?游戏引擎是什么
现在我的GameEngine类看起来像:
package com.myname.mygame;
public class GameEngine {
//If im right, a constructor for the engine should be placed here
//How and which parameters shall I change and send with from the view
}
提前谢谢
# 1 楼答案
一种常见的模式是有一个facade类,它为视图提供方法。这将是UI的主要控制类,因此任何更新模型状态的命令都要通过这个类。由于您通常只需要一个实例,所以这里的单例可能很有用
然后,控制类还会将对象从核心传递回用户界面,用户界面可以通过getter方法访问。我不是说你必须这样做,这只是一种松散耦合的方式
计算运动、碰撞、人工智能和我在模型中输入的东西。这取决于你画的东西。为了更大的可移植性和凝聚力,我通常会把这些东西放在视图中
玩得开心