2017-02-12 3 views
1

Ich habe eine Szene mit umkreisenden "Planeten", einige umkreisen andere und alle umkreisen eine Sonne in der Mitte.Niedriger FPS und hoher Speicherverbrauch mit Hintergrundbild

Wenn ich den Code mit dem folgenden ausführen, läuft es gut.

void draw() { 
background(0); 

Wenn ich dieses zweite Beispiel laufen, gibt es eine niedrige Bildrate und fast 1 GB Speicher verwendet wird.

void draw() { 

    PImage img; 
    img = loadImage("stars.jpg"); 
    background(img); 

Ist dies wegen des schlechten Codes und wenn ja, welcher Aspekt sollte geändert werden?

Ich brauche den Hintergrund jedes Bild neu gezeichnet, da sonst die beweglichen Objekte ihren Weg "ziehen", während sie sich bewegen.

Danke

Antwort

2

Sie nicht die loadImage() Funktion aus der draw() Funktion aufrufen sollte.

Sie lesen die Datei 60 Mal pro Sekunde, wenn Sie nur wirklich lesen müssen einmal. Deklarieren Sie Bilder auf Skizzenebene, laden Sie sie von setup(), und zeichnen Sie sie aus draw(). Gefällt mir:

PImage img; 

void setup(){ 
    img = loadImage("stars.jpg"); 
} 
void draw() { 
    background(img); 
} 
+0

Vielen Dank. Also, es war nicht die Zeichnung, die Probleme verursachte, es war Festplattenzugriffsgeschwindigkeiten 60x/s. –