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

Project1

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

[讨论] 【请教】BitmapArray?(我自重我只是好奇看了下tilemap)

[复制链接]

Lv2.观梦者

梦石
0
星屑
762
在线时间
1270 小时
注册时间
2011-2-14
帖子
5589
跳转到指定楼层
1
发表于 2012-3-3 19:49:38 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 R-零 于 2012-3-3 20:06 编辑

  1. seg001:1000FB50 ; =============== S U B R O U T I N E =======================================
  2. seg001:1000FB50
  3. seg001:1000FB50
  4. seg001:1000FB50 sub_1000FB50    proc near               ; CODE XREF: sub_10009F40+120p
  5. seg001:1000FB50                 cmp     ds:dword_1017B4E4, 0
  6. seg001:1000FB57                 jnz     locret_1000FDC6
  7. seg001:1000FB5D                 mov     eax, ds:dword_101BE238
  8. seg001:1000FB62                 push    eax
  9. seg001:1000FB63                 push    offset aTilemap ; "Tilemap"
  10. seg001:1000FB68                 call    sub_10020810
  11. seg001:1000FB6D                 push    offset loc_1000FAE0
  12. seg001:1000FB72                 push    eax
  13. seg001:1000FB73                 mov     ds:dword_1017B4E4, eax
  14. seg001:1000FB78                 call    sub_10027310
  15. seg001:1000FB7D                 mov     ecx, ds:dword_1017B4E4
  16. seg001:1000FB83                 push    0
  17. seg001:1000FB85                 push    offset loc_10008FB0
  18. seg001:1000FB8A                 push    offset aClone   ; "clone"
  19. seg001:1000FB8F                 push    ecx
  20. seg001:1000FB90                 call    sub_10021070
  21. seg001:1000FB95                 mov     edx, ds:dword_1017B4E4
  22. seg001:1000FB9B                 push    0
  23. seg001:1000FB9D                 push    offset loc_10008FD0
  24. seg001:1000FBA2                 push    offset aDup     ; "dup"
  25. seg001:1000FBA7                 push    edx
  26. seg001:1000FBA8                 call    sub_10021070
  27. seg001:1000FBAD                 mov     eax, ds:dword_1017B4E4
  28. seg001:1000FBB2                 push    0FFFFFFFFh
  29. seg001:1000FBB4                 push    offset loc_1000F0D0
  30. seg001:1000FBB9                 push    offset aInitialize ; "initialize"
  31. seg001:1000FBBE                 push    eax
  32. seg001:1000FBBF                 call    sub_10021070
  33. seg001:1000FBC4                 mov     ecx, ds:dword_1017B4E4
  34. seg001:1000FBCA                 add     esp, 40h
  35. seg001:1000FBCD                 push    0
  36. seg001:1000FBCF                 push    offset loc_100113F0
  37. seg001:1000FBD4                 push    offset aDispose ; "dispose"
  38. seg001:1000FBD9                 push    ecx
  39. seg001:1000FBDA                 call    sub_10021070
  40. seg001:1000FBDF                 mov     edx, ds:dword_1017B4E4
  41. seg001:1000FBE5                 push    0
  42. seg001:1000FBE7                 push    offset loc_10011420
  43. seg001:1000FBEC                 push    offset aDisposed? ; "disposed?"
  44. seg001:1000FBF1                 push    edx
  45. seg001:1000FBF2                 call    sub_10021070
  46. seg001:1000FBF7                 mov     eax, ds:dword_1017B4E4
  47. seg001:1000FBFC                 push    0
  48. seg001:1000FBFE                 push    offset loc_1000F1F0
  49. seg001:1000FC03                 push    offset aUpdate  ; "update"
  50. seg001:1000FC08                 push    eax
  51. seg001:1000FC09                 call    sub_10021070
  52. seg001:1000FC0E                 mov     ecx, ds:dword_1017B4E4
  53. seg001:1000FC14                 push    0
  54. seg001:1000FC16                 push    offset loc_1000F230
  55. seg001:1000FC1B                 push    offset aViewport ; "viewport"
  56. seg001:1000FC20                 push    ecx
  57. seg001:1000FC21                 call    sub_10021070
  58. seg001:1000FC26                 mov     edx, ds:dword_1017B4E4
  59. seg001:1000FC2C                 add     esp, 40h
  60. seg001:1000FC2F                 push    1
  61. seg001:1000FC31                 push    offset sub_1000F270
  62. seg001:1000FC36                 push    offset aViewport_0 ; "viewport="
  63. seg001:1000FC3B                 push    edx
  64. seg001:1000FC3C                 call    sub_10021070
  65. seg001:1000FC41                 mov     eax, ds:dword_1017B4E4
  66. seg001:1000FC46                 push    0
  67. seg001:1000FC48                 push    offset loc_1000F320
  68. seg001:1000FC4D                 push    offset aBitmaps ; "bitmaps"
  69. seg001:1000FC52                 push    eax
  70. seg001:1000FC53                 call    sub_10021070
  71. seg001:1000FC58                 mov     ecx, ds:dword_1017B4E4
  72. seg001:1000FC5E                 push    0
  73. seg001:1000FC60                 push    offset loc_1000F500
  74. seg001:1000FC65                 push    offset aMap_data ; "map_data"
  75. seg001:1000FC6A                 push    ecx
  76. seg001:1000FC6B                 call    sub_10021070
  77. seg001:1000FC70                 mov     edx, ds:dword_1017B4E4
  78. seg001:1000FC76                 push    1
  79. seg001:1000FC78                 push    offset sub_1000F540
  80. seg001:1000FC7D                 push    offset aMap_data_0 ; "map_data="
  81. seg001:1000FC82                 push    edx
  82. seg001:1000FC83                 call    sub_10021070
  83. seg001:1000FC88                 mov     eax, ds:dword_1017B4E4
  84. seg001:1000FC8D                 add     esp, 40h
  85. seg001:1000FC90                 push    0
  86. seg001:1000FC92                 push    offset loc_1000F5D0
  87. seg001:1000FC97                 push    offset aFlash_data ; "flash_data"
  88. seg001:1000FC9C                 push    eax
  89. seg001:1000FC9D                 call    sub_10021070
  90. seg001:1000FCA2                 mov     ecx, ds:dword_1017B4E4
  91. seg001:1000FCA8                 push    1
  92. seg001:1000FCAA                 push    offset sub_1000F610
  93. seg001:1000FCAF                 push    offset aFlash_data_0 ; "flash_data="
  94. seg001:1000FCB4                 push    ecx
  95. seg001:1000FCB5                 call    sub_10021070
  96. seg001:1000FCBA                 mov     edx, ds:dword_1017B4E4
  97. seg001:1000FCC0                 push    0
  98. seg001:1000FCC2                 push    offset loc_1000F6D0
  99. seg001:1000FCC7                 push    offset aPassages ; "passages"
  100. seg001:1000FCCC                 push    edx
  101. seg001:1000FCCD                 call    sub_10021070
  102. seg001:1000FCD2                 mov     eax, ds:dword_1017B4E4
  103. seg001:1000FCD7                 push    1
  104. seg001:1000FCD9                 push    offset sub_1000F710
  105. seg001:1000FCDE                 push    offset aPassages_0 ; "passages="
  106. seg001:1000FCE3                 push    eax
  107. seg001:1000FCE4                 call    sub_10021070
  108. seg001:1000FCE9                 mov     ecx, ds:dword_1017B4E4
  109. seg001:1000FCEF                 add     esp, 40h
  110. seg001:1000FCF2                 push    0
  111. seg001:1000FCF4                 push    offset sub_1000F790
  112. seg001:1000FCF9                 push    offset aVisible ; "visible"
  113. seg001:1000FCFE                 push    ecx
  114. seg001:1000FCFF                 call    sub_10021070
  115. seg001:1000FD04                 mov     edx, ds:dword_1017B4E4
  116. seg001:1000FD0A                 push    1
  117. seg001:1000FD0C                 push    offset loc_1000F7D0
  118. seg001:1000FD11                 push    offset aVisible_0 ; "visible="
  119. seg001:1000FD16                 push    edx
  120. seg001:1000FD17                 call    sub_10021070
  121. seg001:1000FD1C                 mov     eax, ds:dword_1017B4E4
  122. seg001:1000FD21                 push    0
  123. seg001:1000FD23                 push    offset loc_1000F830
  124. seg001:1000FD28                 push    offset aOx_0    ; "ox"
  125. seg001:1000FD2D                 push    eax
  126. seg001:1000FD2E                 call    sub_10021070
  127. seg001:1000FD33                 mov     ecx, ds:dword_1017B4E4
  128. seg001:1000FD39                 push    1
  129. seg001:1000FD3B                 push    offset loc_1000F870
  130. seg001:1000FD40                 push    offset aOx      ; "ox="
  131. seg001:1000FD45                 push    ecx
  132. seg001:1000FD46                 call    sub_10021070
  133. seg001:1000FD4B                 mov     edx, ds:dword_1017B4E4
  134. seg001:1000FD51                 add     esp, 40h
  135. seg001:1000FD54                 push    0
  136. seg001:1000FD56                 push    offset loc_1000F8D0
  137. seg001:1000FD5B                 push    offset aOy_0    ; "oy"
  138. seg001:1000FD60                 push    edx
  139. seg001:1000FD61                 call    sub_10021070
  140. seg001:1000FD66                 mov     eax, ds:dword_1017B4E4
  141. seg001:1000FD6B                 push    1
  142. seg001:1000FD6D                 push    offset loc_1000F910
  143. seg001:1000FD72                 push    offset aOy      ; "oy="
  144. seg001:1000FD77                 push    eax
  145. seg001:1000FD78                 call    sub_10021070
  146. seg001:1000FD7D                 mov     ecx, ds:dword_101BE238
  147. seg001:1000FD83                 mov     edx, ds:dword_1017B4E4
  148. seg001:1000FD89                 push    ecx
  149. seg001:1000FD8A                 push    offset aBitmaparray ; "BitmapArray"
  150. seg001:1000FD8F                 push    edx
  151. seg001:1000FD90                 call    sub_10020910
  152. seg001:1000FD95                 push    1
  153. seg001:1000FD97                 push    offset sub_1000F340
  154. seg001:1000FD9C                 push    offset asc_101049C4 ; "[]"
  155. seg001:1000FDA1                 push    eax
  156. seg001:1000FDA2                 mov     ds:dword_1017B4E0, eax
  157. seg001:1000FDA7                 call    sub_10021070
  158. seg001:1000FDAC                 mov     eax, ds:dword_1017B4E0
  159. seg001:1000FDB1                 push    2
  160. seg001:1000FDB3                 push    offset sub_1000F3F0
  161. seg001:1000FDB8                 push    offset asc_101049C0 ; "[]="
  162. seg001:1000FDBD                 push    eax
  163. seg001:1000FDBE                 call    sub_10021070
  164. seg001:1000FDC3                 add     esp, 4Ch
