
书: https://pan.baidu.com/s/1o53U8DJYBlzPKes4X47C8Q?pwd=ymj8
笔记如下:
- “OOP的核心是‘万物皆对象’,类(Class)是蓝图,对象(Object)是具体实例。”
- “封装(Encapsulation)通过私有属性(
self.__private_var
)和方法隐藏内部细节,仅暴露接口。” - “继承(Inheritance)实现代码复用,
class Player(Character):
表示玩家类继承自角色基类。” - “多态(Polymorphism)允许子类重写父类方法,调用时自动匹配具体实现。”
- “
super().__init__()
调用父类构造方法,确保基类属性正确初始化。” - “组合优于继承:
self.weapon = Sword()
将武器对象作为属性,而非继承武器类。” - “游戏循环(Game Loop)三要素:处理输入→更新状态→渲染画面,
pygame.time.Clock()
控制帧率。” - “Pygame的
Sprite
类管理游戏角色,Group
类批量更新和绘制精灵。” - “事件驱动编程:
pygame.event.get()
捕获键盘/鼠标事件,event.type == QUIT
处理退出。” - “Tkinter的
Canvas
组件绘制图形,create_rectangle()
和create_text()
构建GUI元素。” - “
pack()
、grid()
和place()
是Tkinter的三大布局管理器,grid()
最灵活。” - “观察者模式(Observer)实现GUI事件响应:按钮绑定
command=
回调函数。” - “游戏碰撞检测:
pygame.sprite.collide_rect()
检查矩形碰撞,mask
处理像素级精度。” - “状态模式(State Pattern)管理游戏场景:
self.state = MenuState()
动态切换行为。” - “
@property
装饰器将方法转为属性,如player.health
自动触发血量校验。” - “单例模式(Singleton)确保全局唯一实例,如游戏配置管理器
ConfigManager()
。” - “
pickle
模块序列化游戏存档,保存对象状态到文件。” - “动画原理:逐帧更新精灵的
rect
位置,image
属性切换贴图。” - “MVC架构分离游戏逻辑(Model)、显示(View)和控制(Controller),提升可维护性。”
- “OOP设计心法:‘先画UML类图,再写代码;优先组合,谨慎继承’。”