其实就一句话:
他们这么做是为的就是照顾到不懂代码,甚至不懂计算机工作原理的人。
在他们看来一个游戏中的物体包括形状,材质其实和他们的血量,魔法值一样都是属于某个物体的属性,它们就是一体的。
并非说哪个对,哪个错。前者更方便维护是以工程角度来看的好处。但后者更方便非专业人员理解是从设计角度出发。
顺便补充一下,我以前自己用SFML库做过一个2D小游戏。出于和题主一样的考虑我定义了一个人物的类只包含逻辑功能,然后他的成员中引用一个sprite实例来实现显示功能。后来拿到老外的论坛上,很多大佬都纠结我“为什么不把sprite继承出来,建立一个人物子类”。显然逻辑和显示不分离是一种很常见的设计方式。