Project1
标题:
好奇,VA那些Windows类不属于Ruby,为什么是用Ruby语法
[打印本页]
作者:
掘窖人
时间:
2021-11-18 14:01
标题:
好奇,VA那些Windows类不属于Ruby,为什么是用Ruby语法
Bitmap
Color
Font
Plane
Rect
Sprite
Table
Tilemap
Tone
Viewport
Window
比如这些类,我看过之前的贴子说为什么要手动释放的时候,有人说它们本身不属于Ruby,但奇怪为什么它们的语法是Ruby的语法?(所以当初为什么看了7篇Ruby教程都不会画窗...)
作者:
enghao_lim
时间:
2021-11-18 14:58
他们说的应该是核心非ruby类,但是这些的确是ruby类。严格来说是非ruby类被包装成ruby类来调用了。至于你为什么学不会画窗,应该不是ruby也不是窗的问题……
作者:
真·可乐
时间:
2021-11-18 15:02
懂的都懂
作者:
百里_飞柳
时间:
2021-11-18 16:16
这些,就是被封装成dll文件的东西啊
原本都是c或c艹写的,然后放出了ruby可以调用的接口
脚本编辑器里的rgss就是基于这些实现了一套jrpg框架
作者:
fux2
时间:
2021-11-18 17:26
ruby本身都是c实现的,在底层他们之间并没有什么障碍,我讲完了
作者:
guoxiaomi
时间:
2021-11-18 19:05
本帖最后由 guoxiaomi 于 2021-11-19 13:57 编辑
为什么要手动释放?这些东西只要“存在”就会一直在显示屏上显示内容。而做游戏对画面显示什么东西应该要有完全的掌控。
但实际上你不手动释放也没关系,直接在不想显示的时候把visible设置为false,等待GC就行。
想了想,万一rm的内部实现是把initialize绑定了new/malloc,dispose绑定了C里的delete/free,那不主动释放是有可能导致内存泄漏。不过那也是rm写的不好……我用c++写的
那个
就会在GC时触发析构函数,随便你怎么做都不会内存泄漏,那这种时候主动dispose和改成visible=false等待GC就没什么差别了
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1