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

Project1

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

[已经解决] 求 VX 像素级的人物移动脚本

[复制链接]

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

跳转到指定楼层
1
发表于 2011-1-8 10:27:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5星屑
本帖最后由 八云紫 于 2011-1-8 12:17 编辑

   求像素级的人物移动脚就是说人物移动什么的都是按照像素为单位移动的。不是原来默认的移动一次 32 像素的。
   要求
      

          
  • 一定是需要使用独立的脚本页写的,因为是需要看原理的说。
          
  • 不限注释的语言
          


     ---------------------------------------------------------------------------------------------

    另外5V求 VX 跳跃处理的原理。
    答案:http://rpg.blue/forum.php?mod=re ... 8&fromuid=45435
              http://rpg.blue/forum.php?mod=re ... 3&fromuid=45435

    ---------------------------------------------------------------------------------------------
    哪位版主看到后请扣掉 5V 谢谢啦


   以上~~~~

最佳答案

查看完整内容

在下有一個腳本,預設是半tile半tile移動的 估計可以在腳本內修改,不知道您是否有興趣? 另外還有一個腳本,是在移動路徑中設置的,可以1像素1像素設定。 跳躍腳本附上demo 腳本均不是在下所寫,內容皆有作者名稱。

点评

一点点小小的报酬吧  发表于 2011-1-10 16:41
呃呃,純幫忙想不到有vip...不勝惶恐!  发表于 2011-1-10 16:38
都被咱挥霍掉了。> <  发表于 2011-1-8 15:09
纳尼.又多了200- - 感谢...话说八云酱经验怎么变得那么少了- -  发表于 2011-1-8 13:20

评分

参与人数 1-10 收起 理由
DeathKing -10 如贴

查看全部评分


《天空之城 —— 破碎的命运》

Lv1.梦旅人

梦石
0
星屑
195
在线时间
1194 小时
注册时间
2010-7-18
帖子
65
2
发表于 2011-1-8 10:27:41 | 只看该作者
本帖最后由 showpei 于 2011-1-8 10:48 编辑

在下有一個腳本,預設是半tile半tile移動的
估計可以在腳本內修改,不知道您是否有興趣?
另外還有一個腳本,是在移動路徑中設置的,可以1像素1像素設定。

跳躍腳本附上demo
腳本均不是在下所寫,內容皆有作者名稱。

move.rar (3.37 KB, 下载次数: 153)
jump.rar (259.75 KB, 下载次数: 532)

点评

非常感谢~~~  发表于 2011-1-8 10:52
已附上,希望能幫上您的忙  发表于 2011-1-8 10:50
感觉最近是越来越笨了。默认的跳跃处理看了半天都没看明白~  发表于 2011-1-8 10:46
好,還有跳躍的腳本也找到了  发表于 2011-1-8 10:44
半 tile 的话也可以,咱看看能不能修改就好了。可以传txt版本的么?  发表于 2011-1-8 10:40
回复

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

3
 楼主| 发表于 2011-1-8 11:34:29 | 只看该作者
本帖最后由 八云紫 于 2011-1-10 15:48 编辑

回去研究一下,感觉有点复杂,整合的话~~~

《天空之城 —— 破碎的命运》
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2006-2-25
帖子
1863
4
发表于 2011-1-8 11:41:16 | 只看该作者
回复 八云紫 的帖子

角色的移动和跳跃都是通过改变Game_Character的real_x和real_y来实现的
话说我之前写过一个鼠标像素移动的脚本- -
不过中途出了点小BUG一直找不出解决办法搁着了- -
我改一下发上来吧
回复

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

5
 楼主| 发表于 2011-1-8 11:42:49 | 只看该作者
回复 诡异の猫 的帖子

问题是跳跃时候有两个变量不知道用处。

移动的话,其实是很懒,想看看现成的脚本的说~~~

《天空之城 —— 破碎的命运》
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2006-2-25
帖子
1863
6
发表于 2011-1-8 11:51:39 | 只看该作者
本帖最后由 诡异の猫 于 2011-1-8 11:53 编辑

回复 八云紫 的帖子

jump_count 和 jump_peak?
话说咱也没怎么研究过jump= =

@jump_count貌似是用来跳跃计时
这个比较好理解吧  跟anime_count和stop_count同理

至于@jump_peak是跳跃高度
首先要理一下关系
就是@real_y和@y(角色地图Y坐标)是相关联的
而screen_y是和@real_y和@jump_peak相关联的
貌似是因为如果直接通过更改@real_y来实现跳跃高度的话会使角色的Y坐标也跟着变动
所以为了使跳跃的时候角色地图Y坐标不变
才引入@jump_peak这个变量来实现不影响到@real_y和@y的情况下
直接影响screen_y来实现跳跃
回复

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

7
 楼主| 发表于 2011-1-8 11:56:17 | 只看该作者
回复 诡异の猫 的帖子

了解了。

不过之前测试过了,每个方向的跳跃的话,每次的 @jump_peak 都相同。所以就不太明白脚本怎么区分跳跃方向的。

另外按照咱的脚本思路上说,需要咱跳跃的过程中可以使用方向键来控制人物坐标,但是没找到刷新跳跃的地方。(其实是没去找(抱头~~~))

《天空之城 —— 破碎的命运》
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2006-2-25
帖子
1863
8
发表于 2011-1-8 12:04:46 | 只看该作者
本帖最后由 诡异の猫 于 2011-1-8 12:07 编辑

