查看: 2671|回复: 2

[通用发布] 这货绝对不是教程——关于场景中的窗口精灵移动

[复制链接]

小小的百鬼夜行<

梦石
0
星屑
54
在线时间
579 小时
注册时间
2010-7-29
回帖
2593

贵宾

发表于 2011-7-2 15:30:46 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 退屈£无聊 于 2011-7-2 15:32 编辑

适用人群只是想给一些系统性脚本加一点微华丽(华丽你大头)的效果的人
提供思路2                                                                                                                  



方法一:
在一个方法中(方法可自选,基本上是在update里=-=)加入如下语句:
  1. if xxx.x <= xxx
  2. loop do
  3. xxx.x += 2
  4. Graphics.update
  5. break if xxx.x > xxx
  6. end
  7. end
复制代码
嘛。。可能有点难以理解,稍微给个范例好了。
  1. =begin
  2. if @window.x <= 50 # 当@window的X值小于等于50的情况下。这里的x可以换成@window中可以更改的属性中的一个如opacity
  3. loop do                     # 循环
  4. @window.x += 2      # @window的X值+2
  5. Graphics.update        # 画面更新
  6. break if @window.x > 50 # 如果@window的X值大于50就结束循环
  7. end
  8. end
  9. =end
复制代码
这一种方法是比较普遍的方法。不过有一点缺点。在某一个窗口或精灵移动时。其他操作全部中断。



第二种:设置比较麻烦。为了防止误伤某脚本,这里采取重命名的方法做介绍(当然你在实际操作中可以直接写。

  1. class ABC
  2. alias old_ini initialize
  3. def initialize
  4. @begin = 0
  5. old_ini
  6. end
  7. alias old_up update
  8. def update
  9. case @begin
  10. when 0
  11. @window.x += 1
  12. @begin = 1 if @window.x > 50
  13. when 1
  14. @window.opacity -= 10
  15. @begin = 2 if @window.opacity <= 0
  16. end
  17. old_up
  18. end
  19. end
复制代码
这个方法的唯一好处就是,可以让窗口或精灵的变更与其他操作同时进行。但是设置比较烦琐。
大概这里就提供了这么两种方法。希望各位能提供更多的思路,谢谢。
某只PHP/HTML小白鼠→退屈の间


Cause I knew you were trouble when you walked in
So shame is on me now
I flow me to place i ve never been
till you put me down oh
Now Im lying on the cold hard ground
梦石
0
星屑
1547
在线时间
688 小时
注册时间
2009-11-11
回帖
2692
发表于 2011-7-2 15:47:43 | 显示全部楼层
不知道那些正规游戏中的移动效果是不是这么判断,某个精灵是否到达了某个点,没到的话继续移动,看似有更高效的方法。。。。帮顶

点评

表示每次移动然后到了某个点停下XD就是如此  发表于 2011-7-3 22:21

嘿。嘿。嘿
回复

使用道具 举报

梦石
0
星屑
242
在线时间
830 小时
注册时间
2010-6-22
回帖
109

开拓者

发表于 2011-8-20 18:32:49 | 显示全部楼层
本帖最后由 f26401004 于 2012-1-14 18:08 编辑

不過窗口的移動應該可以減化成:
if @status_window.x != 20
@status_window.x += 4
end
但這樣子加數必須為20的因數才行......

点评

- -  发表于 2011-8-21 10:46
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部