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

Project1

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

[讨论] scene_title的新写法

[复制链接]

Lv1.梦旅人

梦石
0
星屑
48
在线时间
784 小时
注册时间
2013-1-4
帖子
1102
跳转到指定楼层
1
发表于 2015-7-24 22:40:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RUBY 代码复制
  1. class View_Title
  2.   attr_accessor :container
  3.   def initialize(viewprot)
  4.           @viewprot = viewprot
  5.           @background = RGUI::PictureBox.new(0, 0, 544, 480, @viewprot, Cache.background("bg"))
  6.           @background.move(0, 0, -100)
  7.           @button_start = RGUI::SpriteButton.new(100, 200, 30, 80, @viewprot, Cache.system("button1"))
  8.           @button_load = RGUI::SpriteButton.new(100, 240, 30, 80, @viewprot, Cache.system("button2"))
  9.           @button_exit = RGUI::SpriteButton.new(100, 280, 30, 80, @viewprot, Cache.system("button3"))
  10.           hash = {:background => @background, :button_start => @button_start, :button_load => @button_load, :button_exit => @button_exit}
  11.           @container = RGUI::Container.new(hash)
  12.   end
  13.  
  14.   def update
  15.           @container.update
  16.   end
  17.  
  18.   def dispose
  19.           @container.dispose
  20.           @viewprot.dispose
  21.   end
  22.  
  23.   def method_missing(m,*arg,&block)
  24.     return instance_variable_get(m) ? @container[m] : super
  25.   end
  26. end
  27.  
  28. class Scene_Title
  29.  
  30.   def start
  31.           SceneManager.clear
  32.           play_title_music
  33.           @view = View_Title.new(Viewprot.new)
  34.           @view.container[2].set_forbid if DataManager.save_file_exists?
  35.           set_event
  36.           super
  37.   end
  38.  
  39.   def update
  40.     @view.update
  41.     input_update unless scene_changing?
  42.     super
  43.   end
  44.  
  45.   def terminate
  46.           @view.update
  47.           super
  48.   end
  49.  
  50.   def transition_speed
  51.     return 20
  52.   end
  53.  
  54.   def input_update
  55.           if Input.trigger?(DOWN) then
  56.             @view.container.down
  57.           end
  58.           if Input.trigger?(UP) then
  59.             @view.container.up
  60.           end
  61.           if Input.trigger?(C) then
  62.             @view.container.soure
  63.           end
  64.   end
  65.  
  66.   def set_event
  67.           @view.container.button_start.event(:sure){Scene.goto(Scene_Menu)}
  68.     @view.container.button_load.event(:sure){Scene.goto(Scene_Load)}
  69.     @view.container.button_exit.event(:sure){exit}
  70.   end
  71.  
  72.   def play_title_music
  73.     $data_system.title_bgm.play
  74.     RPG::BGS.stop
  75.     RPG::ME.stop
  76.   end
  77.  
  78. end

嗯,就是之前提过的那个基于RGSS的GUI库。最近一直在写,不过白天要上班,还得抽时间搞导师找我做的项目,所以写的极慢(是你丫懒吧・゚( ノд`゚)
在这里打个预告,不出意外的话月底应该能出个测试版【估计bug满满
装完逼就跑,真他妈的刺激( ̄∇ ̄)

评分

参与人数 2星屑 +21 收起 理由
龙和许也 + 18 塞糖
emgame + 3 精品文章

查看全部评分

RM-GUI延期。。。最近被黑心老板压迫T_T
二次元少女的shitake,长着长脸,身高165,蓝色卷双马尾,FCUP,瞳色黑色,病气和御宅属性,是天才少女。

Lv4.逐梦者

水月·镜花

梦石
10
星屑
403
在线时间
1181 小时
注册时间
2005-10-22
帖子
1183

开拓者

2
发表于 2015-7-25 00:25:14 | 只看该作者
沒有滑鼠響應差評。選擇項其實做成一個精靈集更好的,方便添加選項。
既然可移動背景都用了,乾脆做一個特效庫吧

点评

鼠标的话要去创建包围盒,一些事件的响应机制也略微不同。最重要的是我还得去封装dll什么的简直烦。。。所以就没做  发表于 2015-7-25 00:47
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
784 小时
注册时间
2013-1-4
帖子
1102
3
 楼主| 发表于 2015-7-25 00:46:34 | 只看该作者
电子最终龙 发表于 2015-7-24 18:25
沒有滑鼠響應差評。選擇項其實做成一個精靈集更好的,方便添加選項。
既然可移動背景都用了,乾脆 ...

确实,这是一个不支持鼠标的版本【可能后续会做一个支持鼠标的吧
button的内部实现就是封装的精灵,对于选项组这种后面应该会专门封装一个控件出来吧 现在是靠button+container来模拟。
那个图片框基本就是只能做到图片的拉伸和平铺。。。没什么可动的
至于特效库到时有此打算,不过就只能是另一个项目了吧
RM-GUI延期。。。最近被黑心老板压迫T_T
二次元少女的shitake,长着长脸,身高165,蓝色卷双马尾,FCUP,瞳色黑色,病气和御宅属性,是天才少女。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

4
发表于 2015-7-25 01:21:52 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
784 小时
注册时间
2013-1-4
帖子
1102
5
 楼主| 发表于 2015-7-25 02:03:06 | 只看该作者
晴兰 发表于 2015-7-24 19:21
状态机和帧动画呢

百度了一下才明白兰兰说的是什么。。。ORZ
状态机的话。。。这个的封装并不是很完整。。。那个container里有部分实现。这个GUI对于控件的处理就是一个树,每个控件都是叶,如果控件类型是容器则为枝,container提供down和up两个方法来遍历整个控件列表(会自动忽略被禁用的控件)依次调用他们的当前控件的lost_focus和下一个控件的get_focus。容器控件有一个esc的方法用来返回父容器。
至于帧动画。。。这种玩意貌似完全没有的样子

点评

RM里面focus模型的个人感觉是不如selected_object模型……当然focus是因为你完全控制,selected_object是包括了你没有自己处理的对象比如其他的Sprite  发表于 2015-7-25 02:26
RM-GUI延期。。。最近被黑心老板压迫T_T
二次元少女的shitake,长着长脸,身高165,蓝色卷双马尾,FCUP,瞳色黑色,病气和御宅属性,是天才少女。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1347
在线时间
676 小时
注册时间
2009-11-11
帖子
2790
6
发表于 2015-7-25 10:40:16 | 只看该作者
PictureBox是什么东东,我第一次见Y

嘿。嘿。嘿
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-20 04:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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