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

41

07.07.2004, 17:11

nein du hast mich falsch verstanden...

er geht in den 2. und 3. net rein :)

42

09.07.2004, 10:53

funzt nu...

hab aber ne andere frage:
die flugrichtung beim abwurf des balles wird ja per zufall berechnet. allerdings wenn ich das proggi neu kompiliere und ihn das erste mal abwerfe fliegt er immer leicht nach links

43

12.07.2004, 18:53

doch nochtwas...kann ich irgendwie ne zahl an nen string anhängen...

sprintf(m_cExtraText, "Multiplikator" + (char)(iMulti));

so ähnlich muss das gehn aber das funzt net

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

44

12.07.2004, 20:17

...ähm sry aber lesen sollte helfen aber gut....
sprintf(destring,"hallo ich bin ein string %s und ich ein float %f", string, float);

45

13.07.2004, 19:12

argh nein...daran hab ich jetz ger net gedacht :)

thx

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

46

14.07.2004, 12:22

Zitat


hab aber ne andere frage:
die flugrichtung beim abwurf des balles wird ja per zufall berechnet. allerdings wenn ich das proggi neu kompiliere und ihn das erste mal abwerfe fliegt er immer leicht nach links


Das ist normal, Zufallszahlen im Computer sind ja deterministisch (d.h. immer gleich). Du must z.B. die aktuelle Zeit nehmen, die ja relativ willkürlich ist, und damit den Zufallszahlengenerator initialisieren. Lies die Hilfe zu den Zufallszahlen durch.
"Games are algorithmic entertainment."

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

47

14.07.2004, 12:29

Das ist ein Bug in der Engine.
Eigentlich sollte sie den Zufallsgenerator bei jedem Start mit der Systemzeit initialisieren, sodass eben nicht immer dieselbe Zahlenfolge kommt. Einfach srand(timeGetTime()); in das eigene Programm einbauen, dann klappt es.

48

16.07.2004, 11:41

aha...endlich mal eine offizielle bestätigung dass auch du nur ein mensch bist ^^

49

19.07.2004, 19:29

doch noch ne frage...wenn ich einen magneten einbauen will der den ball immer gesthält sobald er am schläger ist rendert er den ball nicht mehr sobald er den schläger berührt:

Game.cpp:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if((m_aExtra[11].m_bActive == TRUE) && (m_fExtraTime >= 0.0f))
    {   
        sprintf(m_cExtraText, "Magnet");
        m_fExtraTime -= fTime;
        
        for(int iExtra = 0; iExtra < 15; iExtra++)
        {
            if(iExtra != 11)
            {
                m_aExtra[iExtra].m_bActive = FALSE;
            }
        }
    }
    else if((m_aExtra[11].m_bActive) && (m_fExtraTime < 0.0f))
    {
            sprintf(m_cExtraText, "");
            m_aExtra[11].m_bActive = FALSE;
    }



Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
if(g_pbButtons[TB_KEY_SPACE] &&
            m_aBall[0].m_bExists &&
            m_aBall[0].m_bGrabbed &&
            m_aExtra[11].m_bActive)
    {
        g_pImpact->m_apSound[3]->PlayAvailableBuffer();
        m_aBall[0].m_vPosition = (0.0f, 0.0f, 0.25f);
        m_aBall[0].m_vVelocity = (0.0f);
        m_aBall[0].m_bGrabbed = FALSE;
        m_aBall[0].m_vPosition += m_vPaddlePos;
        m_aBall[0].m_vVelocity.x = 0.0f;
        m_aBall[0].m_vVelocity.y = 0.0f;
        m_aBall[0].m_vVelocity.z = 9.0f;
        m_aBall[0].m_vVelocity += m_vPaddleVel;
        m_aBall[0].m_vPosition.z += 0.1f;
    }
    else if(g_pbButtons[TB_KEY_SPACE] &&
            m_aBall[0].m_bExists &&
            m_aBall[0].m_bGrabbed &&
            !m_aExtra[11].m_bActive)
    {
        g_pImpact->m_apSound[3]->PlayAvailableBuffer();
        m_aBall[0].m_bGrabbed = FALSE;
        m_aBall[0].m_vPosition += m_vPaddlePos;
        m_aBall[0].m_vVelocity.x = tbFloatRandom(-4.0f, 4.0f);
        m_aBall[0].m_vVelocity.y = 0.0f;
        m_aBall[0].m_vVelocity.z = tbFloatRandom(8.0f, 10.0f);
        m_aBall[0].m_vVelocity += m_vPaddleVel;
        m_aBall[0].m_vPosition.z += 0.1f;
    }



Ball.cpp:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
if(m_vPosition.x >= m_pGame->m_vPaddlePos.x - 1.25f &&
        m_vPosition.x <= m_pGame->m_vPaddlePos.x + 1.25f &&
        m_vPosition.z <= m_pGame->m_vPaddlePos.z + 0.25f &&
        m_vPosition.z >= m_pGame->m_vPaddlePos.z - 0.25f)
        {
            if((m_pGame->m_aExtra[11].m_bActive == TRUE) && (m_pGame->m_fExtraTime >= 0.0f))
            {   
                m_bGrabbed = TRUE;
            }
            else if((m_pGame->m_aExtra[11].m_bActive == TRUE) && (m_pGame->m_fExtraTime < 0.0f))
            {
                m_vVelocity.z *= -1.0f;
                iBuffer = g_pImpact->m_apSound[5]->PlayAvailableBuffer();
            
                if(iBuffer != -1)
                {
                    g_pImpact->m_apSound[5]->SetFrequency(iBuffer, 44100 + tbIntRandom(-5000, 5000));
                }

                sprintf(m_pGame->m_cExtraText, "");

                if((m_pGame->m_aExtra[1].m_bActive == TRUE) && (m_pGame->m_fExtraTime >= 0.0f))
                {
                    m_vVelocity.x += m_pGame->m_vPaddleVel.x * 0.5f;
                    m_pGame->m_fExtraTime -= fTime; 
                }
                else if((m_pGame->m_aExtra[1].m_bActive == TRUE) && (m_pGame->m_fExtraTime < 0.0f))
                {
                    m_vVelocity.x -= m_pGame->m_vPaddleVel.x * 0.5f;
                }
                else
                {
                    m_vVelocity.x -= m_pGame->m_vPaddleVel.x * 0.5f;
                }
                
                m_pGame->m_aExtra[11].m_bActive = FALSE;
            }

Werbeanzeige