回复 八云紫 的帖子

是每个方向的jump_peak都相同啊
因为如果你向上跳,@real_y本身就已经减少了256(就是1格)
同理向下跳的话@real_y本身已经增加了256了
在这基础上screen_y再算上jump_peak的
所以其实是同时通过移动+跳跃2个方法来实现的

另外在跳跃过程中能移动咩- -? 完全不知道的说
如果可以的话
那也应该是通过移动+跳跃两个方法同时实现的

对了 还有一个引入jump_peak而不直接用@real_y来实现跳跃的原因就是
更改@real_y的话地图会跟着滚动 如果这样的话就没跳跃效果的
而jump_peak是影响screen_y的
所以跳跃的时候地图不会跟着滚动
只是角色在画面上的位置变动

评分

参与人数 1+10 收起 理由
八云紫 + 10 认可答案

查看全部评分

回复

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

9
 楼主| 发表于 2011-1-8 12:13:56 | 只看该作者
回复 诡异の猫 的帖子

明白很多。感谢猫大。

原来它的跳跃是先移动人物的坐标,然后使用 jump_peak 来填充之间的差来实现的。

以前就是在纠结原地跳跃是怎么实现的。想了好久也没跳出思维定式。越来越笨了~~

点评

这个问题应该不大。之前也研究过这个,有点印象就是了。  发表于 2011-1-8 12:38
那些@real_y @y screeny jump_peak的关系是没问题 不过我不确定jump是通过移动和跳跃同时实现的说 我看下先  发表于 2011-1-8 12:31
啊 等等等 我这些都是应该..应该而已- - 我回头看下脚本再跟你确认下  发表于 2011-1-8 12:25

《天空之城 —— 破碎的命运》
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2006-2-25
帖子
1863
10
发表于 2011-1-8 13:03:55 | 只看该作者
本帖最后由 诡异の猫 于 2011-1-8 13:06 编辑

回复 八云紫 的帖子

首先先理一下个变量间的关系吧...其实这里可以完全忽略X坐标和Y坐标
地图的滚动是通过改变@real_x和@real_y的值来实现的
而sreen_x和screen_y是角色在画面上的位置  一般都是在中间
所以一般角色移动的时候screen_x和screen_y是没有变的 只是地图滚动而已 加上角色的行走动作

但screen_x是@real_x的函数,screen_y是@real_y的函数
角色移动@real_x和@real_y会变,因此screen_x,y也会变才对
不过这里是通过Game_Map的adjust_x和adjust_y方法来决定screen_x,y变不变的
只有当地图滚到边了screen_x,y才会变

还有一种情况screen_y会变就是跳跃
screen_y受两个变量影响:@real_y和@jump_peak

刚看了下Jump的方法
并不是同时通过移动和跳跃来实现的说...抱歉
首先看下Game_Character的update方法
  1.   def update
  2.     if jumping?                 # 跳跃
  3.       update_jump
  4.     elsif moving?               # 移动
  5.       update_move
  6.     else                        # 停止
  7.       update_stop
  8.     end
  9.   end
复制代码
jumping的时候是update_jump,moving的时候是update_move
所以不是同时update_jump和move的说...抱歉

再来看看jumping?哪来的
  1.   def jumping?
  2.     return @jump_count > 0
  3.   end
复制代码
就是当jump_count > 0的时候jumping就为true

那jump_count哪来的- - 继续看下jump方法
  1.   def jump(x_plus, y_plus)
  2.     if x_plus.abs > y_plus.abs            # 横向距离较大
  3.       x_plus < 0 ? turn_left : turn_right
  4.     elsif x_plus.abs > y_plus.abs         # 纵向距离较大
  5.       y_plus < 0 ? turn_up : turn_down
  6.     end
  7.     @x += x_plus
  8.     @y += y_plus
  9.     distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round
  10.     @jump_peak = 10 + distance - @move_speed
  11.     [color=Magenta]@jump_count = @jump_peak * 2[/color]
  12.     @stop_count = 0
  13.     straighten
  14.   end
复制代码
一旦JUMP的时候就有jump_count了
来翻译一下Jump这个方法先...
  1. 第2-6句只是判定角色朝向用的
  2. 接着第7-8句直接就把角色的地图坐标更改到目标位置了
  3. (只是改变了@x和@y,没有改变@real_x和@real_y,所以地图暂时不滚动)
  4. 第9句是用勾股定理算出原位置和目标位置两点间的直线距离
  5. 然后根据一定函数算出jump_peak和jump_count(含义未知)
复制代码
这样我们就得出了@jump_peak和@jump_count

继续看下update_jump
  1.   def update_jump
  2.     @jump_count -= 1
  3.     @real_x = (@real_x * @jump_count + @x * 256) / (@jump_count + 1)
  4.     @real_y = (@real_y * @jump_count + @y * 256) / (@jump_count + 1)
  5.     update_bush_depth
  6.   end
复制代码
这时才通过@jump_count来改变@real_x和@real_y
从而让地图滚动
而@jump_peak这个变量只是用来实现角色在screen_y上的位置变动,不影响地图滚动

抱歉,刚误导了你- -
如果觉得答案不满意的话5VIP可以还回去的说,不好意思

点评

不用在意什么VIP啦,那个无关紧要。 主要是能学到东西就好。  发表于 2011-1-8 13:22

评分

参与人数 1星屑 +400 收起 理由
八云紫 + 400 算是个人加分吧。不过要等待咱有分数来才能.

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-28 23:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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