查看: 2969|回复: 9

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

[复制链接]
梦石
0
星屑
50
在线时间
182 小时
注册时间
2012-2-11
回帖
218
发表于 2012-5-30 18:56:16 | 显示全部楼层 |阅读模式

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

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

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

无标题.png
未命名.jpg
第二步: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

[pre lang="ruby" line="1"]class Tilemap_Debug < Sprite

  def initialize(viewport, tilemap)
    super(viewport)

    @tilemap = tilemap
   
    self.bitmap= Bitmap.new(@tilemap.map_data.xsize * 32,
                            @tilemap.map_data.ysize * 32)
    self.z=800
   
    refresh
  end
  
  def dispose
    self.bitmap.dispose if self.bitmap!=nil
    super
  end
  
  def passable_color
    return Color.new(64, 192, 64, 64)  # green
  end
  
  def non_passable_color
    return Color.new(255, 72, 0, 64) # red
  end
  
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    # background mask
    self.bitmap.fill_rect(0, 0, self.bitmap.width, self.bitmap.height,
                          Color.new(0, 0, 0, 32))
                          
    for x in 0...@tilemap.map_data.xsize
      for y in 0...@tilemap.map_data.ysize
        draw_mapinfo(x, y)
      end
    end
  end  
  
  def draw_mapinfo(x, y)
    # 通行性
    self.bitmap.fill_rect(Rect.new(x*32, y*32, 32, 32),
         $game_map.passable?(x, y, 0) ? passable_color : non_passable_color)
   
    # 地图标记。选最大的那个显示
    self.bitmap.draw_text(Rect.new(x*32, y*32, 32, 32),
                          $game_map.terrain_tag(x, y).to_s, 1)
   
  end
end

class Spriteset_Map
  alias viktor_td_update update
  def update
    if @td==nil
      @td=Tilemap_Debug.new(@viewport1, @tilemap)
    end
    @td.ox=$game_map.display_x / 4
    @td.oy=$game_map.display_y / 4
    @td.update
    viktor_td_update
  end
  
  alias viktor_td_dispose dispose
  def dispose
    @td.dispose
    viktor_td_dispose
  end

end[/pre]
梦石
0
星屑
388
在线时间
245 小时
注册时间
2011-11-20
回帖
295
发表于 2012-5-30 19:03:04 | 显示全部楼层
哟,罗曼好好加油~~
这里是个新人。
回复

使用道具 举报

梦石
0
星屑
49
在线时间
412 小时
注册时间
2011-12-10
回帖
897
发表于 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
回复

使用道具 举报

梦石
0
星屑
752
在线时间
800 小时
注册时间
2011-10-20
回帖
2257

开拓者

发表于 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]
回复

使用道具 举报

梦石
0
星屑
239
在线时间
309 小时
注册时间
2010-12-11
回帖
1424
发表于 2012-5-30 22:45:20 | 显示全部楼层
虽然表示完全看不懂,但感觉很厉害~~

点评

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

使用道具 举报

梦石
0
星屑
60
在线时间
79 小时
注册时间
2007-2-11
回帖
135
发表于 2012-5-31 00:18:15 | 显示全部楼层
这东西是做什么用的啊?我完全不懂。。

点评

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

使用道具 举报

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

点评

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

使用道具 举报

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
回帖
3011
发表于 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方面的问题欢迎发电邮到engshun@1ppl.me咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

傻♂逼

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

烫烫烫开拓者

发表于 2012-5-31 16:23:16 | 显示全部楼层
求折腾VA= =

点评

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

使用道具 举报

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
回帖
3011
发表于 2012-6-1 08:32:34 | 显示全部楼层
pokestarter的tilemap功能已经超出了你的想象,
能把整个地图缩小还能把几个地图接到一块儿。
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到engshun@1ppl.me咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部