Bomberman Klon (Community Tutorial) BMAX
Übersicht 

![]() |
ToeB |
![]() |
---|---|---|
Fürn Onlinemodus ist es nie zu Spät ![]() Was ich machen würde ist, den Player auch in einen Type zu fassen (so weit ich das gesehen habe hast du das nicht oder ?), dann sollte das kein Problem sein. mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat. Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
KirkZero |
![]() |
|
---|---|---|
Doch, hab ich... der Player stammt von TSpieler ab...
![]() na, wenns nie zu spät ist... dann kann ich ja noch hoffen, weil das währe mein letzter Lernschritt, den ich unbedingt noch machen will in diesem Worklog (nachdem ich alles andere fertig habe) Irgendwelche Tipps dazu? würde mich freuen!!! |
||
No Brain, No Pain |
![]() |
hamZtaAdministrator |
![]() |
---|---|---|
Ich würde dir raten, die Multiplayer-Idee wieder zu verwerfen, aus folgenden Gründen:
1.) Wirst du dafür doch einiges aus dem Programm über den Haufen werfen müssen 2.) Ist Multiplayer gar nicht so einfach wie man denkt 3.) Wäre es vielleicht eine Idee deine Worklogeinträge sauber zu formatieren und als Einsteigertutorial zu veröffentlichen - grade für BlitzMax schauts da sehr mager aus. Multiplayer würde den Rahmen sprengen. Ich will dir nicht ausreden was neues zu lernen, ich hätte nur gern gesehen wie du das hier erstmal abschließt bevor du waghalsige Experimente in Angriff nimmst. hamZta |
||
Blog. |
KirkZero |
![]() |
|
---|---|---|
Danke @hamZta für deinen Kommentar!
Ich kann mir denken, dass Multiplayer bestimmt nicht einfach ist... wäre aber toll... wenn es am Ende des letzten WorklogEintrages trotzdem möglich wäre, es zu verwirklichen... wie gesagt... das wäre halt der letzte Eintrag... und ich würde dabei viel lernen, weil das für mich absolutes Neuland ist. Wenn das natürlich den Rahmen sprengen würde... was es dann wohl auch tut... muss ich wohl weichen... was allerdings echt schade wäre. Was halt auf jedenfall noch reinkommt ist halt Multiplayer an einem PC. Zu der Sache... zwecks sauber formatieren und das ganze als Tutorial zu veröffentlichen... Das war ja (wie im ersten WorklogEintrag geschrieben) mit ein Sinn der Sache. Ich sehe mein größtes Problem momentan darin, das ich nicht alles wirklich gut erklähren kann... und beim Zusammenfassen des Ganzen hoffe ich auf Unterstützung. Das es fü BMax wenig tutorials (vor allem in deutsch) gibt... musste ich selber feststellen(dafür habe ich, als kleine Nebenwirkung, meine Englischkenntnisse sehr erweitert). Allerdings würde ich mich freuen, wenn mein Code nicht allzu großer Unsinn ist und auch wirklich noch jemand davon Profitieren kann!!! Darum Poste ich ja auch jeden Schritt den ich mache... Und hiermit gebe ich dir ein Versprechen... ich werde das Projekt weiterhin so führen, wie ich es bisher getan habe... bis das Grungerüßt steht (Menü + Multiplayer an einem PC + SinglePlayer(auch wenns nur 3 level sein sollten) ). Dein Zitat: Ich will dir nicht ausreden was neues zu lernen, ich hätte nur gern gesehen wie du das hier erstmal abschließt bevor du waghalsige Experimente in Angriff nimmst. Genau das werde ich tun... habe nur gehofft... schonmal anhaltspunkte für später zu bekommen, was OnlineGaming betrifft. Die Multiplayer-Idee verwerfe ich also nicht... so, wie du es mir ans Herz legst... sie steht halt nur gaaaaanz weit hinten... als letzte Hürde... Aber ganz nebenbei... wenn ich meinen Worklog dann sauber formatiere... (viellecht oder am Besten mit eurer Hilfe...) gibt es dann auch einen Platz für meine Grafiken, Dateien, Sounds, usw? da mein Archiv ja nur 10 MB an Dateien fassen darf... (hab mittlerweile schon fast 40% in Anspruch genommen) Nochmals Danke für dein Kommentar hamZta!!! |
||
No Brain, No Pain |
![]() |
Hummelpups |
![]() |
---|---|---|
KirkZero, bei deinem "Item setz algo" hast du es dir unnötig schwer
und auch noch falsch gemacht. Deine Items laut wahrscheinlichkeitsrechnung so gesetzt: links dein Algo, rechts meiner ![]() Code: [AUSKLAPPEN] For Local ii=1 To Max_2
Local x:Int Local y:Int Repeat x=Rand(0,19) y=Rand(0,19) If map2[x,y,0]=0 Then map2[x,y,0]=1 map2[x,y,1]:+1 End If Until map2[x,y,0]=1 Next For Local x2=0 To 19 For Local y2=0 To 19 map2[x2,y2,0]=0 Next Next |
||
blucode - webdesign - Ressource - NetzwerkSim BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus |
KirkZero |
![]() |
|
---|---|---|
@Hummelpups
Die bildliche Darstellung verdeutlicht es richtig gut... Da muss ich dann wohl nochmal ran. Deine Art ist ist wesentlich besser und wenn ich jetzt so drüber nachdenke, wie ich es gemacht habe... *huuust* Werd ich editieren! Besten Dank dafür!!! |
||
No Brain, No Pain |
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) |
||
mfg, Calvin Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
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! |
||
No Brain, No Pain |
![]() |
XeresModerator |
![]() |
---|---|---|
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... |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960 Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
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! |
||
No Brain, No Pain |
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! |
||
mfg, Calvin Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
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 ![]() Danke dir!!! |
||
No Brain, No Pain |
![]() |
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 |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
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 ![]() *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 ![]() |
||
No Brain, No Pain |
![]() |
hamZtaAdministrator |
![]() |
---|---|---|
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 ![]() hamZta |
||
Blog. |
KirkZeroBetreff: Nix TOT ;) |
![]() |
|
---|---|---|
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 ![]() |
||
No Brain, No Pain |
Übersicht

