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

Project1

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

[已经解决] [自制地图名显示]关于显示出的问题,求帮忙解决!

[复制链接]

Lv1.梦旅人

梦石
0
星屑
48
在线时间
560 小时
注册时间
2012-12-29
帖子
1075
跳转到指定楼层
1
发表于 2013-1-17 13:13:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x

以上为脚本的截图

我是这么设定的

a = 1 #第一张地图的a赋值
if a = 1

描绘地图名“MAP001”

if a = 20 #第二张地图设定的a赋值

描绘地图名“MAP002”

end
end
end

然后捏传送的时候,在传送前  加入   a = 20!就这样用变量来显示地图名

但是一进去游戏,就会直接显示MAP002,先前的MAP001就被覆盖了!

如图:

MOBA以及回合制的一个创新,点这里查看游戏新思路

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
2
发表于 2013-1-17 18:54:14 | 只看该作者
1.楼主的脚本有问题,“如果a等于2”应为“if a==2”
2.设置地图的名称只需获得当前地图的id即可,具体处理时可以将Game_Map类的map_id属性公有化,即在最开始加一句
  1. attr_reader   :map_id
复制代码
之后在访问时只需通过$game_map.map_id即可获得。

点评

嗯。。。先谢谢了!  发表于 2013-1-17 19:00
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
560 小时
注册时间
2012-12-29
帖子
1075
3
 楼主| 发表于 2013-1-17 19:22:20 | 只看该作者
tommay 发表于 2013-1-17 18:54
1.楼主的脚本有问题,“如果a等于2”应为“if a==2”
2.设置地图的名称只需获得当前地图的id即可,具体处理 ...

要怎么显示地图名呢?我已经在Game_Map开头添加了那一句,然后在脚本draw_text......内添上您给的那句,然后就出状况了!

直接在脚本里定义A赋值也没用,传送的时候用  a = 2  地图名也改不了,直接就那样!

顺便问一下,论坛的个签要怎么改啊?我改了之后又变成空白了!
MOBA以及回合制的一个创新,点这里查看游戏新思路
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
4
发表于 2013-1-17 19:40:49 | 只看该作者
我爱吴悦淇 发表于 2013-1-17 19:22
要怎么显示地图名呢?我已经在Game_Map开头添加了那一句,然后在脚本draw_text......内添上您给的那句, ...


虽然是老帖子,但是大概的思路我还是说一下。
1.你需要定义一个变量来显示地图名,我这里为了偷懒,不另外定义变量,只是利用地图的id。(详见后文)
2.你需要有一个描绘地图名的“容器”,可以用Sprite,也可以用Window,这里使用Window。
3.你需要定义一个Window,当然不是从零开始,这里有现成的基类Window_Base让你继承。当然,写代码也可以偷懒,找一个类似功能的简单Window,例如Window_Status,先照抄,然后改。在refresh方法中,加入了一个分歧,根据不同的地图id显示不同的信息。
4.你需要在你的地图场景中显示出这个Window,于是你需要增添一些代码先初始化,再释放(并不需要update)。
5.大功告成!

当然,上面说起来和做起来都好像很简单,但是,这一切都是基于你对ruby的基本语法还有默认脚本的结构有一个大致的了解之后,才会很容易做到。所以,先看默认脚本,再试着改,最后就能自己写了。加油!

详见脚本。
  1. class Game_Map
  2.   attr_reader :map_id
  3. end

  4. class Window_MapName < Window_Base
  5.   def initialize
  6.     super(0, 0, 160, 64)
  7.     self.contents = Bitmap.new(width - 32, height - 32)
  8.     self.opacity = 0
  9.     refresh
  10.   end
  11.   def refresh
  12.     self.contents.clear
  13.     self.contents.font.color = Color.new(0,0,200)
  14.     case $game_map.map_id
  15.     when 1: map_name = "地图1"
  16.     when 2: map_name = "地图2"
  17.     when 3: map_name = "新地图"
  18.     end
  19.     self.contents.draw_text(0,0,160-32,32,map_name,1)
  20.   end
  21. end

  22. class Scene_Map
  23.   alias old_main main
  24.   def main
  25.     @map_name_window = Window_MapName.new
  26.     @map_name_window.x = 640 - @map_name_window.width
  27.     @map_name_window.y = 480 - @map_name_window.height
  28.     old_main
  29.     @map_name_window.dispose
  30.   end
  31. end
复制代码

点评

谢谢了!  发表于 2013-1-17 19:43

评分

参与人数 1梦石 +1 收起 理由
hcm + 1 认可答案

查看全部评分

http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-21 20:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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