Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Mathias

Frischling

Beiträge: 29

Wohnort: Berlin

Beruf: Schüler

  • Private Nachricht senden

11

04.05.2005, 19:39

Zitat von »"bassdscho"«

Aber dann kann ich doch gleich schreiben:

C-/C++-Quelltext

1
2
3
this->iRotDirZ = tbIntRandom(-1,1);
if(this->iRotDirZ == 0)
this->iRotDirZ = -1;



Natürlich müsste die Variable iAdd dafür statisch sein.
Das soll bezwecken, damit abwechseln 1 bzw. -1 gesetzt wird.
Denn wenn du immer -1 oder immer 1 zuweist dann nimmt die Variable
ja in 2 von 3 Fällen den gleichen Wert an. Naja, auch egal. Das war
ja auch nicht unbedingt dein Problem. :P

PD

unregistriert

12

04.05.2005, 19:40

Zitat von »"Nox"«

Da fällt mir ein:
ADM_OF_X_AXE wie groß ist das? weil bei mir hat ne schleife ewig dedauert, weil die var zu klein war.....


Höh? Je kleiner die Variable desto weniger Schleifen Durchläufe = schneller... ansonsten machst du das was falsch ^^

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

13

05.05.2005, 03:13

Ich meinte die Var konnte nur den Zahlenbereich von -65000 und nen paar zwerquetschte, bis zu der selben zahl im positiven. Die gefordete war aber wesentlich mehr.....

14

05.05.2005, 06:06

sag mal was genau wilslt du hier eigentl. machen?
du hast in deiner klasse 3 vektoren die du mit 1 oder -1 initialisieren willst und
das ganze zufallsbestimmt oder was?

was soll denn das hier dann bitte?

Zitat


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Rotationrichtungen festlegen

            while(bRunning == true)
            {
                this->iRotDirX = tbIntRandom(-1,1);
                if(iRotDirX == -1 || iRotDirX == 1)
                    bRunning = false;
            }
            bRunning = true;

            while(bRunning == true)
            {
                this->iRotDirY = tbIntRandom(-1,1);
                if(iRotDirY == -1 || iRotDirY == 1)
                    bRunning = false;
            }
            bRunning = true;

            while(bRunning == true)
            {
                this->iRotDirZ = tbIntRandom(-1,1);
                if(this->iRotDirZ == (-1) || this->iRotDirZ == 1)
                    bRunning = false;
            }



das is ja totale rechenzeitverschwendung

C-/C++-Quelltext

1
2
3
 this->iRotDirX = ((rand()%2)?-1:1);
 this->iRotDirY = ((rand()%2)?-1:1);
 this->iRotDirZ = ((rand()%2)?-1:1);


das tuts auch !.

und dann noch was also du hast 512 instanzen dieser klasse?
und die zu erstellen dauert bei dir 2 minuten????
das is total irre und kann eigentl. auch nicht sein.
außer tbIntRandom() is irgendwie total seltsam konstruiert.
allerdings weiß ich auch nicht wie lange der rand() befehl so normalerweise rechnet......
aber 2 minuten...heillige scheiße

Anonymous

unregistriert

15

05.05.2005, 13:59

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Konstanten

#define RASTER_OF_PLANE_X 750
#define RASTER_OF_PLANE_Y_Z (RASTER_OF_PLANE_X / 2)
#define GROUND_PLANE_LENGTH 6000
#define SIDE_PLANE_LENGTH 6000
#define ADM_OF_X_AXE (SIDE_PLANE_LENGTH / RASTER_OF_PLANE_X)
#define ADM_OF_Y_Z_AXE (GROUND_PLANE_LENGTH / RASTER_OF_PLANE_Y_Z)

// Das ist die Deklaration

CMine*                  MineArray[ADM_OF_X_AXE][ADM_OF_Y_Z_AXE][ADM_OF_Y_Z_AXE];

// Und hier kommt der Konstruktoraufruf

for(int iX = 0; iX < ADM_OF_X_AXE; iX++)
    {
        for(int iY = 0; iY < ADM_OF_Y_Z_AXE; iY++)
        {
            for(int iZ = 0; iZ < ADM_OF_Y_Z_AXE; iZ++)
            {
                this->MineArray[iX][iY][iZ] = new CMine(tbVector3(iX * RASTER_OF_PLANE_X, iY * RASTER_OF_PLANE_Y_Z, iZ * RASTER_OF_PLANE_Y_Z), 0.5f, fTime);
            }
        }
    }


die 2 min waren geschätzt. Jetzt hab ichs mal gestoppt:
Centrino 1.5Ghz 512Ram Notebook ans Stromnetzt angeschlossen - 1Min 9 sek
Athlon 3Ghz 512 Ram - 22 sek

Des kann aber auch nicht sein das ich auf meinem Notebook des ja eigentlich auch nicht das lahmste ist so lang brauch, oder? Ich kann ja nicht in die Systemanforderungen schreiben mind Athlon 2 Ghz erforderlich !!

:crying: Auch wenn ich alles aus dem Konstruktor auskommentiere dann dauert das auch nicht viel kürzer. Beim Notebook ist es nur 1 sek schneller! :crying:

bassdscho

Alter Hase

  • »bassdscho« ist der Autor dieses Themas

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

16

05.05.2005, 14:05

das drüber war ich
Verlierer jammern immer von wegen ihr bestes!
Sieger gehen nach Hause und vögeln die Ballkönigin!

AXA

Frischling

  • Private Nachricht senden

17

12.06.2005, 11:46

Hi

Also das dauert ja wirklich ziemlich lange ca. 1min *LOL*.

Im Buch von David gibt es doch ein Beispielprogramm: Da werden sehr viele Würfel gezeichnet.

Ich weiß es auch nicht so genau. :P.

Und ist es überhaupt nötig soviele Modele zu erstellen bzw zu Zeichnen ???? Wie groß ist denn ein Modell ?? (Also wenn es z.B soviele Polygone hat wie aus die Modelle aus Doom 3) wären die 1-2 min logisch oder nicht ???
Aktuelles Projekt: Geheim

wird diese Projekt ein erfolg gründe ich
ein Team !!!

bassdscho

Alter Hase

  • »bassdscho« ist der Autor dieses Themas

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

18

12.06.2005, 13:05

Es wird nur ein Model geladen und halt 512 Instanzen einer Klasse erstellt.
Bin bis jetzt aber noch nicht dahinter gekommen warum das solange dauert.
Verlierer jammern immer von wegen ihr bestes!
Sieger gehen nach Hause und vögeln die Ballkönigin!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

19

12.06.2005, 13:18

Bau doch mal ein paar "Stoppuhren" ein.
Also Du gibst an mehreren Punkten innerhalb des Konstruktors die aktuelle Zeit aus (timeGetTime()). Dann kannst Du hinterher sehen, was so lange dauert.

bassdscho

Alter Hase

  • »bassdscho« ist der Autor dieses Themas

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

20

13.06.2005, 18:30

ich hab mal alles im Kosntuktor auskommentiert bis auf zwei Deklarationen(2 Integer Vars).
Da dauerte es aber immer noch ziemlich lang
Verlierer jammern immer von wegen ihr bestes!
Sieger gehen nach Hause und vögeln die Ballkönigin!

Werbeanzeige