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

Project1

 找回密码
 注册会员
搜索

战斗镜头拉近的原理

查看数: 4666 | 评论数: 11 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2010-11-10 22:59

正文摘要:

战斗镜头拉近是不是循环所有对象 更改对象的x,y坐标和zoom_x,zoom_y的大小? 整体移动镜头用了 更改Viewport 的ox,oy 却缩放不了对象 还是 移动镜头也用循环所有对象比较好? ...

回复

789456qwe 发表于 2013-4-2 13:39:21
亿万星辰 发表于 2010-11-13 09:29
抛开背景OX OY的移动,单说缩放的部分。
OX OY是原点坐标,如果背景的zoom发生改动,你想让前景的SPRITE保 ...



使全屏技能动画时
怎么用战斗画面镜头拉远
亿万星辰 发表于 2010-11-13 09:29:35
抛开背景OX OY的移动,单说缩放的部分。
OX OY是原点坐标,如果背景的zoom发生改动,你想让前景的SPRITE保持相对位置不变,除了前景的zoom做同样的变化外,前景的OX OY也应该会有一些改动才对。
enghao_lim 发表于 2010-11-12 23:45:31
其实拉近镜头把所有sprite的ox与oy设置在同一点放大才会一致。
只是在更改ox与oy的同时显示的位置会跟着更改,所以要先修正坐标,然后放大,最后是更改src_rect,这样就有拉近的效果,具体可以参考RTAB,不过RTAB貌似有些复杂,有些脚本底应该勉强看得懂。
david50407 发表于 2010-11-12 23:44:23
本帖最后由 david50407 于 2010-11-12 23:44 编辑

额...
不好意思我脑残了
应该是这样的...
用原先的ox oy 就好
不过 x y 的部分要再做缩放判断
先取一个基准点 (消失点) ex: P(320, 240)
然后修改脚色与基准点的座标
self.x = P.x + (P.x - @battler.screen_x) * self.zoom_x ## Sprite_Battler 最下面那几行
以此类推...
david50407 发表于 2010-11-12 22:12:14
Sprite_Battler:
self.ox = 640 / 2
self.oy = 480 / 2
self.x += self.ox - @width / 2
self.y += self.oy - @height
david50407 发表于 2010-11-12 19:51:49
ox = 640 / 2
oy = 480 / 2
s = Sprite.new
s.ox = ox
s.oy = oy
s.x += ox
s.y += oy
s.zoom = 0.8
当每个Sprite都照s做时
x y座标会"相对"的一起变换
不必担心x y 座标位置的问题
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-6-26 20:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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