Estoy trabajando en un juego de iPhone. En eso tuve que producir ondas de agua. No sé cómo conseguir eso. Escuché que se puede hacer con OpenGL. Soy muy nuevo en este concepto. ¿Puede alguien guiarme?¿Cómo implementar las ondas de agua?
Respuesta
Éstos son algunos recursos que he encontrado:
Language Agnostic 2d Water Ripple Algorithm
alt text http://freespace.virgin.net/hugo.elias/graphics/x_water4.gifalt text http://freespace.virgin.net/hugo.elias/graphics/ripples.gif
OpenGL Project with Water Ripples (Source)
alt text http://www.sulaco.co.za/opengl/water.jpg
También puede ser que desee pasar por GameDev's FAQ. Desplácese hacia abajo a la sección "Renderización de agua".
jk:
z=sin(x)+cos(y)
Más en serio, no el compositor de cuarzo, básicamente, hacer ondas para usted como una de las capas de efectos? ¿O fue anunciado solo para el iPhone 3.0 SDK?
Esa es una rutina realmente costosa. Absolutamente mataría a OpenGL en un juego. Supongo que quiere un efecto decente del agua, lo que significa trucos de mapeo de texturas de la vieja escuela. – pestilence669
Perdón; Lo sé. Estaba bromeando. – dlamblin
Encontré el código fuente del efecto de ondulación del agua, así que sigo el código para implementar en su proyecto y también solove su problema.
importación "HelloWorldLayer.h"
// HelloWorldLayer implementation
@implementation HelloWorldLayer
+(CCScene *) scene
{
// 'scene' is an autorelease object.
CCScene *scene = [CCScene node];
// 'layer' is an autorelease object.
HelloWorldLayer *layer = [HelloWorldLayer node];
// add layer as a child to scene
[scene addChild: layer];
// return the scene
return scene;
}
// on "init" you need to initialize your instance
-(id) init
{
if((self=[super init])) {
rippleImage = [ pgeRippleSprite ripplespriteWithFile:@"image_old.png" ];
[ self addChild:rippleImage ];
CCLabelTTF *label = [CCLabelTTF labelWithString:@"Hello Cocos2D Forum" fontName:@"Marker Felt" fontSize:16];
label.position = ccp(80 , 300);
[self addChild: label];
[ [ CCTouchDispatcher sharedDispatcher ] addTargetedDelegate:self priority:0 swallowsTouches:YES ];
// schedule update
[ self schedule:@selector(update:) ];
}
return self;
}
float runtime = 0;
-(BOOL)ccTouchBegan:(UITouch*)touch withEvent:(UIEvent*)event {
runtime = 0.1f;
[ self ccTouchMoved:touch withEvent:event ];
return(YES);
}
-(void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event {
CGPoint pos;
if (runtime >= 0.1f) {
runtime -= 0.1f;
// get touch position and convert to screen coordinates
pos = [ touch locationInView: [ touch view ] ];
pos = [ [ CCDirector sharedDirector ] convertToGL:pos ];
// [ rippleImage addRipple:pos type:RIPPLE_TYPE_RUBBER strength:1.0f ];
[ rippleImage addRipple:pos type:RIPPLE_TYPE_WATER strength:2.0f ];
}
}
-(void)update:(ccTime)dt {
runtime += dt;
[ rippleImage update:dt ];
}
// on "dealloc" you need to release all your retained objects
- (void) dealloc
{
// in case you have something to dealloc, do it in this method
// in this particular example nothing needs to be released.
// cocos2d will automatically release all the children (Label)
// don't forget to call "super dealloc"
[super dealloc];
}
@end
- 1. Python: visualización de las ondas
- 2. ¿Cómo implementar las continuaciones?
- 3. Marca de agua en System.Windows.Forms.TextBox
- 4. Carrierwave añadir una marca de agua a las imágenes procesadas
- 5. Generador simple de ondas de sonido con SDL en C++
- 6. Marca de agua con PDFBox
- 7. Unidad de audio iOS - Creación de ondas sinusoidales estéreo
- 8. Nombre de usuario como marca de agua
- 9. GLSL para efectos de superficie de agua simples
- 10. Reproducción de ondas sinusoidales durante el tiempo desconocido
- 11. ¿Quién usa marca de agua de software?
- 12. ¿Cómo paso una ruta de marca de agua variable a un procesador de marca de agua de clip?
- 13. ffmpeg marca de agua sin vhook?
- 14. ¿Cómo simular el agua de manera económica en iOS?
- 15. Reporting Services 2005 - ¿Cómo incrustar una marca de agua?
- 16. ¿Cómo hacer un efecto de agua en TImage o algo?
- 17. ffmpeg y marca de agua png tema
- 18. Simulación de agua con una cuadrícula
- 19. ffmpeg marca de agua primeros 30 segundos
- 20. ¿Deberían las entidades implementar interfaces?
- 21. ¿Cómo podemos implementar SSL en las páginas de Drupal?
- 22. ¿Cómo implementar la aplicación que depende de las bibliotecas dinámicas?
- 23. Cómo implementar mejor las constantes de acceso público en C#
- 24. ¿Cómo implementar escasamente algo así como las alertas de Google?
- 25. ¿Cómo hago agua como se ve en Sea Stars?
- 26. ¿Es posible en Ghostscript para añadir marca de agua a todas las páginas en PDF
- 27. Simulando la resistencia al agua en Box2D
- 28. Marca de agua para el cuadro de texto en MVC3
- 29. Javascript "marcas de agua" para cuadros de texto
- 30. Medición del paquete de ondas de propagación de flatulencia humana en el iPhone
¿Logró el efecto, después de todo? – Thanks