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

1

14.09.2009, 15:21

Forschung in Spielem

Hallo ich bin neu, hab mich Extra angemeldet wegen erstemal einer Frage und zwar.


Wie mus mann solche eine Funktion Forschung in Spielen handhaben. Also wenn mann estwas erforscht vergeht die zeit und wenn die Forschung fertig ist stop es.

Wie sollte mann sowas handhaben, also beim Start der Forschung ein Zeitspempel in eine TXT datei schreiben ? hilfe ! :D

2

14.09.2009, 15:28

du legst die zeit in millisekunden, die die forschung brauchen soll in eine variable. dann ziehst du in jedem frame die dauer des frames dieser variable ab. sobald sie kleiner-gleich null ist, kannst du deine forschung beenden.

3

14.09.2009, 15:29

Nenne doch mal einige Beispiele! Und warum moechtest du irgendetwas in eine Datei schreiben?
If it were not for laughter, there would be no Tao.

4

14.09.2009, 15:30

Sowas wie bei Roller Coaster?
Du könntest ja eine Funktion in deine GameLoop schreiben das die ganze Zeit die Zeit(hm hört sich komisch an) überprüft. Also wenn bei jedem durchlauf der Schleife eine Sekunde vergangen ist rechne z.B eine 1 zu einer Deklarierten Variable.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
void Forschung_fängt_an()
{
int Zeit
//Wenn die GameLoop aufgerufen wurde rechne eine Sekunde zu Zeit dazu

if(GameLoop)
{
Zeit+= 1;
}
//Wenn Tausend Sekunden vorbei sind gebe aus das die Forschung zu ende ist...

if(Zeit == 1000)
{
//Forschung vorbei

}
Metal ist keine Musik sondern eine Religion.

5

14.09.2009, 15:32

Oky danke, Probiere ich mal ich werde erstmal alles durch testen...

Na Z.B die Forschung mus/kann ja eine auswirkung haben, die mus das Programm ja einlesen. Z.B wenn bei zeile die nummer 100 steh heist es für das programm er soll auswirkung 100 dort machen und wenn eben 300 da steht soll er auswirkung abc machen. deshalb ich kann ja nicht in arbeitpeicher machen dann ist es ja weg wenn mans beendet..


Also wenn die Forschung Fertig ist. mus das ja irgend wo gespeichert werden sonst ist die ja wieder zum forschen da..

6

14.09.2009, 15:33

Du meinst so etwas wie in einem Strategiespiel, wo man auf forschen klickt und nach einer gewissen zeitspanne steht eine neue Baufunktion zur Verfügung?

Wenn ja, da gibt es verschiedene Möglichkeiten.
Bsp.: Du könntest einen Thread im Huntergrund laufen lassen, der alle 100ms den Status dieser Forschungvorgänge aktualisiert.
Dann kannst du einfach einen Wert runterzählen. Danach prüfst du ob einer bei 0 ist, wenn ja ist er fertig.

also so in etwa

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
while(running)
{
 for(size_t i=0;i<inDevelopement.size();i++)
 {
   // zähle den aktuellen Zähler runter


   // prüfe den aktuellen zähler

   // wenn Zähler = 0 => aus der Liste entfernen + Event auslösen

 }
 sleep(100);
}

7

14.09.2009, 15:34

des ist ja fast deselbe wie ich meinte
Metal ist keine Musik sondern eine Religion.

8

14.09.2009, 15:36

Zitat von »"Fabian Kock"«

des ist ja fast deselbe wie ich meinte



ich mach zwar mit Vb.net, aber werde das dan umsetzen ist ja fast genauso.

9

14.09.2009, 15:37

Zitat von »"chriss"«

Du meinst so etwas wie in einem Strategiespiel, wo man auf forschen klickt und nach einer gewissen zeitspanne steht eine neue Baufunktion zur Verfügung?
[/cpp]



ja weis ich nicht, ich bau da was rum eben und macht spass villeicht für sowas oder anderes..

10

14.09.2009, 15:39

Nochmal, warum soll es in einer Datei stehen? Willst du den Spielstand abspeichern oder was wie wo?

Zitat

Na Z.B die Forschung mus/kann ja eine auswirkung haben, die mus das Programm ja einlesen.

Nein, "muessen" muss nicht sein.
If it were not for laughter, there would be no Tao.

Werbeanzeige