天气姐姐 发表于 2024-12-16 21:59

还是用游戏引擎吧,这些事都帮你做好了,你自己填数据就行

—— 来自 鹅球 v3.1.88.3

魔人揪揪 发表于 2024-12-17 09:35

40L说法很对
面向对象主要是为了能够
1.把功能模块之间解耦拆分
为什么要解耦拆分?为了把工作同时分配给更多人做
2.方便阅读
一个新人来公司 如果都是面向过程语言 就算有注释 他想加一种怪物 可能也要阅读原文很久 因为谁也不知道这一系列操作是是干什么的
但是面向对象读起来就很快

至于有人推荐你用游戏引擎 我的看法是你需要衡量你的主要目标是啥以及自己的情况
1.你有时间有兴趣学习c++和编程 那就自己造自己的方轮子 只有自己踩过坑以后 再去看最佳实践 印象更深刻 不然你直接去看别人实现好的 其一是不知道为啥他们这么做 其二甚至会忽略一些设计特别好或者做了特殊处理的地方 (有些事情只有经历过才会知道痛 比如几个月以后看着自己写的一个几百行的函数不知道啥意思)
2.你的目的是快速做出一个游戏 这些编程细节对于你的职业生涯没用 那就换个成熟的游戏引擎ue unity也好找工作、找教程、找社区资源

小止 发表于 2024-12-17 10:59

raimouse 发表于 2024-12-15 08:49
我用的flet框架
本来就是包装成函数返回str或者None了啊
但是后续操作我是其他按钮事件触发的不是返回str ...

其实有个比较“怪异”的做法,获取到返回值之后创建一个新函数绑定到按钮事件上,写的比较抽象的情况下可以没有任何变量修改

这个范式人称fp

raimouse 发表于 2024-12-17 12:29

小止 发表于 2024-12-17 10:59
其实有个比较“怪异”的做法,获取到返回值之后创建一个新函数绑定到按钮事件上,写的比较抽象的情况下可 ...

感觉懂了又完全没理解
这个返回值还是得传给函数吧
直接传参数进函数的话不会直接触发执行么?
把返回值构建成函数内变量?
还是说修改事件触发器的返回值来传这个值

小野賢章 发表于 2024-12-17 12:52

游戏里怪物有几种,每种有几只?一般来说你这种需求是最适合面向对象的
如果只有 5 种怪物,每种 1 只,并且没有任何共性,那确实可以用全局变量。
如果觉得 getter 和 setter 啰嗦,完全可以用 struct,或者 class 里成员都设置为 public 的,没有任何问题。

小止 发表于 2024-12-17 13:46

raimouse 发表于 2024-12-17 12:29
感觉懂了又完全没理解
这个返回值还是得传给函数吧
直接传参数进函数的话不会直接触发执行么?


构建临时函数,将返回值包装在函数内传递

henvelleng 发表于 2024-12-17 13:52

getter,setter这种,很多语言里已经用语法糖省略到很简单的语法形式了,省到只需要在成员后面加个{set,get}就行,类外调用的时候和直接读写成员变量的语法是一模一样的,调用者可能根本不知道是直接访问成员还是调的set get,语法繁琐这方面其实都不是问题,更何况开放给外部访问的成员和内部使用的成员一般都不是同一个

—— 来自 鹅球 v3.1.88.3

Auhah 发表于 2024-12-17 14:00

看项目规模,面向 XX 的最终目的就是让代码写起来更容易,读起来更容易,bug 更少。。。

简单功能随便写写就行,上规模以后没有对项目进行一定的抽象,开发维护直接干满头包。。。

论坛助手,iPhone

raimouse 发表于 2024-12-17 14:56

小止 发表于 2024-12-17 13:46
构建临时函数,将返回值包装在函数内传递

即是类似装饰器那种模式么?
函数内部再定义一个临时函数,包装返回值
然后返回这个函数并设置为按钮事件这样?

小止 发表于 2024-12-17 15:03

raimouse 发表于 2024-12-17 14:56
即是类似装饰器那种模式么?
函数内部再定义一个临时函数,包装返回值
然后返回这个函数并设置为按钮事件 ...

对的,差不多就是这个思路
页: 1 [2]
查看完整版本: 求助:面向对象 与 面向过程 及全局变量