Ich arbeite an einem iPhone-Spiel. Da musste ich Wasserwellen erzeugen. Ich weiß nicht, wie ich das bekommen soll. Ich habe gehört, dass es mit OpenGL gemacht werden kann. Ich bin sehr neu in diesem Konzept. Kann mich jemand führen?Wie implementiert man Wasserkräuselungen?
Antwort
Hier sind einige Ressourcen, die ich gefunden:
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
Sie wollen auch vielleicht durch GameDev's FAQ schwingen. Scrollen Sie nach unten zum Abschnitt "Water Rendering".
jk:
z=sin(x)+cos(y)
Noch gravierender ist, nicht die Quartz Composer im Grunde tun Wellen für Sie als eine der Auswirkungen Schichten? Oder war das nur für das iPhone 3.0 SDK angekündigt?
Das ist eine wirklich teure Routine. Es würde OpenGL in einem Spiel absolut töten. Ich nehme an, er will einen anständigen Wassereffekt, der Old-School-Textur-Mapping-Tricks bedeutet. – pestilence669
Verzeihung; Ich kenne. Ich scherzte. – dlamblin
Ich fand den Quellcode des Wasserkräuseleffekts so folgenden Code in Ihr Projekt zu implementieren und Ihr Problem auch zu lösen.
import "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. Wie implementiert man jScroll?
- 2. Wie implementiert man Textauswahl?
- 3. Wie man eine Kommentarbenachrichtigung implementiert?
- 4. Wie implementiert man JavaScript Cascades ..?
- 5. Wie implementiert man nested_form gem?
- 6. Wie man IDisposable richtig implementiert
- 7. Simplemodal - Wie man es implementiert?
- 8. Wie man bessere OOPs implementiert
- 9. Wie implementiert man einen Ansichtshalter?
- 10. Wie implementiert man JavaScript-Funktion?
- 11. Wie implementiert man einen Zustandsraumbaum?
- 12. Wie implementiert man das Prototypmuster?
- 13. Wie implementiert man Google Doc wie Texteditor?
- 14. Wie man Layout wie Palabre implementiert
- 15. Wie implementiert man Benutzerauthentifizierung mit Clojure-Befreier?
- 16. Wie implementiert man IListSource-Schnittstelle in C++
- 17. Wie implementiert man einen Desktop-Ticker?
- 18. Wie man Cruise Control mit QTP implementiert
- 19. Wie implementiert man einen Lazy-Setdefault?
- 20. Wie implementiert man diese Abfrage in Hibernate?
- 21. Wie implementiert man die Schnittstelle in Ada?
- 22. Wie implementiert man ein TreeSet in Java?
- 23. Wie implementiert man Webseitenspiegel mit jQuery?
- 24. Wie implementiert man die Linq OrderBy-Methode?
- 25. Wie implementiert man SVG 1.2 Tiny textArea?
- 26. Wie implementiert man eine generische RepositoryFactory?
- 27. Wie implementiert man Share-Aktion in Android?
- 28. Wie implementiert man einen generischen Encoder?
- 29. Wie implementiert man eine bequeme Initialisierung?
- 30. Wie implementiert man die Java-vergleichbare Schnittstelle?
Haben Sie den Effekt erzielen, nachdem alle? – Thanks