Cocos2d 2.x:理解 ccBezierConfig 行为

2024-08-11移动开发问题
5

本文介绍了Cocos2d 2.x:理解 ccBezierConfig 行为的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我很久以前就问过一个 然后做从头到尾对称但颠倒"的东西.

关于我做错了什么有什么建议吗?

 ccBezierConfig 贝塞尔曲线;self.position = CGPointMake(0.0f, 150.0f);bezier.controlPoint_1 = CGPointMake(-20.0f, 290.0f);bezier.controlPoint_2 = CGPointMake(260, 290.0f);bezier.endPosition =CGPointMake(340.0f,150.0f);id bezierForward = [CCBezierBy actionWithDuration:3 bezier:bezier];ccBezierConfig bezier2;bezier2.controlPoint_1 = CGPointMake(340.0f, 10.0f);bezier2.controlPoint_2 = CGPointMake(80, 10.0f);bezier2.endPosition =CGPointMake(-20.0f,150.0f);id bezierReturn = [CCBezierBy actionWithDuration:3 bezier:bezier2];[self runAction:[CCSequence 动作:bezierForward, bezierReturn, [CCHide 动作],零]];

解决方案

我使用的是 CCBezierBy,但示例基于 CCBezierTo 公式.因此,如果我使用 CCBezierTo 代替 CCBezierBy,一切都会按预期工作.

I am on this since a while and time ago I asked a question and a user kindly replied to me explaning that there is this plugin tool that I can use to create quick bezier curves prototypes.

I tried and produced this:

I thought it would be perfectly translated in this ccBezierConfig:

ccBezierConfig bezier;
self.position = CGPointMake(-10.0f, 400.0f);
bezier.controlPoint_1 = CGPointMake(160, 190.0f);
bezier.controlPoint_2 = CGPointMake(200, 190.0f);
bezier.endPosition =CGPointMake(340.0f,280.0f);

id bezierForward = [CCBezierBy actionWithDuration:3 bezier:bezier];    
[self runAction: [CCSequence actions:
                  bezierForward, [CCHide action],
                  nil]];

Unfortunately the path I get is not quiet what I was expecting. The character starts to move from the top left corner of the screen and then just goes up and I don't see the movement I expected.

Any explanation on what am I doing wrong?

Btw.. I am using Cocos2d 2.0 on iOS 6.0, retina display iPod touch 4th generation.

EDIT:

Another example..

I thought that this configuration would do like in this and then do the symmetric thing from the end to the start but "upside down".

Any suggestions on what am I doing wrong?

    ccBezierConfig bezier;

     self.position = CGPointMake(0.0f, 150.0f);
     bezier.controlPoint_1 = CGPointMake(-20.0f, 290.0f);
     bezier.controlPoint_2 = CGPointMake(260, 290.0f);
     bezier.endPosition =CGPointMake(340.0f,150.0f);

    id bezierForward = [CCBezierBy actionWithDuration:3 bezier:bezier];


    ccBezierConfig bezier2;
    bezier2.controlPoint_1 = CGPointMake(340.0f, 10.0f);
    bezier2.controlPoint_2 = CGPointMake(80, 10.0f);
    bezier2.endPosition =CGPointMake(-20.0f,150.0f);

    id bezierReturn = [CCBezierBy actionWithDuration:3 bezier:bezier2];


    [self runAction: [CCSequence actions:
                      bezierForward, bezierReturn, [CCHide action],
                      nil]];

解决方案

I was using CCBezierBy but the examples are based on a CCBezierTo formula. Hence everything works as excpected if I use CCBezierTo instaed of CCBezierBy.

这篇关于Cocos2d 2.x:理解 ccBezierConfig 行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

硬件音量按钮更改应用程序音量
Hardware Volume buttons change in app volume(硬件音量按钮更改应用程序音量)...
2024-08-12 移动开发问题
10

Cocos2d - 如何检查不同层中对象之间的交集
Cocos2d - How to check for Intersection between objects in different layers(Cocos2d - 如何检查不同层中对象之间的交集)...
2024-08-12 移动开发问题
8

恢复游戏 cocos2d
Resume game cocos2d(恢复游戏 cocos2d)...
2024-08-12 移动开发问题
6

突出显示朗读文本(在 iPhone 的故事书类型应用程序中)
Highlight Read-Along Text (in a storybook type app for iPhone)(突出显示朗读文本(在 iPhone 的故事书类型应用程序中))...
2024-08-12 移动开发问题
9

Cocos2D + 仅禁用 Retina iPad 图形
Cocos2D + Disabling only Retina iPad Graphics(Cocos2D + 仅禁用 Retina iPad 图形)...
2024-08-12 移动开发问题
10

正确的 cocos2d 场景重启?
Proper cocos2d scene restart?(正确的 cocos2d 场景重启?)...
2024-08-12 移动开发问题
7