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

Project1

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

[已经解决] 写脚本遇到的问题..想请教各位前辈...

[复制链接]

Lv4.逐梦者

梦石
0
星屑
8498
在线时间
775 小时
注册时间
2017-11-10
帖子
1231
跳转到指定楼层
1
发表于 2018-3-20 20:06:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
涉及了一帖多问的情况,这点很抱歉,但问题都很简短就不重复发帖提问了。
1.窗口下标志消除的方法。
当文字量大于窗口的大小时就会出现的标志。
像这样:

请问该怎么处理这个问题。
前提,不改变窗口的大小以及位图的大小。
修改
  1. self.windowskin = RPG::Cache.windowskin("nil")
复制代码

这方法也不行。
Rmxp内置方法的Window方法脚本没有在F1写到。

2.update播放Bgm会卡顿的问题。
如下:
def update
  1. @wait += 1
  2. if @wait == 180
  3. Audio.bgm_play("Audio/BGM/www",80,100)
  4. end
复制代码

@Wait == 180时播放BGM会卡顿一下,请问这个该怎么优化?

3.窗口ox,oy坐标该怎么设置为小数或者浮点数。
如下:
  1. def move_contents
  2.     @story_window.oy += Move_speed
  3. end
复制代码

Move_speed 取值为0.5时就没有效果,请问该怎么样让小数也能够支持?

评分

参与人数 1+1 收起 理由
白魔导师宝儿 + 1

查看全部评分

一个只会简单事件的Rm新人,脚本完全不懂。只求做个简单的游戏完成自己的游戏之梦而已。
第一个游戏已经完成,等待各素材的完成和测试。

Lv3.寻梦者

梦石
0
星屑
3039
在线时间
1052 小时
注册时间
2011-8-16
帖子
242
2
发表于 2018-3-20 21:02:23 | 只看该作者
本帖最后由 失落的乐章 于 2018-3-20 21:40 编辑

  • 那个箭头的意思是下方有无法显示的内容。所以一般作为窗口 contents 的位图要比窗口小一圈(通常小 32 像素)。如果不能更改位图的尺寸,那么直接修改 Windowskin,把白色箭头去掉就行了。
  • 音乐播放延迟可能是 MIDI 初始化导致的,如果你并未使用 MIDI 文件,那我就不知道是什么原因了。
  • 1像素是窗口坐标的最小单位,我觉得要让窗口移动半像素在理论上是不可行的。

点评

Window 这种内部类不是用 Ruby 编写的,无法通过脚本修改  发表于 2018-3-20 22:21
谢谢前辈,修改素材的方式是可行的。但不知可否在脚本里入手解决呢?  发表于 2018-3-20 21:51
是我弄错了,我以为那个是暂停标记……回答已经修改了。  发表于 2018-3-20 21:43
感谢前辈的回答,貌似第一问题的方法没有效果。  发表于 2018-3-20 21:29

评分

参与人数 2星屑 +50 +1 收起 理由
RyanBern + 50 认可答案
文雅夕露 + 1

查看全部评分

回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
33387
在线时间
6551 小时
注册时间
2012-5-26
帖子
3178

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

3
发表于 2018-3-20 21:22:20 | 只看该作者
3
不支持小数吧,又不是精灵的缩放
我一般是改成每几帧更新1像素,而不是每一帧更新0.几像素

点评

如果你会黑科技就有办法···但是弄个浮点数的坐标没有必要(除非你的游戏有技能风骚到要拿窗口大小来计算伤害···)  发表于 2018-3-20 22:55
它内部会自动取整一次,你外头怎么操作都没办法……  发表于 2018-3-20 22:20
将坐标数值转化为to_f也不行吗?那还是老实的取模刷新好了...  发表于 2018-3-20 21:28

评分

参与人数 1+1 收起 理由
文雅夕露 + 1 感谢

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9275
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

4
发表于 2018-3-20 22:53:54 | 只看该作者
如果你的内容的长宽超过了窗口的长宽,就会有那样的箭头提醒玩家后面还有东西

点评

