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

Project1

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

[讨论] 开坑折腾Tilemap......Plane类重制完成

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
182 小时
注册时间
2012-2-11
帖子
233
跳转到指定楼层
1
发表于 2012-5-30 18:56:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 viktor 于 2012-6-2 01:44 编辑



第二步:Plane类重写 显示可以扩大分辨率的雾图形和全景图
http://rpg.blue/thread-234515-1-1.html


第1步: 在地图上显示通行性和地图标识 的调试用脚本

参考:(传送门已完成)
伪3D脚本(W3D)http://rpg.blue/thread-214379-1-1.html
Kissy的Tilemap http://rpg.blue/forum.php?mod=viewthread&tid=104661
另一种Tilemap http://rpg.blue/thread-234309-1-1.html
@yangff的测试: http://rpg.blue/forum.php?mod=viewthread&tid=177092
Plane类:http://rpg.blue/thread-208355-1-1.html

RUBY 代码复制
  1. class Tilemap_Debug < Sprite
  2.  
  3.   def initialize(viewport, tilemap)
  4.     super(viewport)
  5.  
  6.     @tilemap = tilemap
  7.  
  8.     self.bitmap= Bitmap.new(@tilemap.map_data.xsize * 32,
  9.                             @tilemap.map_data.ysize * 32)
  10.     self.z=800
  11.  
  12.     refresh
  13.   end
  14.  
  15.   def dispose
  16.     self.bitmap.dispose if self.bitmap!=nil
  17.     super
  18.   end
  19.  
  20.   def passable_color
  21.     return Color.new(64, 192, 64, 64)  # green
  22.   end
  23.  
  24.   def non_passable_color
  25.     return Color.new(255, 72, 0, 64) # red
  26.   end
  27.  
  28.   #--------------------------------------------------------------------------
  29.   # * Refresh
  30.   #--------------------------------------------------------------------------
  31.   def refresh
  32.     # background mask
  33.     self.bitmap.fill_rect(0, 0, self.bitmap.width, self.bitmap.height,
  34.                           Color.new(0, 0, 0, 32))
  35.  
  36.     for x in [email]0...@tilemap.map_data.xsize[/email]
  37.       for y in [email]0...@tilemap.map_data.ysize[/email]
  38.         draw_mapinfo(x, y)
  39.       end
  40.     end
  41.   end  
  42.  
  43.   def draw_mapinfo(x, y)
  44.     # 通行性
  45.     self.bitmap.fill_rect(Rect.new(x*32, y*32, 32, 32),
  46.          $game_map.passable?(x, y, 0) ? passable_color : non_passable_color)
  47.  
  48.     # 地图标记。选最大的那个显示
  49.     self.bitmap.draw_text(Rect.new(x*32, y*32, 32, 32),
  50.                           $game_map.terrain_tag(x, y).to_s, 1)
  51.  
  52.   end
  53. end
  54.  
  55. class Spriteset_Map
  56.   alias viktor_td_update update
  57.   def update
  58.     if @td==nil
  59.       @td=Tilemap_Debug.new(@viewport1, @tilemap)
  60.     end
  61.     @td.ox=$game_map.display_x / 4
  62.     @td.oy=$game_map.display_y / 4
  63.     @td.update
  64.     viktor_td_update
  65.   end
  66.  
  67.   alias viktor_td_dispose dispose
  68.   def dispose
  69.     @td.dispose
  70.     viktor_td_dispose
  71.   end
  72.  
  73. end

Lv2.观梦者

梦石
0
星屑
388
在线时间
245 小时
注册时间
2011-11-20
帖子
324
2
发表于 2012-5-30 19:03:04 | 只看该作者
哟,罗曼好好加油~~
这里是个新人。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
412 小时
注册时间
2011-12-10
帖子
925
3
发表于 2012-5-30 19:17:57 | 只看该作者
就是那个完全3D化的?

点评

伪3D脚本 http://bbs.66rpg.com/thread-214379-1-1.html 还有一个只有视频的 http://bbs.66rpg.com/forum.php?mod=viewthread&tid=208447 这些都需要操作Tilemap啊啊  发表于 2012-5-30 21:19
古代素材爱好群Q249853011
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
681
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

