Waffen in Array speichern
Übersicht

![]() |
sbrogBetreff: Waffen in Array speichern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich entwickle gerade einen Spaceshooter mit 5 verschiedenen Waffen
dass immer eine Waffe aktiv ist, habe ich so gecodet Code: [AUSKLAPPEN] currentweapon = 1 ; Aktuell ausgewählte waffe : 1 ist die kanone Function waffetesten() If KeyHit(29) ; strg currentweapon =currentweapon+1 ;waffenmodus um eins höhershalten If currentweapon>5 currentweapon = 1 EndIf EndIf Select currentweapon Case 1 Waffe_ Kanone ;Kanonenmodus aktiv Case 2 Waffe_Rakete ;Raketenmodusaktiv usw. Case 3 Waffe_Laser Case 4 Waffe_Waffe4 ;PLatzhalter für 4. Waffe (mir fällt noch keine ein) Case 5 Waffe_Waffe5 ;Platzhalter für 5. Waffe End Select End Function Wenn ich das ganze in einem array weapon(5) machen will, wie kann ich dann bestimmen, welche waffe aktiv ist ? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich verstehe dein Prob nicht ganz. Du hast doch mit currentweapon schon die aktive Waffe festgelegt. | ||
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 |
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
schon, aber mit einem array wäre es übersichtlicher ![]() |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du es unbedingt mit einem Array haben willst, kannst Du (warnung sehr ineffizient/unelegant) zB so machen:
Dim Waffe(x,y) Wobei x der nummer der Waffe entspricht (0-4) und y den einzelnen Eigenschaften, zB: 0 = Schaden 1 = Reichweite 2 = Feuergeschwindigkeit 3 = Munition etc. Dann mit Datas einzulesen: Bsp: Data 10,40,1,-1 -> 10 punkte schaden bei Gegner, reicht 40pixel weit, feuert 1* pro sec. und hat unbegrenzt (=-1) Munition. EDIT: Würde für sowas jedoch eher ein Type empfehlen, da flexibler. |
||
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 |
- Zuletzt bearbeitet von BladeRunner am Mi, Mai 26, 2004 14:36, insgesamt einmal bearbeitet
![]() |
DCSieger des B2D Retro Wettbewerb / Aug 04 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man müsste wissen was Waffe_Kanone, Waffe_Rakete etc. soll. Wären die Waffen gleich und würden nur z.B. unterschiedlich viel Schaden machen, so könntest du in einem Array den Schaden Speichern und dir das Select / Case sparen in dem du es etwa so machst:
Code: [AUSKLAPPEN] health=health-weapondamage(currentweapon) Aber da ich mal annehme das sich die Waffen komplett unterscheiden solltest du das mit dem Array einfach lassen... Edit: Oh zu lahm.. Bladerunner hats schon gesagt mehr oder weniger ![]() |
||
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com | www.CarnageContest.com | www.Stranded3.com |
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
die einzelnen eigenschaften werde ich in types speichern, ich will eigentlich nur ein array, damit ich festlegen kann, welche waffe aktiv ist.
ich will eigentlich eine funktion schreiben, die jede waffe prüft, ob sie aktiv ist. Wenn sie es ist, wird zur schussfunktion der aktiven waffe gesprungen. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
bleib bei der Variablen. Wofür nen Array wenn nur eine Waffe aktiv ist?
Wenn du mehrere aktive Waffen willst: dim Waffe(Anzahl der Waffen-1) for i = 0 to (Anzahl der waffen-1) if waffe(i)=1 then Feuer_Waffe(i) next aktive waffen 1 andere 0. fertig. |
||
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 |
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
so was ähnliches habe ich mir gedacht, dass die aktive waffe 1 ist und der rest 0.
Aber ich werde für jede waffe eine eigene funktion schreiben, da sie sich auch in der bewegungsweise unterscheiden. Danke euch beiden ![]() |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nochmal: wenn du nur EINE aktive Waffe zur gleichen Zeit hast, benötigst Du kein Array zur Auswahl.
CurrentWeapon=nummer der aktiven Waffe reich dann vollkommen. mach es dir doch nit unnötig kompliziert. Weshalb ein Array? Welchen Zweck siehst du darin? |
||
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 |
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich kann den gesamten case-teil weglassen,das bringt übersicht | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du konstruierst dir über 5 Zeilen ein Array, um dann weiter jeder Waffe ne einzelne Funktion zu lassen welche (mmmm... mit case select?) einzeln aufgerufen werden muss um dir 5 Zeilen Case-select zu ersparen ???
Wenn du übersicht willst bei den fünf Zeilen, lager sie als Mini-Func aus oder Flankier sie mit Kommentaren. |
||
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 |
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also mit kommentaren flankier ich meinen Code sowieso immer, ![]() Aber ich denke, letztendlich kommt es auf das gleiche heraus, ob ich es in arrays schreib, oder nicht ![]() |
||
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab mal kurz vorrausgedacht, und festgestellt, dass wenn ich den waffenmodus wechsle und immer noch schüsse unterwegs sind, dass diese dann einfach verschwinden werden. Kann ich das irgenwie verhindern ? | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst die Routine zum Updaten der Schüsse unabhängig von der zum Erzeugen eines Schusses halten
zB: Create_Laser() Create_Cannon() aber nur eine: Update_Shots() welche Allgemeingültig ist. Noch besser ist es allerdings auch die einzelnen Waffentypen unter einen Hut zu bringen. |
||
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 |
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Noch besser ist es allerdings auch die einzelnen Waffentypen unter einen Hut zu bringen. ich habe aber keine ahnung, wie ich das machen soll, da die einzelnen waffen so verschieden sind[/quote] |
||
HOT-BITGast |
![]() Antworten mit Zitat |
|
---|---|---|
hmm....
Toni |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group