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

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

1

31.07.2008, 00:06

[Erledigt] HGE Radom seed & Radom Float problem

Huhu,

Ich konnte den Beitrag nicht ganz zuordnen deshalb ggf. verschieben!

Nun zu meinem Problem:

Ich möchte auf einem 1024*768 Background zufällig Dinge Rendern.
Nämlich kleine Minen. Die Minen haben eine Struct mit folgendem Inhalt:

C-/C++-Quelltext

1
2
3
4
5
6
7
struct SMines
{
    float x;
    float y;
    int iTime;
    hgeSprite *m_pMine;
};


So nun möchte ich beim erzeugen einer Mine zufällig x und y wählen das mache ich wie folgt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void CItem::AddMine()
{
    m_pHgE->Random_Seed(0);
    if(m_vMines.size() <=5)
    {
    SMines Mine;
    Mine.x = m_pHgE->Random_Float(35,960);
    Mine.y = m_pHgE->Random_Float(35,730);
    Mine.iTime = 1000;
    Mine.m_pMine = new hgeSprite(m_pHgE->Texture_Load("Mine.png"),0,0,32,32);
    m_vMines.push_back(Mine);
    }
    
}

Das Problem ist nur das sich X und Y Koordinaten der einzelnen Minen sehr ähneln.. Seed(0) bedeutet das er die Zeit als ReferenzPunkt nehmen soll..

Beim Rendern sieht es nun folgendermaßen aus:
http://img258.imageshack.us/img258/1820/screenrv2.jpg

Wie ihr seht ähneln sich X und Y sehr! .. Woran liegt das? Vielleicht an dem Seed(0) weil beim erstellen der x und y Pos die selbe Zeit vorliegt und deshalb die selben Koordinaten erstellt werden? Und wie kann ich das Problem lösen hat jemand eine Idee?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

31.07.2008, 00:14

Seed wird normalerweise lediglich einmal (im ganzen Programm) aufgerufen. Dann sollte das genug zufällig sein.

Toa

Alter Hase

  • »Toa« ist der Autor dieses Themas

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

3

31.07.2008, 00:25

Oki daran lags xD ..irgendwie hilfst du mir immer als erster ^.^
Bin dann ma weiter lernen ..danke drakon =)

Werbeanzeige