相机缩放效果

时间:2012-12-10 13:17:46

标签: iphone cocos2d-iphone camera scaling zooming

我正在寻找像Tiny Wings中使用的相机缩放效果,相机根据角色高度缩小。

我希望角色在达到设定高度后开始缩放,我希望缩放是非线性的,这样当角色越过屏幕时,角色会越来越接近相机边界。

我目前正在使用以下代码进行线性扩展

 camera.scale = MIN(1, SCREEN_HEIGHT*0.7 / player_position_y);

这导致玩家总是距离屏幕顶部30%。我试图找到一个优雅的解决方案,这将导致玩家从屏幕边缘的30%到屏幕边缘的10%,这取决于角色在游戏世界中的高度。

1 个答案:

答案 0 :(得分:0)

为了完成,我发布了我想出的解决方案。

        float scalar = 4; // Had to tweak this number to get the difference in scales to feel right
        float distance = player_position_y - SCREEN_HEIGHT*0.7;

        float percentage = distance/(SCREEN_HEIGHT*2 - SCREEN_HEIGHT*0.7)

        percentage = 1 - (percentage/scalar);

        self.scale = MIN(1, SCREEN_HEIGHT*0.70 / (player_position_y * percentage));

基本上,我得到角色开始缩放的位置与角色可以达到的最大高度之间的距离,作为最大高度的百分比。

我将该数字反转并乘以一个缩放器。我将此百分比值乘以比例计算中使用的玩家高度。这导致使用角色的位置进行比例计算,当角色获得高度时,该角色的位置低于角色。