4
发表于 2012-5-30 22:14:49 | 只看该作者
偶想要内部伪代码= =!


‘‘──end55rpg于2012-5-30 22:31补充以下内容:

测试完毕。。。。
使用后fps最多54我的机子
不使用最高83= =
脚本还需要优化哦,,,而且地图还是测试最小的。。。。。。。
那个脚本你发的最好别用ruby/代码框,有许多【EMIAL]乱码。。。。
’’

点评

我只是把地图标记预渲染了一张图片,然后在地图上复叠显示而已。只计算了一次。你看我脚本里面update根本没调用Refresh 直接可用的Tilemap类代码见③  发表于 2012-5-30 23:51
明天去破机器上测一下。在宿舍机器上跑都是60帧跑满 垂直同步的情况下 Ruby代码框没有问题。乱码是因为代码是utf-8编码的。试着直接复制到RM里面  发表于 2012-5-30 23:48
我试试 早上自己测的时候没出现这种情况的说  发表于 2012-5-30 23:22
欢迎点此进入我的egames.wink.ws,有RMQQ堂等

[url=http://rpg.blue/thread-317273-1-1.html]短篇八-赶选

http://yun.baidu.com/share/link?shareid=2158225779&uk=169642147&third=0


历险ARPG赢回你的疆域新的战斗模式?…………点击这里:[宋乱贼狂 for QQ堂]
http://rpg.blue/group-368-1.html
programing ....?
[url=http://rpg.blue/thrd-234658-1-1.html]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
239
在线时间
309 小时
注册时间
2010-12-11
帖子
1434
5
发表于 2012-5-30 22:45:20 | 只看该作者
虽然表示完全看不懂,但感觉很厉害~~

点评

不觉得图2有种莫名的波普感么?  发表于 2012-5-30 23:53
诶~跟我一样。。。  发表于 2012-5-30 23:42
NPC也是有名字的,我叫\c[2]\n[9]\c[0]....
(额..我不介意你们叫我小木的..)
快毕业了,最近忙里忙外的闲着
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
79 小时
注册时间
2007-2-11
帖子
140
6
发表于 2012-5-31 00:18:15 | 只看该作者
这东西是做什么用的啊?我完全不懂。。

点评

[在地图上显示通行性和地图标识 的调试用脚本]  发表于 2012-5-31 00:20
回复 支持 反对

使用道具 举报

乌有君
7
乌有君  发表于 2012-5-31 03:18:33
再做个游戏内动态智能编辑器就更石器里对应的功能一样了(大雾)

点评

好主意!这样就是Mine RPG Craft了!  发表于 2012-5-31 09:33
回复 支持 反对

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
51
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
8
发表于 2012-5-31 08:01:27 | 只看该作者
这东西老章写过了

点评

poke……starter?我看了下好像是口袋妖怪的什么东西。那个wiki里面倒是有底层的一些C源代码。看来我果然没有到您所说的【真要折腾】的程度啊。。。  发表于 2012-6-1 08:19
如果真要折腾tilemap建议参考pokestarter  发表于 2012-5-31 10:45
原来Fux2大牛已经写过了。 所以咱这个只能发到水区当坑,自己玩啊  发表于 2012-5-31 10:40
其实也不算写过,他只写了一个测试同行bug的脚本,应该没有什么帮助http://bbs.66rpg.com/thread-187850-1-1.html  发表于 2012-5-31 10:32
很多前辈都折腾过Tilemap啦。我只是第n+1个 求原帖链接。谢谢!  发表于 2012-5-31 09:34
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

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

烫烫烫开拓者

9
发表于 2012-5-31 16:23:16 | 只看该作者
求折腾VA= =

点评

我木有晴兰兰那种效率……只能暂时先弄XP了  发表于 2012-5-31 17:04
回复 支持 反对

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
51
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
10
发表于 2012-6-1 08:32:34 | 只看该作者
pokestarter的tilemap功能已经超出了你的想象,
能把整个地图缩小还能把几个地图接到一块儿。
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-2 19:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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