Zurück   Flashforum > Software > 3D

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-11-2008, 16:21   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Ort: Köln
Beiträge: 25
Papervision Great White - Performanceproblem

Hallo zusammen.

Ich bin gerade dabei ein Memoryspiel in Flash zu bauen. Die drehanimation der Karten möchte ich gerne mit Papervision realisieren. Soweit kriege ich das auch alles hin. Erstelle ich mir nur z.B.4 Karten (cubes) läufts prima. Bei 20 Karten ists allerdings nurnoch am ruckeln. Die drehbewegung tweene ich mit dem Caurinatweener.

Woran kann das liegen?

Als Grundlage habe ich die PaperBase Klasse von http://papervision2.com/3-creating-a...base-template/ verwendet.

hier erstelle ich die objekte:
PHP-Code:
override protected function init3d():void {
            var 
i:uint=0;
            var 
j:uint=0;

            for (
j=0j<2j++) {
                for (
i=0i<2i++) {
                    var 
cardX:Number=-(cardW/2)+(i*cardW)+150;
                    var 
cardY:Number=-(cardH/2)+(j*cardH);
                    var 
card:Memory3DCard=new Memory3DCard(cardXcardYpreloader.images[1], preloader.images[3]);
                    
scene.addChild(card);
                    
card.x=cardX;
                    
card.y=cardY;
                }
            }
        } 
und dies ist meine Klasse für die Karten:
PHP-Code:
package {

    
import org.papervision3d.objects.DisplayObject3D;
    
import org.papervision3d.objects.primitives.Cube;
    
import org.papervision3d.materials.BitmapMaterial;
    
import org.papervision3d.materials.ColorMaterial;
    
import org.papervision3d.events.InteractiveScene3DEvent;
    
import org.papervision3d.materials.utils.MaterialsList;
    
    
import flash.display.Bitmap;
    
    
import caurina.transitions.Tweener;

    public class 
Memory3DCard extends org.papervision3d.objects.DisplayObject3D {
        
        private var 
card:Cube;
        private var 
m1:BitmapMaterial;
        private var 
m2:BitmapMaterial;
        private var 
m3:ColorMaterial;
        
        private var 
isFrontside:Boolean=true;

        public function 
Memory3DCard(cx:Numbercy:Numberfront:Bitmapback:Bitmap) {
            
trace("new card");
            
m1 = new BitmapMaterial(front.bitmapData);
            
m2 = new BitmapMaterial(back.bitmapData);
            
m3 = new ColorMaterial(0x000000);
            
            
m1.interactive true;
            
m2.interactive true;

            var 
materialsList:MaterialsList = new MaterialsList();
            
materialsList.addMaterial(m3"all");
            
materialsList.addMaterial(m1"back");
            
materialsList.addMaterial(m2"front");
            
            

            
card = new Cube(materialsList75,565101010);
            
addChild(card);
            
card.addEventListenerInteractiveScene3DEvent.OBJECT_PRESSrotatefalse0true);
        }
        private function 
rotatee:InteractiveScene3DEvent ):void {
            var 
r:uint;
            if (
isFrontside) {
                
r=180;
                
isFrontside=false;
            } else {
                
r=0;
                
isFrontside=true;                
            }
            var 
myZ:uint=card.z;
            
Tweener.addTween(card, { z:myZ-150time:1transition:"linear"} );
            
Tweener.addTween(card, { z:myZtime:1delay:1transition:"linear"} );
            
Tweener.addTween(card, { rotationY:rtime:1.6delay:0.2transition:"linear"} );
        }
    }

Für einen Optimierungstip wäre ich sehr dankbar.

Grüße

Arne
xarneax ist offline   Mit Zitat antworten
Alt 24-11-2008, 18:29   #2 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 152
Hi,

sry viel kann ich dir nicht sagen: Ich hatte mal dasselbe Problem mit ein paar spheres, das einzige was geholfen hat, war die Anzahl der Segmente runterzuschrauben.

Bei dir fällt mir noch ein: wenn du einfach planes verwendest? Und den Tiefeneffekt über die Grafik simulierst? (so als schnelle Idee...)

lg
grizu ist offline   Mit Zitat antworten
Alt 24-11-2008, 18:36   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Ort: Köln
Beiträge: 25
ah.. und doch so einfach....

grizu, ich danke dir. segmente runter und schon liefs wie ne eins.

tja, manchmal sieht man den wald vor lauter bäumen nicht!

Planes kann ich leider nicht verwenden, da ich bei 180grad drehung die kante brauche.

grüße

der arne
xarneax ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
papervision, performance

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:42 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele