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

Project1

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

[已经过期] !!!!!怎么让图片移动速度渐变加速?!!!!!

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
685
在线时间
579 小时
注册时间
2010-2-15
帖子
1367
跳转到指定楼层
1
发表于 2011-6-12 19:18:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 315038639 于 2011-6-12 19:18 编辑

就是类似于在斜坡向下滚筒,一开始很慢,然后越来越快、越来越快……
就是这样,图片移动速度中途提高。

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
686
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

2
发表于 2011-6-12 22:00:36 | 只看该作者
似乎……可以这样

移动总路程的1/X,时间,60帧(1秒)
(紧接着上一个指令)移动同上的长度,时间,40帧
同上,20帧
……

数字你可以自己改……嗯,大概吧,提供一下比较废渣的思路
当然用脚本会比较方便
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2006-2-25
帖子
1863
3
发表于 2011-6-13 13:40:13 | 只看该作者
本帖最后由 诡异の猫 于 2011-6-13 16:33 编辑
  1. class Game_Picture
  2.   alias ori_ini initialize
  3.   def initialize(number)
  4.     ori_ini(number)
  5.     @time = 0
  6.   end
  7.   
  8.   def move_faster(tx, ty, time)
  9.     @target_x = tx
  10.     @target_y = ty
  11.     @distance_x = tx - @x
  12.     @distance_y = ty - @y
  13.     @time = time
  14.     @all_time = time
  15.   end
  16.   
  17.   alias ori_update update
  18.   def update
  19.     ori_update
  20.     if @time > 0
  21.       mx = (@distance_x / @all_time) * (@all_time - @time) / @time
  22.       my = (@distance_y / @all_time) * (@all_time - @time) / @time
  23.       @x = [@x + mx, @target_x].min if @distance_x > 0
  24.       @x = [@x + mx, @target_x].max if @distance_x < 0
  25.       @y = [@y + my, @target_y].min if @distance_y > 0
  26.       @y = [@y + my, @target_y].max if @distance_y < 0
  27.       @time -= 1
  28.     end
  29.   end
  30. end
复制代码
使用方法:
比如地图上显示了1号图片
则在事件里写脚本 $game_map.screen.pictures[1].move_faster(x, y, time)
x, y 表示你的目标坐标 就是想把图片移动到哪里
time表示你将图片由原来位置移动到xy所需要的时间

举个例子吧
例如你在地图上显示了1号图片 原坐标是0,0
然后你执行了$game_map.screen.pictures[1].move_fatser(500, 400, 100)
就是用100帧时间(正常情况下60帧=1秒)把1号图片从0,0加速移动到500,400
mx和my的算法有误,待高人修改,有事先出去了- -
此时 在第一帧的时候
图片X坐标的移动速度mx = (500/100) * (100 - 100) / 100(计算结果舍弃小数部分)
在第二帧的时候图片
图片X坐标的移动速度mx = (500/100) * (100 - 99) / 99
依此类推

点评

刚发现那个mx和my的算法有问题...现在有事要出去了- - 待高手来修改一下吧...  发表于 2011-6-13 16:29
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-11 13:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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