/TypeScript_Etris_OOP

使用TS和面向对象实现俄罗斯方块小游戏

Primary LanguageTypeScript

单一职能原则

每个类只做一件事

开闭原则

系统中的类,应该对扩展开放,对修改关闭

基于以上 2 个原则,使用数据-界面分离模式。

运行

npm install
npm run dev

传统面向对象语言,书写类的属性时

  1. 所有属性全部私有化
  2. 封装方法供外部调用

在 TS 中设计类时,要保证类中属性要绝对控制(即:存取都受到严格控制)

开发小方块类

它能完成显示,但是它不知道怎么显示,何时显示

显示类

  1. 它能完成在哪里显示
  2. 根据传入的参数,处理显示

小方块形状类

知道以下 3 点,便可确定一个形状

  1. 确定形状的中心点相对坐标,记为(0,0)
  2. 更具中心点坐标,算出其他相对坐标,如(-1,0)便是在中心点左边位置
  3. 形状中心点绝对坐标,即真实坐标

完成形状的配置

"./config/square_group.ts"

完成移动类,使用静态方法 move()移动

完成旋转方法

使用继承,每个形状的旋转规则不一样,使用继承继承形状类,通过某个特定的形状,重载形状类的旋转方法