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

Project1

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

[已经解决] 如何在游戏中更改部分图块

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
68 小时
注册时间
2009-3-7
帖子
109
跳转到指定楼层
1
发表于 2011-8-12 16:23:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 denis466 于 2011-8-12 16:24 编辑

简单点说,就像泡泡堂一样,炸到哪个图块,哪个图块就消失,如果用事件做会很卡,所以希望能用图块解决,比如地形标志==2就能被炸什么的。

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39832
在线时间
7490 小时
注册时间
2009-7-6
帖子
13485

开拓者贵宾

2
发表于 2011-8-12 17:23:24 | 只看该作者
1,参考一下魔塔范例,挖墙的工具实现方法.
2,修改并重新载入地图,不过TileMap这种内部类改的话有点蛋疼.
3,自制地图,这种最方便.
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
68 小时
注册时间
2009-3-7
帖子
109
3
 楼主| 发表于 2011-8-12 17:25:21 | 只看该作者
刚看了下,但是看不懂,能不能具体些,还有图块的ID怎么看
猫猫鱼的游戏
                                点此进入测试版发布帖
回复

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
309
在线时间
1194 小时
注册时间
2010-12-18
帖子
3928

贵宾

4
发表于 2011-8-12 17:26:24 | 只看该作者
寻找一个用 Ruby 模拟的 Tilemap 并且修改它。
(最近老有人问 Tilemap 的样子……
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
93 小时
注册时间
2008-5-16
帖子
745
5
发表于 2011-8-12 20:44:15 | 只看该作者
本帖最后由 ★_茄孓 于 2011-8-12 20:45 编辑

这个如果不是永久保存的话可以用
$game_map.data[x,y,z] = ID 修改
比如修改这个地图【0,0】坐标第1层的元件为385
$game_map.data[0,0,0] = 385 就可以了
自动元件 0~383
基本原件 >383
类似举例
$game_map.data[10,9,1] = 392
$game_map.data[1,5,2] = 402
Z取值0-2
x,y取值自己看地图坐标


★_茄孓于2011-8-12 20:46补充以下内容:
回4楼前辈,我已经找到国外的一个tilemap了,不错,不过还是有点漏洞··

点评

这样做是不够的,地图画面依然不会改变。  发表于 2011-8-12 20:53
您才是前辈啊……看我的注册时间就知道了……  发表于 2011-8-12 20:48
回复

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
309
在线时间
1194 小时
注册时间
2010-12-18
帖子
3928

贵宾

6
发表于 2011-8-12 20:55:17 | 只看该作者
本帖最后由 忧雪の伤 于 2011-8-12 21:12 编辑
★_茄孓 发表于 2011-8-12 20:44
这个如果不是永久保存的话可以用
$game_map.data[x,y,z] = ID 修改
比如修改这个地图【0,0】坐标第1层的元 ...
  1. if $scene.is_a? Scene_Map
  2.   $scene.instance_eval do
  3.     @spriteset.instance_eval do
  4.       @tilemap = nil
  5.       GC.start
  6.       @tilemap = Tilemap.new @viewport1
  7.       @tilemap.tileset = RPG::Cache.tileset $game_map.tileset_name
  8.       6.times do |time|
  9.         autotile_name = $game_map.autotile_names[time]
  10.         @tilemap.autotiles[time] = RPG::Cache.autotile autotile_name
  11.       end
  12.       @tilemap.map_data = $game_map.data
  13.       @tilemap.priorities = $game_map.priorities
  14.     end
  15.   end
  16. end
复制代码

点评

多建立一个精灵完全不值一提,重写无非是增加新人的理解难度罢了.  发表于 2011-8-12 21:30
你确定这样通行大丈夫?  发表于 2011-8-12 21:16
回复

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39832
在线时间
7490 小时
注册时间
2009-7-6
帖子
13485

开拓者贵宾

7
发表于 2011-8-12 21:09:05 | 只看该作者
本帖最后由 fux2 于 2011-8-12 21:11 编辑
  1. $game_map.data[0,0,1] = 396
  2. $scene = Scene_Map.new
复制代码
当然,这种方法只适用于少量使用

点评

不可以……  发表于 2011-8-12 21:39
第二行改成$game_map.need_refresh = true可以么0.0  发表于 2011-8-12 21:34
改了$game_map.data好像就改了通行?……这是我看了Game_Map之后得出的结论……  发表于 2011-8-12 21:23
好吧,真心没想通行,于是乎再刷新通行(依然不推荐直接重新构建  发表于 2011-8-12 21:18
看我的……  发表于 2011-8-12 21:12
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

Lv3.寻梦者

可以吃的头衔

梦石
0
星屑
1000
在线时间
423 小时
注册时间
2010-10-17
帖子
602
8
发表于 2011-8-12 21:21:00 | 只看该作者
忧雪の伤 发表于 2011-8-12 20:55

你的做法跟重建已经相差无几了,重新绘图,重新构造通行,那么,重建做了什么?

点评

还有Scene_Map的Window。  发表于 2011-8-12 21:27
角色精灵。  发表于 2011-8-12 21:22
……
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
68 小时
注册时间
2009-3-7
帖子
109
9
 楼主| 发表于 2011-8-13 12:00:30 | 只看该作者
本帖最后由 denis466 于 2011-8-13 12:02 编辑
★_茄孓 发表于 2011-8-12 20:44
这个如果不是永久保存的话可以用
$game_map.data[x,y,z] = ID 修改
比如修改这个地图【0,0】坐标第1层的元 ...


我试了下这方法,可行的么,目前没发现什么弊端。游戏里要求场景转移后就变为原来的图。

点评

但是成功了啊,只是不知道有什么弊端  发表于 2011-8-13 12:46
你确定只用那句有刷新?  发表于 2011-8-13 12:20
猫猫鱼的游戏
                                点此进入测试版发布帖
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
125
在线时间
0 小时
注册时间
2011-8-13
帖子
1
10
发表于 2011-8-13 12:07:02 | 只看该作者
我还是有些看不懂啊
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-7 08:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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