1

we've got a major project written in Kobold2D by Steffen Itterheim, (which is itself a wrapper for Cocos 2.1), and since upgrading to XCode 6.1/OS X 10.10, the new iOS 8 framework seems to render many parts of the Kobold-library and the Cocos implementation unusable, or it seems to need a rewrite.

  • Has anyone updated a Kobold2D project successfully to iOS8 yet?
  • Are there simple ways to upgrade it, or is it necessary to rewrite the entire library?
  • If there are no simple ways to upgrade, has anyone migrated a project from Kobold to cocos 3 yet?

Any hints would be much appreciated!

Averett

PS. I have seen this question: How to convert Kobold2D into a new Cocos2D 3.x project? - but the answer is not very helpful, as this solution would omit iOS 8.

Community
  • 1
  • 1
Averett
  • 66
  • 8

2 Answers2

1

I have just compiled my Kobold2D 2.1 project using XCode 6.0.1. It breaks initially at several lines, but it's easy to fix. I only found a couple of errors:

  1. Multiple methods named 'setPosition:' found
    Example:
    [_target setPosition: newPos];

    Fix: cast the object to CCNode
    [(CCNode*)_target setPosition: newPos];

    Do this for all errors found

You also need to import "ccNode.h" at the top of the file.

  1. Use of undeclared identifier 'MPMovieControlModeHidden'
    I found that the #ifdef__ #endif enclosing the offending line was commented out. Uncomment them to fix the problem.
Iman Nia
  • 2,255
  • 2
  • 15
  • 35
David
  • 161
  • 1
  • 3
1

We actually have created a script to make the necessary changes to Kobold2D. You can find it in this post: https://www.makegameswith.us/gamernews/406/xcode-6-fixes-for-kobold2d

Basically all you need to do is run

curl https://s3.amazonaws.com/mgwu-misc/xcode6_kobold_patch.sh | sh

in the terminal, when you are in the root folder of your project.

Ben-G
  • 4,996
  • 27
  • 33
  • Thanks Ben-G -- this looks fantastic - alas, I'm getting a linker error: Undefined symbols for architecture i386: "___isnan", referenced from: -[OALGainAction prepareWithTarget:] in libobjectal-ios.a(OALAudioActions.o) -[OALPitchAction prepareWithTarget:] in libobjectal-ios.a(OALAudioActions.o) -[OALPanAction prepareWithTarget:] in libobjectal-ios.a(OALAudioActions.o) ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation) Any ideas? – Averett Nov 08 '14 at 20:29
  • NOTE: Ben-G`s fix does not work for the OAL library in Kobold. TO fix that, check this question: http://stackoverflow.com/questions/26917172/how-to-fix-oalaudio-library-for-xcode-6-kobold2d-linker-error – Averett Nov 14 '14 at 17:50