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

Project1

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

[已经过期] 怎么让图片的移动做抛物线运动

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
115
在线时间
247 小时
注册时间
2005-12-28
帖子
164
跳转到指定楼层
1
发表于 2011-6-12 11:12:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
就是移动图片到一个指定位置,但不是直径过去,而是让他像抛物线那样达到指定位置。类似事件或主角跳跃那样。

点评

起始点就是图片的目前x,y坐标,反正我是来凑热闹的,我是混XP的,VX的事件还没开始看...  发表于 2011-6-13 17:43

Lv1.梦旅人

梦石
0
星屑
50
在线时间
40 小时
注册时间
2011-5-3
帖子
28
2
发表于 2011-6-12 14:17:53 | 只看该作者

用二次函数算出坐标,然后改变精灵的坐标就好了- -好吧
#x^2=2py
Skeleton = Sprite.new
Skeleton.bitmap = Bitmap.new("Graphics/Battlers/Skeleton")
x1=Skeleton.x
y1=Skeleton.y
p=2
loop do
  y1=(x1*x1)/(2*p)
  Skeleton.x=x1
  Skeleton.y=y1
  Graphics.update
  x1+=1
end
- -你看看是这个效果么

点评

这个好像是自由落体吧.....  发表于 2011-6-13 10:50
回复 支持 反对

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
364
在线时间
1198 小时
注册时间
2010-12-18
帖子
3928

贵宾

3
发表于 2011-6-12 15:04:37 | 只看该作者
  1. def parabola(duration)
  2.   array = []
  3.   duration.downto(0) {|time| array.push(time) }
  4.   1.upto(duration) {|time| array.push(-time) }
  5.   return array
  6. end

  7. time = 15
  8. wave = parabola(time)
  9. sprite = Sprite.new
  10. sprite.bitmap = Bitmap.new(4, 4)
  11. sprite.bitmap.fill_rect(0, 0, 4, 4, Color.new(255, 255, 255))
  12. time.times {|index| Graphics.update; sprite.y = sprite.y + 1;  
  13. sprite.x = sprite.x + wave[index] }  
  14. loop {Graphics.update}
复制代码
我想我失败了。

点评

不能理解这个效果,感谢关注..  发表于 2011-6-13 10:55
回复 支持 反对

使用道具 举报

Lv2.观梦者

花开堪折直须折

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

贵宾

4
发表于 2011-6-12 15:55:55 | 只看该作者
for time in 1..总时间
  图片.x += 1
   图片.y += 1
end

+=和1可以自行改动……

点评

好像要算出抛物线的每个点才能用这个......  发表于 2011-6-13 10:49
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
5
发表于 2011-6-12 16:53:25 | 只看该作者
[凑热闹]
抛物线是二次函数...需指定3个坐标,始末只有2个...所以还要指定一个,
送上1个BUG版的,当目标x坐标比目前x坐标小时,不移动...
3个坐标,再利用牛顿插值法对二次函数求解....ls的各位...面向对象,春暖花开....
  1. #==============================================================================
  2. # ■ Math.quadratic
  3. #------------------------------------------------------------------------------
  4. #  数学模块    2次函数
  5. #==============================================================================

  6. def Math.quadratic(x1,x2,x3,y1,y2,y3, &block)
  7.   # 牛顿插值公式
  8.   (x1..x3).each {|x|
  9.     y=(y3*(x-x1)*(x-x2))/((x3-x1)*(x3-x2)+(y2*(x-x1)*(x-x3))/((x2-x1)*(x2-x3)+(y1*(x-x2)*(x-x3))/((x1-x2)*(x1-x3))))
  10.     block.call(x,y)
  11.   }
  12. end
  13. #==============================================================================
  14. # ■ Sprite
  15. #------------------------------------------------------------------------------
  16. #  精灵类       管理图形对象
  17. #==============================================================================

  18. class Sprite
  19.   #--------------------------------------------------------------------------
  20.   # ● 平抛移动
  21.   #--------------------------------------------------------------------------
  22.   def move_to_2(x, y, ox, oy)
  23.     Math.quadratic(self.x,ox,x,self.y,oy,y){|x0|tm=x0.dup
  24.     self.x, self.y =tm
  25.     Graphics.update}
  26.   end
  27. end
  28. temp = Sprite.new
  29. temp.bitmap = Bitmap.new(20,20)
  30. temp.bitmap.fill_rect(0,0,20,20,Color.new(255,0,0))
  31. temp.x = 52;temp.y = 20
  32. temp.move_to_2(640,480,20,20)
复制代码

点评

要是能设定起始点就好了,运动速度再快点也行,用Graphics.update好像其他事件都动不了,BUG要怎么......太黑了。。  发表于 2011-6-13 10:45
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

Lv2.观梦者

花开堪折直须折

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

贵宾

6
发表于 2011-6-12 22:04:17 | 只看该作者
唉,遇到一堆大神了,当咱没说好了…………抱头,悄悄的遁走…………= =||!
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复 支持 反对

使用道具 举报

Lv2.观梦者

铃铃塔的守护者

梦石
0
星屑
626
在线时间
961 小时
注册时间
2010-10-24
帖子
2768

贵宾

7
发表于 2011-6-12 23:15:27 | 只看该作者
这...唉,数学不好啊...慨叹啊......

魔法麻将独立游戏制作中,欢迎热情的测试员与UI设计师合作开发~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-11 09:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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