复制代码
用ida拆了RGSS202E。dll。然后看到了这些东西,里面的BitmapArray貌似是Tilemap的内部类

于是顺带问下这个东西到底谁能解释下

特别是下面的,就是Array的什么么
PHP 代码复制
  1. seg001:1000FD8A                 push    offset aBitmaparray ; "BitmapArray"
  2. seg001:1000FD8F                 push    edx
  3. seg001:1000FD90                 call    sub_10020910
  4. seg001:1000FD95                 push    1
  5. seg001:1000FD97                 push    offset sub_1000F340
  6. seg001:1000FD9C                 push    offset asc_101049C4 ; "[]"
  7. seg001:1000FDA1                 push    eax
  8. seg001:1000FDA2                 mov     ds:dword_1017B4E0, eax
  9. seg001:1000FDA7                 call    sub_10021070
  10. seg001:1000FDAC                 mov     eax, ds:dword_1017B4E0
  11. seg001:1000FDB1                 push    2
  12. seg001:1000FDB3                 push    offset sub_1000F3F0
  13. seg001:1000FDB8                 push    offset asc_101049C0 ; "[]="
  14. seg001:1000FDBD                 push    eax
  15. seg001:1000FDBE                 call    sub_10021070
  16. seg001:1000FDC3                 add     esp, 4Ch

