设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3721|回复: 16
打印 上一主题 下一主题

[讨论] 抛砖,使用C做RM的扩展(并非C#那个贴的原理或者普通DLL)

[复制链接]
头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

跳转到指定楼层
1
发表于 2013-11-21 20:06:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Lv1.梦旅人

梦石
0
星屑
50
在线时间
739 小时
注册时间
2013-4-15
帖子
1756
2
发表于 2013-11-21 20:22:32 | 只看该作者
·······
于是乎完全看不懂···
代码盲一个······
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3846
在线时间
1966 小时
注册时间
2013-1-3
帖子
9536
3
发表于 2013-11-21 21:17:57 | 只看该作者
一直想用C#做出一个游戏设置工具,但是没思路

点评

编辑器类似物吗?  发表于 2013-11-21 21:57
《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

4
发表于 2013-11-21 22:04:32 | 只看该作者
能不能令RM支持C++编译?

点评

c++是编译型语言,ruby是解释型语言,RM支持C++无疑就是用dll  发表于 2013-11-23 19:53
但是。。RM的Ruby系统摆在那里,如果不补充更多细节,只是支持C++编译的话,就跟普通的写DLL然后用Win32API或者DL调用以及优化程度没区别。  发表于 2013-11-22 01:27
这个通法发过帖子了貌似。。求特化的要求  发表于 2013-11-21 22:05
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3588
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
5
发表于 2013-11-21 23:14:22 | 只看该作者
把字符串变成函数主体? 那不是比单纯的RUBY里写还要慢 存在个字符串解析的事情吧 那个C函数只是单纯的返回个字符串 没做神马有意义的事情啊 感觉要用C的话要利用它的编译 否则还是直接RUBY里写划算

点评

实际上C做的是一个极晚的动态链接工作,甚至比DLL的符号和具体函数的绑定还晚,从这个角度,生成的Ruby代码只是包装C运算,和一些@sprite.update之类  发表于 2013-11-22 00:35
返回的这个字符串可以初始化,可以包括def self.update end,也就是这个对象自己的update重定义(这样就没有每一帧调用C函数了),见我下面的例子3  发表于 2013-11-22 00:33
不过LX说的加密倒是可行性很大(大雾)  发表于 2013-11-22 00:00
问题就是 最后函数的事情都是RUBY在做吧 C没做任何事情 RUBY先把那些从C里取得的字符串解析成一个函数 即使字符串不变 第一次解析还是少不了的  发表于 2013-11-21 23:58
好比说C中有个函数的地址是addr=0x12345678,生成的Ruby代码里面可以直接写'API.new(0x12345678).call("Hello")',这个不用像Win32API那样导出  发表于 2013-11-21 23:46
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
10295
在线时间
4443 小时
注册时间
2005-10-22
帖子
6994

开拓者贵宾

6
发表于 2013-11-21 23:47:53 | 只看该作者
于是偶们提前破解了一种潜在的加密手段(大雾)
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3588
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
7
发表于 2013-11-21 23:51:04 | 只看该作者
LS点醒了我 一直在考虑 解析字符串做无用功 不如直接写在F11里 其实 这用作脚本加密确实很不错

点评

这就像def xxx; aaa; end的aaa只能使用实例的aaa方法,但lambda{aaa}的aaa可以有更丰富的含义一样  发表于 2013-11-22 01:22
写在F11里面的脚本和写在C里面的脚本的区别是,F11的脚本至多只能知道C的DLL愿意导出的符号,但写在C里面的脚本可以知道DLL的所有细节  发表于 2013-11-22 01:21
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

8
 楼主| 发表于 2013-11-22 00:07:02 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
88
在线时间
1906 小时
注册时间
2012-10-5
帖子
1991

开拓者

9
发表于 2013-11-22 00:15:37 | 只看该作者
用C#,C++ 做RM插件是个不错的想法。。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

10
 楼主| 发表于 2013-11-22 00:18:01 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-29 16:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表