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

Project1

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

[讨论] 【算法时间】如何让一个精灵围绕着屏幕中心公转?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
帖子
590
1
发表于 2010-7-7 23:58:09 | 显示全部楼层
  1. class Scene_Demo
  2.   def main
  3.     @tip = Sprite.new(Viewport.new(0,0,640,480))
  4.     @tip.bitmap = Bitmap.new(12*32,32)
  5.     @tip.bitmap.draw_text(0,0,12*32,32,"这只是精灵移动的演示",1)
  6.     @sprite = Sprite.new(Viewport.new(0,0,640,480))
  7.     @sprite.bitmap = Bitmap.new("Graphics/Battlers/001-Fighter01") #咱表示这个图片可以随意……

  8.     #此处添加脚本                           #│
  9.     @x = 320 #目标点                        #│
  10.     @y = 240 #目标点                        #│
  11.     @sprite.ox = @sprite.bitmap.width/2     #│
  12.     @sprite.oy = @sprite.bitmap.height/2    #├NEW
  13.     @s = 0                                  #│
  14.     @speed = 5    # 旋转速度                #│
  15.     @a = 100      # 旋转直径                #│
  16.     @pi = 3.141592653                       #│

  17.     # 执行过渡
  18.     Graphics.transition
  19.     # 主循环
  20.     loop do
  21.       # 刷新游戏画面
  22.       Graphics.update
  23.       # 刷新输入信息
  24.       Input.update
  25.       # 刷新画面
  26.       update
  27.       # 如果切换画面就中断循环
  28.       if $scene != self
  29.         break
  30.       end
  31.     end
  32.     # 准备过渡
  33.     Graphics.freeze
  34.     @tip.dispose
  35.     @sprite.dispose
  36.   end
  37.   def update
  38.     if Input.trigger?(Input::B)
  39.       # 演奏取消 SE
  40.       $game_system.se_play($data_system.cancel_se)
  41.       # 切换的地图画面
  42.       $scene = Scene_Map.new
  43.       return
  44.     end
  45. #此处添加脚本
  46.     @s += @speed                                #│
  47.     @sprite.angle = @s                          #│
  48.     @sprite.x = Math.sin(@s*@pi/180) * @a + @x  #├NEW
  49.     @sprite.y = Math.cos(@s*@pi/180) * @a + @y  #│

  50.   end
  51. end
复制代码

点评

自转+公转直接设置原点不就行了么……就像II的……  发表于 2010-7-9 15:55
才发现这个算法和我的是一样的...  发表于 2010-7-8 15:55
汗,他是公转+自转啊~  发表于 2010-7-8 12:57
公转!是公转!  发表于 2010-7-8 12:41
PI 可以直接用 Math::PI  发表于 2010-7-8 02:12
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-12 21:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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