还有个方法我不确定可不可以,因为我手头现在没xp···这个箭头应该是皮肤素材上自带的,如果是那个素材自带,你就去掉它  发表于 2018-3-20 22:58
那就3个办法:1、把你的内容变小。2、把你的窗口变大。3、如果你的内容是图片,那就截取,是文字,那就把字号改小  发表于 2018-3-20 22:57
问题是我不要那箭头...  发表于 2018-3-20 22:54
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37759
在线时间
5388 小时
注册时间
2006-11-10
帖子
6545
5
发表于 2018-3-21 00:16:24 | 只看该作者
本帖最后由 灯笼菜刀王 于 2018-3-21 00:21 编辑

1, 直接窗口皮肤上删掉右上角方框里的那4个小箭头就好了, 如果你其他地方要用到这个小箭头,那就做两份皮肤,一份有小标一份没有. 然后
self.windowskin = RPG::Cache.windowskin(skin + "2") 临时替换不需要小标的窗口皮肤.

2, 试试定义个新函数 def paly  然后在这个函数里塞上 Audio.bgm_play("Audio/BGM/www",80,100) ,然后UPDEAT里引用这个函数看看.

3, 0.5 要怎么画出半个像素啊囧, 如果觉得移动太快, 那就加上个等待嘛, if @Wait % 2 ==0,  这样原本一祯一像素的移动就变成2祯一像素了, 从视觉上看就慢了一倍咯.(不过XP有个问题, 勾选平滑模式后, 实际游戏每秒的帧数会比正常多,所以嘛............)

点评

谢谢前辈的回答,第2问的方法还是没有解决该问题,其他的方法我已经会了,还是谢谢啦。  发表于 2018-3-21 20:14

评分

参与人数 2星屑 +50 +1 收起 理由
RyanBern + 50 认可答案
文雅夕露 + 1 感谢

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9335
在线时间
2745 小时
注册时间
2008-9-5
帖子
3540

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

6
发表于 2018-3-21 14:34:49 | 只看该作者
大概有个比较蠢的办法解决问题3,
定义一个变量记录初始的oy值,之后操作这个变量做小数运算,
再将这个变量取整代入oy…………
  1.   def move_contents
  2.     @story_window_oy ||= @story_window.oy
  3.     @story_window_oy += Move_speed
  4.     @story_window.oy = @story_window_oy.to_i
  5.   end
复制代码

当然,上边这个做法不太妥当,
得在初始@story_window.oy的时候同时初始@story_window_oy才行,
而不要在这里仅赋值一次。

点评

原来是这样啊,谢谢前辈的回答。  发表于 2018-3-21 20:14

评分

参与人数 2星屑 +50 +1 收起 理由
RyanBern + 50 认可答案
文雅夕露 + 1 感谢

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9622
在线时间
3220 小时
注册时间
2011-3-24
帖子
739

开拓者

7
发表于 2018-3-21 18:25:56 | 只看该作者
RUBY 代码复制下载
  1. # By Lanza Schneider
  2. class Window_Base
  3.   def ox
  4.     @fake_ox = super if @fake_ox.nil?
  5.     return @fake_ox
  6.   end
  7.   def oy
  8.     @fake_oy = super if @fake_oy.nil?
  9.     return @fake_oy
  10.   end
  11.   def ox=(value)
  12.     super value.to_i
  13.     @fake_ox = value
  14.   end
  15.   def oy=(value)
  16.     super value.to_i
  17.     @fake_oy = value
  18.   end
  19. end


你可以试一试这个,也许可以解决你ox oy小数的问题

点评

还可以这么操作啊,的确可行,谢谢前辈。  发表于 2018-3-21 20:15

评分

参与人数 3星屑 +50 +2 收起 理由
RyanBern + 50 认可答案
0nepeop1e + 1 建议用#round
文雅夕露 + 1 精品文章

查看全部评分

>>→Lanza Games 2020←<<
Lanza Schneider
浪子心,孤星梦永远流浪……
~不会放弃,我的精力永远充沛~
>>>>>Lanza Adventure<<<<<
>>>>>Lanza的新年派对!<<<<<
>>>>>Lanza的口袋心脏病!<<<<<
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-20 16:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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