Obviamente estoy haciendo un juego que tiene un puntaje. ¿Cómo llamo a un método de actualización y el entero realmente se muestra en la esquina superior derecha?¿Cómo tener un Entero de puntuación actualizado y mostrado en Cocos2d?
Respuesta
Aquí, esto podría funcionar
En el archivo .h:
@interface HelloWorld : CCLayer {
int score;
CCLabelTTF *scoreLabel;
}
- (void)addPoint;
En el archivo .m:
En el método init:
//Set the score to zero.
score = 0;
//Create and add the score label as a child.
scoreLabel = [CCLabelTTF labelWithString:@"8" fontName:@"Marker Felt" fontSize:24];
scoreLabel.position = ccp(240, 160); //Middle of the screen...
[self addChild:scoreLabel z:1];
En otro lugar:
- (void)addPoint
{
score = score + 1; //I think: score++; will also work.
[scoreLabel setString:[NSString stringWithFormat:@"%@", score]];
}
Ahora acaba de llamar: [auto addPoint]; cada vez que el usuario mata a un enemigo.
Eso debería funcionar, dime si no lo hizo porque no lo he probado.
¡gracias de nuevo, he notado que apareces en algunas de mis preguntas! y gracias por tu ayuda. ahora mira mi pregunta más reciente sobre una IA. Realmente podría usar algo de ayuda allí. – ipodfreak0313
@ ipodfreak0313: Haha. ¡Me alegro de poder ayudar! =) Eché un vistazo a tu pregunta de IA, pero desafortunadamente nunca he intentado hacer mi propia IA antes. Aunque podría tener algunas ideas. Lo pensaré y te dejaré saber si se me ocurre algo. – tallen11
gracias, me gustaría poder responder algunas preguntas, pero todavía soy muy nuevo en cocos2d (está bien, tal vez no sea nuevo, pero tengo mucho que aprender). – ipodfreak0313
Usando UILabel
UILabel.text = [NSString stringWithFormat:@"%lu",score];
Mueva el UILabel en la parte superior de la vista utilizando la interfaz constructor también se puede crear mediante programación
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,500,30)];
[[self view] addSubview:label];
[label release]; // dont leak :)
@ ipodfreak0313: No hay necesidad de CAPS, UILabel también funciona bien para Cocos2D, quiero decir, también puedes representar el contenido en una UIView y puedes agregar otras cosas en la jerarquía de vistas. Además: el procesamiento de texto UIKits es mucho mejor que Cocos2Ds. – JustSid
@JustSid: estoy bastante seguro de que se recomienda no representar los elementos de UIKit en la parte superior de una escena de cocos2d, pero podría estar equivocado. – tallen11
@allthewayapps: Hay algunos consejos/pautas generales sobre cómo manejar UIViews sobre una vista EAGLLayer, pero Apple hizo su propio techdemo sobre cómo renderizar rápidamente y cómo renderizar la interfaz de usuario en un juego 3D OpenGL ES y también usaron UIKit (mira los videos de la WWDC 2010 para más información). – JustSid
en el archivo de cabecera:
@interface GameLayer : CCLayer
{
CCLabelTTF *_scoreLabel;
}
-(void) updateScore:(int) newScore;
en archivo de implementación:
-(id) init
{
if((self=[super init])) {
// ..
// add score label
_scoreLabel = [CCLabelTTF labelWithString:@"0" dimensions:CGSizeMake(200,30) alignment:UITextAlignmentRight fontName:@"Marker Felt" fontSize:30];
[self addChild:_scoreLabel];
_scoreLabel.position = ccp(screenSize.width-100, screenSize.height-20);
}
return self;
}
-(void) updateScore:(int) newScore {
[_scoreLabel setString: [NSString stringWithFormat:@"%d", newScore]];
}
EDIT: si no desea utilizar una Ivar, puede utilizar las etiquetas:
[self addChild:scoreLabel z:0 tag:kScoreLabel];
// ...
CCLabelTTF *scoreLabel = (CCLabelTTF*)[self getChildByTag:kScoreLabel];
EDIT 2: Por motivos de rendimiento que deben cambiar a CCLabelAtlas
o si CCBitmapFontAtlas
actualizar el puntaje con mucha frecuencia.
Lea también cocos2d programming guide about labels.
¿Tengo que programar una actualización que llame a la función updateScore: (int) newScore? – ipodfreak0313
por cierto me encanta tu foto de perfil de Mighty Eagle;) – ipodfreak0313
no solo llames al método, cuando el puntaje cambia – Felix
- 1. Intentando configurar un CCLabelTTF con un entero como parte de su cadena en Cocos2d-X C++
- 2. cómo tener un entero de 64 bits en PHP?
- 3. ¿Cómo restauro un Fragmento mostrado anteriormente?
- 4. ¿La mejor manera de mostrar una puntuación de juego en iPhone con cocos2d?
- 5. Puntuación en fórmulas LaTeX
- 6. cocos2d: Cómo configurar un temporizador
- 7. Motores de puntuación/calificación: ¿consejos y ejemplos?
- 8. Cómo dibujar un fondo rápido en cocos2d?
- 9. ¿Cómo saco un entero de un NSDictionary y lo pongo en un número entero?
- 10. cocos2d y UINavigationController trouble
- 11. UIScrollView y Cocos2D
- 12. Dividir una cadena en palabras y puntuación
- 13. efecto de parada en cocos2d?
- 14. ¿Es posible tener un marcador de "Puntuación más baja" de Game Center?
- 15. limitando un sprite en cocos2d
- 16. Cocos2D y Leaderboard
- 17. ¿Es posible envolver un entero y llamarlo como un entero?
- 18. ¿Existe un 'vimtutor' actualizado?
- 19. campos 'creado en' y 'actualizado en'
- 20. ¿Cómo se guarda un número entero en NSUserDefaults?
- 21. entrada [tipo = texto] enviar un valor diferente al mostrado
- 22. Expresiones regulares en Puntuación
- 23. ¿Cómo cambio simplemente la imagen de un sprite en cocos2d?
- 24. Evento de ventana mostrado en WPF?
- 25. cómo aprender "Animaciones en COCOS2D"
- 26. ¿cómo normalizo una puntuación solr/lucene?
- 27. ¿Cómo establecer el foco de entrada en un cuadro de diálogo mostrado en Qt?
- 28. Diferencia entre cocos2d-android y cocos2d-android-1
- 29. Cocos2d ¿Cómo usar CCC4?
- 30. Servidor SQL: ¿cómo se elimina la puntuación de un campo?
¿Desea que se actualice cada segundo o algo similar? – tallen11
@allthewayapps Me gustaría que se actualice cada vez que el usuario mate a un enemigo. – ipodfreak0313
Ver la respuesta por favor. – tallen11