Problem bei New game
Problem bei New game
Hey,
wenn in meinem Spiel die HP unter 1 sinken, öffnet sich autpmatisch der Game over Screen. Danach kommt man zum Hauptmenü zurück. Wenn man dort aber New game klickt, sind alle Objekte usw vom Spiel noch aktiviert, was für ein neues Spiel ziemlich unpraktisch ist.
Gibt es eine Möglichkeit, das zu verhindern, oder muss ich bei der New game cutscene extra jedes Objekt usw neu definieren und wieder in den Ursprungszustand setzen?
Danke im VOrraus, parkiii
wenn in meinem Spiel die HP unter 1 sinken, öffnet sich autpmatisch der Game over Screen. Danach kommt man zum Hauptmenü zurück. Wenn man dort aber New game klickt, sind alle Objekte usw vom Spiel noch aktiviert, was für ein neues Spiel ziemlich unpraktisch ist.
Gibt es eine Möglichkeit, das zu verhindern, oder muss ich bei der New game cutscene extra jedes Objekt usw neu definieren und wieder in den Ursprungszustand setzen?
Danke im VOrraus, parkiii
ist gibt immer wieder Probleme mit dem restart befehl zumindest bei parkiii und mir
wie man das direkt löst weiss ich auch nicht
aber bei meinem neuen Spiel klappt das weil ich eine eigene Lade Anzeige gemacht habe
das funktioniert so du bist im Menü und drückst auf den Button Start game danach
und in den richtigen Zustand versetzt alles wird schön sauber geladen. Zwichen durch kannst du immer move obj befehle einbauen die den Lade Balcken verschieben in meinem Spiel steht unten per textout was es gerade lädt . das wait am Ende ist wichtig wie lang es ist muss man ausprobieren,ist es nicht vorhanden stockt das Spiel am Anfang und genau das soll ja eine Lade sequenz verhindern . Vorteile: Sieht sehr professionell aus , die lade zeit am Anfang des Spiel wird verkürzt , restart befehl zeigt in diesem fall keine Schwächen , Lade Zeit kommt einem sehr schnell vor da das Gehirn das Spiel mit anderen Spielen vergleicht (meine Theorie)
Ich glaub das war jetzt zwar eher ein tutorial aber villeicht willst dus ja ein bauen Sieht zumindest bei mir verdammt gut aus und die Lade Zeit beträgt max 3 Sekunden
wie man das direkt löst weiss ich auch nicht
aber bei meinem neuen Spiel klappt das weil ich eine eigene Lade Anzeige gemacht habe
das funktioniert so du bist im Menü und drückst auf den Button Start game danach
- Loadroom(einen lerren Raum) ->cutscene (load) ->
Durch diese Load cutscene werden alle objekte an ihre Position geschobenCutscene load:
subroom(Lade anzeige) -> Moveobj(...) -> setobj(...)-> loadchar(...) -> loadroom(...) ->functions -> wait(2) -> return()
und in den richtigen Zustand versetzt alles wird schön sauber geladen. Zwichen durch kannst du immer move obj befehle einbauen die den Lade Balcken verschieben in meinem Spiel steht unten per textout was es gerade lädt . das wait am Ende ist wichtig wie lang es ist muss man ausprobieren,ist es nicht vorhanden stockt das Spiel am Anfang und genau das soll ja eine Lade sequenz verhindern . Vorteile: Sieht sehr professionell aus , die lade zeit am Anfang des Spiel wird verkürzt , restart befehl zeigt in diesem fall keine Schwächen , Lade Zeit kommt einem sehr schnell vor da das Gehirn das Spiel mit anderen Spielen vergleicht (meine Theorie)
Ich glaub das war jetzt zwar eher ein tutorial aber villeicht willst dus ja ein bauen Sieht zumindest bei mir verdammt gut aus und die Lade Zeit beträgt max 3 Sekunden
Ihr meint, durch den restart() Befehl werden nicht alle Variablen und Objekte zurückgesetzt? Dass parkiis Objekte nach Laden noch aktiviert sind, lässt ja darauf schließen. Aber dann wäre der restart() ja völlig nutzlos Leider habe ich aber auch festgestellt, dass es zu unerwünschten Ereignissen kommt, wenn man den loadgame() Befehl verwendet. Ich glaube, mich zu erinnern, dass jemand, der GCV 0.1 gespielt hatte, berichtet hat, dass nach dem Neuladen Variablen nicht zurückgesetzt wurden... oder so. Habe das nicht mehr näher untersucht, vielleicht auch einfach verdrängt weil ich dieses PaCDK-Problem gar nicht selbst beheben kann. Wäre noch genauer zu untersuchen.
Wujis Vorschlag zur Loadgame-Alternative schaut sicher professionel aus, aber es ist auch eine Heidenarbeit, alle Objekte und Variablen aus dem ganzen Spiel manuell zurückzusetzen. Bei einem Spiel in größerem Umfang ist das praktisch unmöglich!
Problem bei Wujis Vorschlag sehe ich auch in der Bestimmung der Wartezeit für wait(), schließlich hängt die benötigte Zeit von der jeweiligen Prozessorleistung ab.
Wujis Vorschlag zur Loadgame-Alternative schaut sicher professionel aus, aber es ist auch eine Heidenarbeit, alle Objekte und Variablen aus dem ganzen Spiel manuell zurückzusetzen. Bei einem Spiel in größerem Umfang ist das praktisch unmöglich!
Problem bei Wujis Vorschlag sehe ich auch in der Bestimmung der Wartezeit für wait(), schließlich hängt die benötigte Zeit von der jeweiligen Prozessorleistung ab.
Ok!?Wuji wrote:Lade Zeit kommt einem sehr schnell vor da das Gehirn das Spiel mit anderen Spielen vergleicht (meine Theorie)
Dass bei restart() und loadgame() (wenn sie während des laufenden Spiels benutzt werden) einige Objekte nicht auf ihren Ursprungszustand gesetzt werden ist ein altes Problem. Das hatten wir glaube ich schon beim Sherlock und auf jeden Fall bei GCV angesprochen.
Dieser Bug sollte eigentlich ganz oben auf der ToDo-Liste stehen, weil das schon ziemlich schwerwiegend ist, dadurch kommt es zu heftigen Bugs, aber irgendwie scheint das Problem doch nicht trivial zu sein^^.
Dieser Bug sollte eigentlich ganz oben auf der ToDo-Liste stehen, weil das schon ziemlich schwerwiegend ist, dadurch kommt es zu heftigen Bugs, aber irgendwie scheint das Problem doch nicht trivial zu sein^^.
Wenn du das Spiel komplett schließt und neu startest, ist garantiert alles zurückgesetzt, weil das PaCDK nichts noch außerhalb speichert. Also bleiben geänderte Werte, wenn überhaupt, nur so lange gespeichert, bis das Spiel beendet wird. Im saves-Ordner finden sich nur die Spielstände und die mit savenum() extra abgespeicherten Variablen (die ja auch nur dann wieder im Spiel geladen werden, wenn man loadnum() benutzt).
Wenn du dann allerdings nach dem Neustart wieder einen Spielstand lädst, hast du ja wieder das Problem, dass bis zum Laden geänderte Werte u.U. nicht aus dem Speicherstand übernommen werden. Wirklich "frisch" sind alle Werte nur ab dem Start der Spiel.exe und bis zum Laden eines Speicherstands.
Wenn du dann allerdings nach dem Neustart wieder einen Spielstand lädst, hast du ja wieder das Problem, dass bis zum Laden geänderte Werte u.U. nicht aus dem Speicherstand übernommen werden. Wirklich "frisch" sind alle Werte nur ab dem Start der Spiel.exe und bis zum Laden eines Speicherstands.
Last edited by Baelavay on 08 Jul 2009, 18:35, edited 1 time in total.
Naja mein spiel hat bis jetzt 3 Spielbare räume mit 54 objekten das komplette Spiel wird an die 100 Räume haben also ich denke das ist umfangreich.Baelavay wrote:
Wujis Vorschlag zur Loadgame-Alternative schaut sicher professionel aus, aber es ist auch eine Heidenarbeit, alle Objekte und Variablen aus dem ganzen Spiel manuell zurückzusetzen. Bei einem Spiel in größerem Umfang ist das praktisch unmöglich!
sobald man ein objekt hinzufügt schreibt man einfach auch einen neuen Befehl in die Cutscene
ja wenn ich Dawn of War anmachen dann dauert das laden bei meinemWuji wrote:Lade Zeit kommt einem sehr schnell vor da das Gehirn das Spiel mit anderen Spielen vergleicht (meine Theorie)
schlechten rechner 2-3 Minuten .
naja der wait befehl sorgt eben dafür das das Spiel am Anfang nicht stockt wie es bei vielen anderen Spielen ist.das ist halt eine sekunde un die restlichen 2 kommen von der Prozzessor leistungBaelavay wrote:Problem bei Wujis Vorschlag sehe ich auch in der Bestimmung der Wartezeit für wait(), schließlich hängt die benötigte Zeit von der jeweiligen Prozessorleistung ab.
und am längsten wir am Character und Raum geladen
wenn ich mein Spiel an mache dauert das laden max. 3 sekunden
da wünsch man sich manchmal das Laden wäre langsamer
( der Lade anzeige in meinem Spiel schaue ich am liebsten zu )
[quote=Wuji]sobald man ein objekt hinzufügt schreibt man einfach auch einen neuen Befehl in die Cutscene [/quote]
naja, da ich schon ca. 1/4 des spieles fertig gestellt habe, ist das eine enorme arbeit, alles zurückzusetzen. habs heute mal versucht und bei jedem testdurchgang erschien wieder etwas, was ich vergessen hatte.
ich denk mal, dass ich auch den quit () befehl verwenden werde (es sei denn, restart () würde plötzlich funktionieren ^^ )
trotzdem bin ich der meinung, dass eine solche ladeleiste schon eindruck hinterlässt, auch wenn sie nur so kurz abläuft, was natürlich auch ein positiver effekt ist.
naja, da ich schon ca. 1/4 des spieles fertig gestellt habe, ist das eine enorme arbeit, alles zurückzusetzen. habs heute mal versucht und bei jedem testdurchgang erschien wieder etwas, was ich vergessen hatte.
ich denk mal, dass ich auch den quit () befehl verwenden werde (es sei denn, restart () würde plötzlich funktionieren ^^ )
trotzdem bin ich der meinung, dass eine solche ladeleiste schon eindruck hinterlässt, auch wenn sie nur so kurz abläuft, was natürlich auch ein positiver effekt ist.
Solange man sie nicht 5 Minuten anschauen muß, wie beim Booten von so vielen Vista-Rechnern, dann ist doch alles OKtrotzdem bin ich der meinung, dass eine solche ladeleiste schon eindruck hinterlässt, auch wenn sie nur so kurz abläuft, was natürlich auch ein positiver effekt ist.
[img]http://img269.imageshack.us/img269/4060/enjoylachibalken.png[/img]
Ich hatte bei meinem Spiel seltsamerweise genau den umgekehrten Fall. In meinem letzten Raum habe ich im on(loop) Skript einige Anweisungen, die nur ausgeführt werden, wenn eine bestimmte Aktion im Spiel noch nicht ausgeführt wurde:Baelavay wrote:Wenn du das Spiel komplett schließt und neu startest, ist garantiert alles zurückgesetzt, weil das PaCDK nichts noch außerhalb speichert. Also bleiben geänderte Werte, wenn überhaupt, nur so lange gespeichert, bis das Spiel beendet wird. Im saves-Ordner finden sich nur die Spielstände und die mit savenum() extra abgespeicherten Variablen (die ja auch nur dann wieder im Spiel geladen werden, wenn man loadnum() benutzt).
Wenn du dann allerdings nach dem Neustart wieder einen Spielstand lädst, hast du ja wieder das Problem, dass bis zum Laden geänderte Werte u.U. nicht aus dem Speicherstand übernommen werden. Wirklich "frisch" sind alle Werte nur ab dem Start der Spiel.exe und bis zum Laden eines Speicherstands.
Code: Select all
on(loop1)
{
if_bool(aktion_durchgeführt; false)
{
(* blablabla *)
}
}
Wenn ich dann mit restart() das Spiel resette und den Spielstand nochmal lade, funktioniert alles.