Waffenwechsel wie umsetzen?
Übersicht

![]() |
M0rgensternBetreff: Waffenwechsel wie umsetzen? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Leute.
Ich habe grade ein kleines "OOP Problem". UNdzwar möchte ich, dass man mit den Tasten 1 bis 6 die Waffen wechseln kann. Die Waffen sind eine eigene Klasse und die gewählte Klasse ist ein Attribut der Spielerklasse. Das Problem ist, dass es in BB Vorher so ausgesehen hat: BlitzBasic: [AUSKLAPPEN] If KeyDown(2) Then Die Variable PW_(NAME) war immer eine Instanz des Waffentypes. Das Problem ist jetzt, dass die 6 Waffen in der main global deklariert werden und die Spielerklasse diese eben nicht kennt. Die Frage ist jetzt: Wie sage ich der SPielerklasse welche Waffe im Moment ausgewählt ist, ohne jede einzelne Instanz der Waffenklasse zu übergeben? Lg, M0rgenstern |
||
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
So ganz verstehen tu ich dich nicht, aber das mag wohl an mir liegen ![]() Vielleicht hilft dir das bzw. kannst du mir sagen, ob das dem entspricht was du willst( nur sinngemäß, nicht benutzbar): BlitzMax: [AUSKLAPPEN] Type TWeapon |
||
Blessed is the mind too small for doubt |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, das entspricht dem ganzen schon.
Aber dann gibt es zwei Probleme: 1. Ich müsste dann doch die Waffen übergeben, zumindest das zugehörige Array. Und 2. Das ist denke ich nicht sooo dynamisch. Aber das Problem hast du schon verstanden, keine Angst. Oder geht das vielleicht gar nicht so dynamisch wie ich es mir vllt wünsche? Lg, M0rgenstern |
||
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, du musst niemals der Klasse TPlayer als solcher oder einer Instanz das ganze Array Weapons irgendwie bekannt machen(es ist ja global bekannt für alles und jeden), das ginge so wie ich es geschrieben habe, das Field _weapon würde immer nur eine Waffe aus Weapons bekommen.
Weiß auch gerade nicht was du dynamischer machen willst oder damit meinst..? MfG DaysShadow |
||
Blessed is the mind too small for doubt |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, wenn ich mehrere Waffen habe, dan müsste ich das array entsprechend vergörßern und....
Ach nein, ist okay. Die Waffen selbst muss ich ja sowieso hardcoden, da ich die Variablen alle von Hand eintrage. Vielen Dank, dann ist deine Lösung doch passend. Dankeschön. Lg, M0rgenstern |
||
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du nicht hardcoden willst und die Waffen auslagern willst kannst du dir auch einen minimalen Parser dafür schreiben, hab ich auch mal gemacht und das geht relativ(!) einfach solange es nicht komplizierter wird ![]() MfG DaysShadow |
||
Blessed is the mind too small for doubt |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
UNd wie genau soll das funktionieren?
Bzw (bitte nicht schlagen): Was ist ein Parser? Also, ich möchte das ganze so wenig hardcoden und so dynamisch wie (mir) möglich schreiben, da das Projekt schon etwas größer ist. Ich schreibe mein Alien Shooter 2D auf BMAx neu. Lg, M0rgenstern |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Stichwort: Wikipedia ![]() Einfach: Wenn du z.B. einen Ini-Parser verwendest, kannst du deine Waffendefinitionen so speichern: Code: [AUSKLAPPEN] [Weapon]
Damage="100" Reloadtime="1000" Name="Die Kanone" etc. [/Weapon] [Weapon] ... Falls du zu faul bist: Im Forum müssten solche Teile auch für BlitzMax herumschwirren. Der Vorteil der Inis gegenüber von direkt/byteweise abgespeicherten Daten ist, dass man sie direkt mit einem Texteditor bearbeiten kann. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Öhm, soweit ich das verstanden habe etwas das Text einliest und ihn in einer bestimmten Art und Weise auswertet.
Macht die BlitzMax IDE ja auch, die wertet ja den Code auch erst aus ob er richtig ist von der Syntax her usw. Der sehr sporadische "Parser" hier: BlitzMax: [AUSKLAPPEN] Type TParser Kann das hier auswerten bzw. lade ich damit Sachen ein ![]() Code: [AUSKLAPPEN] province = {
name = NSEA1 color = $FF0E1C66 taxes = 0 } Der "Parser" an sich ist auf das Projekt zugeschnitten, also undymanisch, aber er funktioniert und gibt auch Fehler aus z.B. wenn die erste geschweifte Klammer fehlt oder so...^^ MfG DaysShadow |
||
Blessed is the mind too small for doubt |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Achso.
Also im Prinzip sowas wie ne kleine Scriptsprache. Hm... Werde mal ins Codearchiv gucken, was mir aber eigentlich nicht so lieb ist. Es funktioniert jetzt mit dem Array, aber eventuell schreibe ich später einen Parser. Lg, M0rgenstern. Vielen Dank. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich bin sehr zufrieden mit dem XML Parser von Brucey. | ||
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) |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder Du benutzt Chaos.Clone und speicherst einmal die Liste mit allen Waffen und lädst die dann ein ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was genau ist denn jetzt Chaos.Clone?
Lg, M0rgenstern |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/foru...hp?t=33951
das ist Chaos.Clone. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
das ist aber der absolute overkill das hier zu benutzen für seine 10waffen... | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es kostet ihn ein paar Byte Speicher auf der Platte, ist beliebig erweiterbar und kostet ihn - so er denn das Laden nur einmalig zu Beginn erledigt - kaum Resourcen. Und all das mit einer Handvoll zeilen Code. Wo ist da der Overkill? | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
ähm, ich sag mal so: Man kann zu fuß zum bäcker gehn um brötchen zu holen oder man nimmt den lamborghini ![]() |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da sein Spiel ja nicht nur aus waffen und deren Wechsel bestehen wird gibt es sicher noch mehr Arbeit für das Modul.
Zudem: Wenn ich deinen Vergleich ernst nehme dürften wir kein Blitz benutzen, denn das bietet massig Luxus für den Spieleprogrammierer. Graphik mit einer Befelhszeile initialisieren? das ist Luxus pur... ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
vermutlich ist es einfach persönliche vorliebe bzw subjektives empfinden...ich finds halt übertrieben, aber macht was ihr wollt ![]() |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group