Bomberman Klon (Community Tutorial) BMAX

Gehe zu Seite 1, 2, 3, 4, 5, 6  Weiter

Worklogs Bomberman Klon (Community Tutorial) BMAX Kommentare

Nix TOT ;)

Dienstag, 21. September 2010 um 00:51 Uhr von KirkZero

Nur mal kurz angemerkt...
Das Projekt ist nicht tot... ich bin z.Z. einfach ein wenig im Stress.
Privat, Arbeit und andere Dinge. Aber nichts wirklich dramatisches.
Nur mal, um den Anfragen schonmal eine Antwort zu geben...

es folgen bald (denke in den nächsten 3 wochen nach und nach):

- Abfrage, ob Spieler in Explosion steht... also weggebombt wird
- natürlich das Menü
- Story Modus (wobei ich da ein eine Art Wellenangriff gedacht habe, welchen man alleine oder zu zweit bestreiten kann und nach einer gewissen anzahl von Gegnerwellen dann ein Endboss auf dem Plan steht
- mit dem Storymodus natürlich eine kleine KI für die Gegner (nicht zu viel erwarten... bin ja noch noob)

und wenn all diese Punkte geschafft sind, hab ich mein erstes Ziel erreicht... ein Bomberman Klon Grundgerüßt, was hoffentlich nach belieben erweitert werden kann. Würde dann damit das Tutorial erstmal abschliessen, bis ich mich ins Onlinespielen eingearbeitet habe... werde, wenn ich das dann auch wirklich mache, genau so darüber berichten, wie bisher.

Aber bis dahin, würde ich mich sehr freuen, wenn einige die Lust und auch die Zeit haben, das ganze, sowie es als Grundgerüßt steht, mit mir zu Formatieren und es als Beitrag in der FAQ und Tutorials sektion Posten.

Also ein wenig Gedult, mache bald weiter. (Da ich nun lange nicht mehr dran war... eine Prima Möglichkeit, zu checken, ob ich den Code gut genug kommentiert habe, um als Progger der ganzen Sache wieder rein zu finden Wink (nagut, solange ist es nun auch nicht her) )

Donnerstag, 9. September 2010 um 18:16 Uhr von hamZta

Hey!

Zu deinem Kommentar:

Wenn du alles sauber und fertig hast kriegst du natürlich soviel Platz wie du brauchst. Ich hoffe, dass sich hier einige finden die dir bei der Formatierung/Überarbeiten der Texte helfen werden, das fände ich großartig.

Zum Multiplayer:
Es ist dein Projekt, weder kann noch will ich dir vorschreiben was du damit machst Wink Wenn alles andere fertig ist hab ich natürlich kein Problem damit, wenn du dich an neue Hürden wagst - im Gegenteil. Wenn wieder was für die Community brauchbares dabei rauskommt ist es herzlich willkommen!

hamZta

Mittwoch, 8. September 2010 um 21:26 Uhr von KirkZero

Das ist ja dann ca 8 mal langsamer... hui...
ok... ich denke zwar, das das nicht so viel ausmachen würde in meinem Programm... aber da ich ganz zum Schluss das Ganze ja noch versuchen will, online fähig zu machen, ist es sicher besser, wenn ich die schnellere Variante nehme, also es so lasse, wie es ist (benutze bei der Feldermittlung ja auch schon Mod).

Dann werde ich es zumindest im nächsten Eintrag erwähnen, das es auch einzeilig geht. Denn auch wenn es langsamer sein sollte, ist es für mich doch sehr Interessant, auch andere Lösungsansätze/-Möglichkeiten zu sehen. Das bringt einen dazu, auch nochmal über Getanes nachzudenken. Auf was man nicht alles kommt Wink

*Merke: gelegentlich auch mal die Geschwindigkeit im Auge behalten*

Hab bisher noch nie die Zeit gemessen, bei den Sachen, die ich so (auch auserhalb des Bombermann Klons) gemacht habe. Sollte ich vielleicht gelegentlich mal machen, vorallem, wenn ich mich zwischen mehreren Varianten Entscheiden muss.

Danke für deinen Kommentar und die neue Erkenntnis Wink Thunder!!!

Mittwoch, 8. September 2010 um 21:11 Uhr von Thunder

Naja, jetzt kommts drauf an, worauf du Wert legst. Denn deine Variante (KirkZero) ist afaik um ein vielfaches schneller.
Ich habe mir dazu zwei Programme geschrieben bei denen 5 Millionen Mal eine Variable um 1 erhöht und wenn es 50 wird auf 0 gesetzt wird bzw um 1 erhöht und mit 50 moduliert wird. Dabei wird die Zeit der Operationen gemessen.
(50 war willkürlich gewählt)
Zeiten:
- mit Modulo: ~260 ms
- mit If: ~32 ms

Das ganze liegt daran, dass die Modulo-Operation immer ausgeführt wird; egal, ob die Variable jetzt wirklich durch sie verändert werden würde oder nicht.

Gut, ich gebe zu: das sind immerhin 5 Millionen Operationen, aber ich würde es zumindest bedenken.

mfg Thunder

Mittwoch, 8. September 2010 um 20:31 Uhr von KirkZero

@n-Halbleiter
Erstmal Danke!

Jetzt du deinem Vorschlag...
Das ist ja mal wieder ne kleine aber feine Sache.
Ich sollte vielleicht mal aufhören, immer gleich mit If Then zu hantieren. Obwohl ich bei vielen Ansätzen oft schon überlegt habe, ob es nicht ne andere, bessere Lösung gibt, find ich meistens keine (zumindest nicht auf anhieb).

Das werd ich mit einbauen und mal im Hinterkopf behalten!!!
Spart ja auch wieder eine Zeile Wink

Danke dir!!!

Mittwoch, 8. September 2010 um 19:14 Uhr von n-Halbleiter

Folgendes

Code: [AUSKLAPPEN]


BewegungsFrame:+1
If BewegungsFrame > BEWEGUNGSFRAMES Then BewegungsFrame=0


lässt sich auch noch anders schreiben, und zwar mit Mod:
Code: [AUSKLAPPEN]

BewegungsFrame=(BewegungsFrame+1) Mod BEWEGUNGSFRAMES


Hierbei muss allerdings die Konstante "BEWEGUNGSFRAMES" um 1 erhöht werden.

Ansonsten: Wieder ein schöner Eintrag!

Mittwoch, 8. September 2010 um 15:51 Uhr von KirkZero

Ach herjeh...

Das sind noch reste von der früheren Abfrage. Die sind natürlich absolut unnütz!!!
Ich hatte ja die Richtungsabfragen am Anfange des Worklogs noch so festgelegt:

[code]
If KeyDown(Taste_Hoch[SpielerNr]) And MilliSecs() > BewegungsTimer+BewegungsPause
[code]

Da hab ich echt geschlafen. Werd ich sofort korrigieren!

Danke Xeres!

Mittwoch, 8. September 2010 um 15:19 Uhr von Xeres

Frage bezüglich dieses Abschnitts:
Code: [AUSKLAPPEN]

ElseIf    KeyDown(Taste_Runter[SpielerNr]) And MilliSecs()
Wozu Millisecs? Die Funktion liefert immer einen Wert >0, dass sollte das selbe wie "And True" ergeben - und das kann man weglassen...

Mittwoch, 8. September 2010 um 01:58 Uhr von KirkZero

Da hab ich mich wohl unglücklich ausgedrückt...
Ich möchte sie im gesammten Code benutzen können, ohne irgendwelche TypeNamen vorranzuschreiben.
Habs im Worklog Editiert.
Danke für den Hinweis!

Mittwoch, 8. September 2010 um 00:53 Uhr von n-Halbleiter

KirkZero, du schriebtest folgendes: "Die Konstanten ganz am Anfang erleichtern mir nur wieder den Umgang mit Zahlen und werden ausserhalb des Types angelegt, damit ich sie überall benutzen kann."

Du kannst auch Konstanten/Globalen, die in einem Type definiert sind, von außerhalb nutzen:
Code: [AUSKLAPPEN]


Type TTest
 Global Globale:Int = 5
 Const Konstante: Int = 2
End Type

'Ausgabe: 3
Print (TTest.Globale-TTest.Konstante)

Gehe zu Seite 1, 2, 3, 4, 5, 6  Weiter


Kommentar schreiben

Titel:
Text: