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

Project1

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

[RMXP发布] [情人节??] Roost v1.8 测试工程为XP特化

[复制链接]
头像被屏蔽

Lv2.观梦者 (禁止发言)

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

开拓者

跳转到指定楼层
1
发表于 2012-2-14 04:00:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Lv1.梦旅人

梦石
0
星屑
50
在线时间
24 小时
注册时间
2012-2-14
帖子
9
2
发表于 2012-2-14 04:40:40 | 只看该作者
本帖最后由 花晴兰 于 2012-2-14 06:43 编辑

http://sourceforge.net/projects/roost/
晴兰的帐号出现了一点问题,仅仅是为了负责,对Roost v1.8.rar进行hash,

MD5:A7FCA99303212CCF47D94A3F2EE915D5
SHA1:DC9C0C0A15523A1FBA43775F05F089C16CF2C060

1经验仅仅是统计用,也可以直接联系我来索取一份Roost v1.8
另外@凌童鞋关于
http://rpg.blue/forum.php?mod=vi ... 6orderby%3Dlastpost
提到的仔细介绍,一并放在这个升级版里面了,

Roost是晴兰的一个原创或修改的脚本库,旨在RGSS惯例脚本语法上,尽量上改进脚本性能和增强脚本功能,
尤其是密集像素计算或者其他外部操作,工程中有详细测试和范例代码。

Roost根据协议选择外部组件,使脚本尽量能够被商业或者非商业应用,如果您的游戏使用了Roost作为开发基础之一,而且有可能被商业化,小女子将不胜荣幸,但是请注意阅读Roost和Roost关联组件的版权说明,Roost本身含有的非RPG Maker的dll是LGPL协议的,可选组件tcc是LGPL协议,OpenCV是BSD协议,如果需要修改代码重新发布,请仔细阅读协议文字,以避免任何可能的纠纷。

(快吐槽这种文风,话是这么说的,自己都认真得受不了了{:nm_9:} )


原创脚本说明:

Roost.CFactory: Roost.libTCC已经改为Roost.CFactory以tcc作为C后端,而RGSS作为语法前端的一个工具,
出于tcc协议的尊重,是不能用tcc名字做宣传的,故已修改。


也就是说,写的是RGSS,生成的是C的代码并可以运行。它的前端是Ruby代码或者自定义程序代码(@某叔),推荐用Roost.PP兼容的预处理器进行处理。

Roost.PP是使C语法向Ruby语法过渡的预处理器模板类,出于灵活性,尚需实现具体的预处理器,也就是说,描述的是如何把写的代码转换成C。Roost.CUtils.CPP1是一个具体的预处理代码,是一个低级的预处理器,如export{add}表示导出add符号,而不需要写麻烦的__declspec(dllexport) __stdcall add,实现见工程。

Roost.Static是一个Cache模块,对应实现了类型Roost::Static::StaticClass。
有些素材,希望或者只能在游戏运行时生成,而且只生成一次,如游戏地图的小地图,或者游戏地图为基础的战斗背景,或者行走图或者战斗图为基础的战斗卡片。
或者为生成这种素材加速的DLL的源代码,可以放在Roost.Static里面,使得这种操作只进行一次。

Roost.DynamicRoost.Dynamic.DynClass 使DLL的使用和Ruby无缝接触,尽量简化操作,至少简化了.call和参数说明,对于浮点类型和其他类型有待完善,下面是测试代码中的一段

RUBY 代码复制
  1. class Wnd; end;
  2.   SW_SHOW = 5
  3.   SW_HIDE = 0
  4.   xx=Roost::Dynamic::DynClass.new('user32',
  5.     {:__ctor => "CreateWindowExA",
  6.      :__dtor => "DestroyWindow"
  7.     })
  8.   xx.attach(Wnd);
  9.   #上面为定义
  10.   r = Wnd.new
  11.   r.dyncreate 0, "Button", "Hello", 0x10cf0000, 0, 0, 640, 480, 0, 0, 0, 0
  12.   r.ShowWindow  SW_SHOW
  13.   r.MessageBoxA "Hello",Roost::CharConv.u2s("从子窗口获得的信息", 128), 16
  14.   r.ShowWindow SW_HIDE
  15.   r.dynuninit

