> TODO: description
npm install @threeatom/gameframework-mvc-coremvc-core> TODO: 游戏开发mvc模式
``
export class GameStartCommand extends Command {
public static readonly GameStartEvent: string = "GameStart";
OnExecute(): void {
console.log("GameStartCommand executed");
this.getModel
// 通知游戏开始
this.sendNotification(GameStartCommand.GameStartEvent);
}
}
export class GameEndCommand extends Command {
public static readonly GameEndEvent: string = "GameEnd";
OnExecute(): void {
console.log("GameEndCommand executed");
this.getModel
// 通知游戏结束
this.sendNotification(GameEndCommand.GameEndEvent);
}
}
`
`Game start with data ${data}
export class GameController extends Controller {
initialize(): void {
this.registerEvent('GameStart', (data) => {
console.log();Game end with data ${data}
this.runGame();
});
this.registerEvent('GameEnd', (data) => {
console.log();
});
}
runGame(){
for(let i = 0; i < 10; i++){
this.getModel
console.log(我得分: ${i});
}
//发送命令 游戏结束
this.executeCommand(new GameEndCommand());
};
}
`
`
export class GameModel extends Model {
getClassName(): string {
return GameModel.CLASS_NAME;
}
static CLASS_NAME: string="GameModel";
Count = new BindableProperty
initialize(): void {
this.Count.setValueWithoutEvent(0);
this.Count.register(new ValueChangedObserver((value) => {
console.log(Count value changed to ${value});
}));
}
}
`
`渲染分数: ${score}
export class GameView extends View {
initialize() {
this.getModel
this.showScore(property.Value);
}));
}
showScore(score: number) {
console.log();`
}
}
`
const mvc = MvcFramework.getInstance();
const gameController: GameController = new GameController();
mvc.registerModel(GameModel);
const gameView:GameView=new GameView(gameController);
mvc.executeCommand(new GameStartCommand());
const model = mvc.getModel
``