Я довольно новичок в разработке приложений для iphone, и поэтому я начинаю использовать инфраструктуру Cocos2d вместо цели c с нуля, потому что она несколько снизила кривую обучения, и я нахожу ее намного проще. Я пытаюсь сделать некоторые учебники с сайта Cocos2d, но, будучи человеком, а не овцой, решил попробовать кое-что, чего не было в учебнике.
Итак, вот соответствующий код из учебника:
- (void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event {
CGPoint location = [self convertTouchToNodeSpace: touch];
[cocosGuy stopAllActions];
[cocosGuy runAction: [CCMoveTo actionWithDuration:1 position:ccp( location.x + 32, location.y + 32)]];
Это работает, как и ожидалось, парень-кокос переходит туда, где я касаюсь своего iPod с задержкой в одну секунду и смещением 32 пикселя. Итак, теперь я хотел бы получить некоторую текстовую обратную связь о том, где я касался экрана. Я пытался использовать NSLog для отображения некоторой информации о location
касания:
NSLog([NSString stringWithFormat:@"x=%d y=%d", location.x, location.y]);
Xcode любезно сообщает мне: Format not a string literal and no format arguments
. Если я не полностью ошибаюсь, @"text"
является строковым литералом в цели C, а две переменные местоположения являются аргументами формата.
При запуске консоль отображает что-то вроде:
2011-06-20 19:54:22.765 Lesson1[315:707] x=0 y=1078640640
2011-06-20 19:54:23.887 Lesson1[315:707] x=0 y=1080631296
2011-06-20 19:54:24.576 Lesson1[315:707] x=0 y=1080242176
когда я касаюсь экрана iPod в трех случайных местах. Кажется, что x никогда не меняется, а y всегда массивное целое число.
Что не так с моим кодом, и, будучи новичком в мире разработки для iphone, задачи c и cocos2d, как я могу попытаться отладить это сам в будущем?
Обратите внимание, что это буквально мой второй день экспериментирования со всем этим, так что извините, если это невероятно очевидный или глупый вопрос.