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

Project1

 找回密码
 注册会员
搜索

XP默认系统的"又"一BUG

查看数: 6998 | 评论数: 11 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-12-5 20:37

正文摘要:

本帖最后由 灯笼菜刀王 于 2018-12-5 21:02 编辑 原本想发XP区, 后来想想可能其他版本也会有这个BUG, 所以发这里一起讨论吧 这个BUG如下 把鱼雷旋转后做成动画素材, 然后就正常显示了... 难道移动了端口原点 ...

回复

RPGzh500223 发表于 2021-1-23 21:06:47
灯笼菜刀王 发表于 2021-1-22 15:23
实际上改viewport的原点并不会改动它里面的sprite的原点~ 要这样解决的话, 是应该放在viewport里~

其实 ...

可能我不是正经学习过的
你的描述我看不太懂
我是看楼上的动图理解的
我写了scene测试了的
a=RPG::Sprite.new(v=Viewport.new) (只为表达意思)
无论 a.ox、a.oy变化 还是v.ox、v.oy变化都行 (一次刷新改变100)
a播放动画的sprites  一直跟随a
灯笼菜刀王 发表于 2021-1-22 15:23:36
RPGzh500223 发表于 2021-1-22 14:29
这不会是挖坟吧
rmxpx的RPG::Sprite写了x,y,照着x,y写个ox,oy

实际上改viewport的原点并不会改动它里面的sprite的原点~ 要这样解决的话, 是应该放在viewport里~

其实发这个帖子, 我无法理解的是"为什么不旋转animation_sprites, 它会跟着车走, 一旋转,它就下车了~~"
RPGzh500223 发表于 2021-1-22 14:29:39
这不会是挖坟吧
rmxpx的RPG::Sprite写了x,y,照着x,y写个ox,oy
  1. module RPG
  2.   class Sprite < ::Sprite
  3.     def ox=(ox)
  4.       oxo = self.ox - ox
  5.       if oxo != 0
  6.         if @_animation_sprites != nil
  7.           for i in 0..15
  8.             @_animation_sprites[i].x += oxo
  9.           end
  10.         end
  11.         if @_loop_animation_sprites != nil
  12.           for i in 0..15
  13.             @_loop_animation_sprites[i].x += oxo
  14.           end
  15.         end
  16.       end
  17.       super
  18.     end
  19.    
  20.     def oy=(oy)
  21.       oyo = self.oy - oy
  22.       if oyo != 0
  23.         if @_animation_sprites != nil
  24.           for i in 0..15
  25.             @_animation_sprites[i].y += oyo
  26.           end
  27.         end
  28.         if @_loop_animation_sprites != nil
  29.           for i in 0..15
  30.             @_loop_animation_sprites[i].y += oyo
  31.           end
  32.         end
  33.       end
  34.       super
  35.     end
  36.   end
  37. end
复制代码
chd114 发表于 2018-12-8 19:29:29
······我还以为是WindowsXP有什么bug
b565185756 发表于 2018-12-8 16:39:23
太强了必须叫停
89444640 发表于 2018-12-6 17:59:07
或者,你让潜艇回去正常位置,改下图,只露个头。
灵活点处理嘛,不必非要放下面表现深潜。
芯☆淡茹水 发表于 2018-12-6 07:27:40
鱼雷.y 似乎要补偿上 端口.y  ?!

点评

从楼上的动图看貌似是这样~ 旋转的原件只记录了原来的端口原点坐标的关系?  发表于 2018-12-6 09:34
张咚咚 发表于 2018-12-5 23:36:34
本帖最后由 张咚咚 于 2018-12-5 23:50 编辑

p了一下,VA和XP记录动画的精灵数组坐标和端口坐标原点什么的貌似都相同,RPG::Sprite的animation_set_sprites处理坐标的方法里也没有发现和VA有什么不同的地方(可能是我漏找了也可能是找的地方不对)。。
估计是XP独有的bug。简单的解决方法估计要改动画文件了。
v = Viewport.new 0,0,640,480
s = Sprite.new v
s.bitmap = xxx
s.angle = 100

# 明明这样没问题的。。但是在动画里就错位了。。
v.ox = 100

旋转50度后默认的5号动画,viewport ox左右移动出现的问题。
弄张图让后面的前辈来解决吧。。


点评

如果VA没有这个问题,那对比下两个的动画刷新坐标算法应该可以解决  发表于 2018-12-6 09:35
额, 通过动图可以明显看出来了,旋转后的动画原件不跟着端口的原点移动了, 那原因就是旋转的时候是按"原本的端口原点来计算?"  发表于 2018-12-6 09:32
y967 发表于 2018-12-5 22:33:38
大佬是要出自己的作品了

点评

月球海深坑  发表于 2018-12-5 22:58
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-5-6 22:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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