点评

看起来sub_10021070似乎是绑定C\C++里的东西到Ruby解释器里的函数…问题是这有什么用捏~  发表于 2012-3-4 12:49

Lv2.观梦者

梦石
0
星屑
762
在线时间
1270 小时
注册时间
2011-2-14
帖子
5589
5
 楼主| 发表于 2012-3-4 08:43:38 | 只看该作者
fux2 发表于 2012-3-3 23:44
这么一段没看出什么,只有声明两个该类的方法。

那我待会吧call的内容附上来吧


‘‘──R-零于2012-3-4 08:43补充以下内容

那我待会吧call的内容附上来吧
’’
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41160
在线时间
7573 小时
注册时间
2009-7-6
帖子
13499

开拓者贵宾

4
发表于 2012-3-3 23:44:36 | 只看该作者
这么一段没看出什么,只有声明两个该类的方法。
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
762
在线时间
1270 小时
注册时间
2011-2-14
帖子
5589
3
 楼主| 发表于 2012-3-3 21:05:32 | 只看该作者
yangff 发表于 2012-3-3 20:55
你可以跟进去看看
a = Tilemap::BitmapArray.new
= =|

a = Tilemap.new
p a.bitmaps => Tilemap::BitmapArray

ms是一个实例,但是直接当作Array好像不行,用ida拆出来的东西里面的方法名都是sub_???????,都差不多认不出来的
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

2
发表于 2012-3-3 20:55:44 | 只看该作者
你可以跟进去看看
a = Tilemap::BitmapArray.new
= =|

点评

不能当成Array使用= = 1  发表于 2012-3-3 21:00
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-10-2 14:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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