Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Delphie problem
Swagger Jackin - So 21.02.10 12:22
Titel: Delphie problem
Insgesamt sollen die Level wie bei Tetris sich verhalten. Hilfe !? :?: :bawling:
Xion - So 21.02.10 12:37
:welcome:
Swagger Jackin hat folgendes geschrieben : |
Also ich hab ein Puzzlespiel wie Collapse programmiert |
Eben mal geguckt, das ist scheinbar wie Tetris nur dass man nur einzelne Steine hat (also 1x1 Steine)
Swagger Jackin hat folgendes geschrieben : |
wenn ich die 30 Runden durchgespielt habe, soll das Spiel weiter machen, bloß 5 Runden zu den 30 Runden dazurechnen |
Also nach Runde 30 kommt dann 35? oder 5? :shock:
Swagger Jackin hat folgendes geschrieben : |
die Zeit soll etwas schneller werden |
Tja, da ist die Frage wie du das gelöst hast...mal ganz banal: Timer-Intervall runterstellen?
Swagger Jackin hat folgendes geschrieben : |
Gameover soll erst angezeigt werden, wenn die Kästchen wie Tetris den obrigen Rand berühren. |
Öh, da kommts auch drauf an wie du das gemacht hast...du musst selbst wissen wie du rauskriegst, wie hoch die Mauer ist.
Edit:
Fazit: Die Frage ist viel zu allgemein, als dass man da was sagen könnte.
Bergmann89 - So 21.02.10 12:54
Hey,
ich denke er meint nach Level 30 soll im 5-Level-Intervall die Zeit erhöht werden, wenn ich das richtig verstanden habe. Ob du ein Level hast welches durch 5 teilbar ist findest du mit mod raus. Den Rest hat Xion schon gesagt...
MfG Bergmann.
Swagger Jackin - So 21.02.10 13:07
oh Entschuldigung, nach 30 Runden startet das nächste Level mit 5 Extrarunden und die Zeit wird ein wenig schneller.
Bei dem Spiel zählt man von 30 Runden runter, wenn 0 Runden da steht soll das Spiel nicht wie jetzt noch Gameover anzeigen, sondern das neue Level anfangen.
Gibt es allgemeine "Beschreibung", dass jedes Level 5 Runden mehr dazukommen und die Zeit um 10 Milisekunden schneller wird, ich will ja nicht alle 20 Level einzeln beschreiben, sondern vielleicht mit kuze "Zusammenfassung der Level. Er soll jedes Level selbst schwerer gestalten.
mit Gameover das hab ich schon.
:oops:
Xion - So 21.02.10 13:13
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| if Runde=0 then begin Level:=Level+1; Runde:=(Level-1)*5+30; Timer.Intervall:=Timer.Intervall-10; end; |
Swagger Jackin - So 21.02.10 15:14
danke, ich probier es aus. :D :flehan: :flehan:
---
Moderiert von
Narses: Beiträge zusammengefasst---
Xion hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| if Runde=0 then begin Level:=Level+1; Runde:=(Level-1)*5+30; Timer.Intervall:=Timer.Intervall-10; end; | |
--> In der Statusbar zeigt er dann im nächsten Level -1 an und zählt weiter runter.
nach 10 Runden verringert sich die Zeit mehr als 10 Milisekunden und wird sehr viel schneller.
:?: :gruebel: :gruebel: :?
Sinspin - So 21.02.10 16:47
Hallo, ich kenne Collapse recht gut und kann mir vieleicht denken was du meinst. Für alle anderen wäre es vieleicht schön gewesen zu erklären wie das Spiel funktioniert.
Eine Runde ist kein Level, sondern eine neue Zeile zufällig gefärbte Steine die, jedenfalls bei Collapse, von unten in das Spielfeld geschoben werden. Es stapelt sich also von unten nach oben ein Turm aus Spielsteinen auf.
Mit steigendem Level erhöht sich die Anzahl der Zeilen und die Geschwindigkeit mit der die Zeilen nacheinander in das Spielfeld kommen.
Der Spieler bliebt dadurch am Leben das er mindestens drei zusammenhängende gleichfarbige Steine anclickt, die dadurch verschwinden. Die oben drüber liegenden Steine fallen dann nach unten in die enstandenen Lücken. Das Spiel ist vorbei wenn irgend ein Stein den oberen Spielfeldrand erreicht.
Vieleicht hast du es ja schon gemerkt aber so wird das nichts mit dem nächsten Level:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| if Runden = 0 then begin Zeit.Enabled := false; Spielfeld.Enabled := false; PunkteEnde := Punkte; Form13.ShowModal; Runden := 30; if Level = Level+1 then begin Runden :=(Level-1)*5+30; Zeit.Interval := 500; Zeit.Interval := Zeit.Interval-10; Zeit.Enabled := true; Spielfeld.Enabled := true; end; end; |
eher so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| if Runden = 0 then begin Zeit.Enabled := false; Spielfeld.Enabled := false; PunkteEnde := Punkte; Form13.ShowModal; Level := Level +1; Runden := (Level-1)*5+30; Zeit.Interval := 500 - (Level - 1) * 10; Zeit.Enabled := true; Spielfeld.Enabled := true; end; |
Im übrigen: dein Quelltext ist wirklich furchtbar Formatiert.
Swagger Jackin - So 21.02.10 17:48
Danke für deine Antwort
Das hat mir sehr gut weitergeholfen, aber kleines Problem: Runden bleiben bei 30 und nicht 35 und so weiter.
Sinspin - So 21.02.10 20:35
Wie schaut es jetzt aus? Wird das Level jetzt richtig um 1 erhöht immer wenn Runden Null ist?
Wenn ja, schau mal nach an welchen Stellen du Runden auf 30 setzt. Das sollte ja eigentlich nur einmal beim Start des Spieles passieren.
Swagger Jackin - So 21.02.10 21:56
läuft soweit, aber erhöht sich noch nicht um 1 oder 5
Swagger Jackin - Mo 22.02.10 11:05
Swagger Jackin hat folgendes geschrieben : |
läuft soweit, aber erhöht sich noch nicht um 1 oder 5 |
er rechnet wenn er bei 0 Runden ankommt, dann -1 Runden usw. und macht weiter.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!