而对应的C代码为:
C 代码复制
  1. #include <windows.h>
  2. //链接user32.dll的代码
  3. //上面为定义
  4. HWND h = CreateWindowExA(0, "Button", "Hello", 0x10cf00000, 0, 0, 640, 480, 0, 0, 0, 0);
  5. ShowWindow(h, SW_SHOW);
  6. MessageBox(h, "Hello", "...", 16);
  7. ShowWindow(h, SW_HIDE);
  8. DestroyWindow(h);

和C代码是很相似的,如果您使用MFC,会发现另一种相似性,这里在下由于对MFC不大熟悉,所以不敢多言。

Roost::CUtils是一组实用工具对象,在下会慢慢完善
其中RBMP.op2是一个试验中的位图变换函数:
用法:首先将rbmp关联到Bitmap类
RUBY 代码复制
  1. xx=DynClass.new('rbmp.rax', {
  2.       :__ctor=>:getBitmap,
  3.       :__dtor=>:releaseBitmap,
  4.   })
  5.   xx.attach(Bitmap)


假设(RMXP)(a,b是两个位图, 进行操作的如果是两个位图,暂时必须有相同的宽和高)
RUBY 代码复制
  1. a,b =RPG::Cache.battler('001-Fighter01', 0),   RPG::Cache.battler('001-Fighter01', 0)
  2. #就可以
  3. a.dyninit;   b.dyninit
  4. a.op2(b, "ab+a=", -1)     #逆波兰式 a=a+b(仅仅是抛砖引玉
  5. =begin
  6.  或者
  7. a.op2(0, "aHa=", -1)                     # a=水平翻转(a)
  8. a.op2(b, "aaHb&+a=", -1)            # a=a+水平翻转(a) 位与 b
  9. =end
  10. b.dynuninit; a.dynuninit


op2有很多限制,只能是相同的宽和高,只有1个临时图片,所以说"a~b~"是会覆盖的,使用了逆波兰式,
  (逆波兰式参考http://rpg.blue/thread-200922-1-1.html @DeathKing)
有限的操作:
  a b r          参数1入栈 参数2入栈 上次的结果入栈
  H V F ~     分别是弹出栈顶一个元素 进行水平翻转,竖直翻转,H+V的翻转,取反,结果入栈
  + - & | ^   分别是弹出栈顶二个元素 进行像素加,像素减,像素与,像素或,像素异或,结果入栈,ab-的结果是a-b
  =              栈顶二个元素的复制,ab=的意思是b=a,请不要弄反了……

欢迎同好批评指正
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
105
在线时间
5250 小时
注册时间
2011-10-7
帖子
1885

开拓者贵宾

3
发表于 2012-2-14 07:35:03 | 只看该作者
单纯来支持一下的路过~
(当纯水处理吧……单纯想支持一下……)

评分

参与人数 1星屑 -100 收起 理由
Kimu -100 凌你这算是捣乱了orz

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
24 小时
注册时间
2012-2-14
帖子
9
4
发表于 2012-2-14 07:52:35 | 只看该作者
本帖最后由 花晴兰 于 2012-2-14 08:29 编辑

各位抱歉,其实是主帐号出问题了……
注册了马甲,结果简介楼出问题被吞了……
坐等修复,而且工程里面也有较详尽的注释和用法
暂时只好上街卖花了……

现在简介好了…… 感谢版主大大 @fux2

点评

先去水区玩会吧,今天版聊发经验的哦~  发表于 2012-2-14 07:57
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
182 小时
注册时间
2012-2-11
帖子
233
5
发表于 2012-2-14 09:56:34 | 只看该作者
虽不明,淡觉触……
收藏了~

点评

我错了……  发表于 2012-2-15 09:14

评分

参与人数 2星屑 +10 收起 理由
orzfly + 20 塞糖
Kimu -10 勿水

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 21:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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