Eine Funktion gibt 5 Entitys zurrück

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Devils Child

Betreff: Eine Funktion gibt 5 Entitys zurrück

BeitragFr, Jun 03, 2005 18:13
Antworten mit Zitat
Benutzer-Profile anzeigen
hi!
ich progge grad ein kleines ego-shooter.
ich wil jetzt eine funktion, die loadweapons() heisst, und 5 waffen laden soll.
wie kann ich eine funktion machen, die man so aufruft:
Code: [AUSKLAPPEN]

loadweapons()

und nicht so:Code: [AUSKLAPPEN]
weapons=loadweapons()

Question
*X-Ware Member*

Mission to Hell[Ego-Shooter]
Hier Vollversion runterladen:
http://patrick-sch.de/spiele/m...ersion.zip

ich antworte auf jede PN

BladeRunner

Moderator

BeitragFr, Jun 03, 2005 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohne mehr Code und eine genauere Erläuterung deinerseits was denn genau in der Func passieren soll bzw. was in weapons gespeichert wäre wird es schwierig dir zu helfen.
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

Devils Child

BeitragFr, Jun 03, 2005 18:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function loadweapons()
;FiveSeven
Global Weapon1 = LoadMesh("Models\Weapons\FiveSeven\FiveSeven.3ds")
ScaleEntity Weapon1, .01, .01, .01
;SwatRifl
Global Weapon2 = LoadMesh("Models\Weapons\SwatRifl\SwatRifl.3ds")
ScaleEntity Weapon2, .002, .002, .002
;Thompson
Global Weapon3 = LoadMesh("Models\Weapons\Thompson\Thompson.3ds")
EntityColor Weapon3, 100, 100, 100
;LFPGun
Global Weapon4 = LoadMesh("Models\Weapons\LFPGun\LFPGun.3ds")
ScaleEntity Weapon4, .3, .3, .3
;PlazmaGun
Global Weapon5 = LoadMesh("Models\Weapons\PlazmaGun\PlazmaGun.3ds")
ScaleEntity Weapon5, .03, .03, .03
End Function


so sieht die funktion aus. da ich nicht einfach global schreiben kann(in funktionen), will ich halt alle waffen ins hauptprogamm zurückgeben, unter dem namen und den eigenschaften, wie sie hier stehen!
*X-Ware Member*

Mission to Hell[Ego-Shooter]
Hier Vollversion runterladen:
http://patrick-sch.de/spiele/m...ersion.zip

ich antworte auf jede PN
  • Zuletzt bearbeitet von Devils Child am Fr, Jun 03, 2005 18:23, insgesamt einmal bearbeitet

BladeRunner

Moderator

BeitragFr, Jun 03, 2005 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich verstehe. nun, das wird allerdings etwas komplizierter. Möglich wäre dass du globale arrays (oder eine entsprechende Bank) anlegst und die befüllst.
Oder falls mit rückgabewert, dann als string mit Trennzeichen zwischen den einzelnen Handles.
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

Devils Child

BeitragFr, Jun 03, 2005 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
wie jetzt konkret???
kann ich nit irgenswie global in ne function reinmatschen oder so was?
*X-Ware Member*

Mission to Hell[Ego-Shooter]
Hier Vollversion runterladen:
http://patrick-sch.de/spiele/m...ersion.zip

ich antworte auf jede PN
 

Gerhard

BeitragFr, Jun 03, 2005 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde bei Programmbeginn die Variablen definieren:

Global weapon1, weapon2,...

später die Funktion aufrufen:

LadeWaffen()

und in der Funktion schreiben:

Function LadeWaffen()
weapon1 = Load...
if weapon1 = 0 then runtimeerror "Weapon1 nicht gefunden."
weapon2 = Load...
if weapon2 = 0 then runtimeerror "Weapon2 nicht gefunden."
...
end function

Devils Child

BeitragFr, Jun 03, 2005 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
wie, in der function 5 weitere functionen aufrufen? geht's auch einfacher?
*X-Ware Member*

Mission to Hell[Ego-Shooter]
Hier Vollversion runterladen:
http://patrick-sch.de/spiele/m...ersion.zip

ich antworte auf jede PN

Devils Child

BeitragFr, Jun 03, 2005 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Edit: achsooo, "load..." soll also loadmesh und nicht etwa loadwaffe1() heisen...
@gerhard: gut, habs probiert, und er sagt "global can only appear in main prog." Question
*X-Ware Member*

Mission to Hell[Ego-Shooter]
Hier Vollversion runterladen:
http://patrick-sch.de/spiele/m...ersion.zip

ich antworte auf jede PN
  • Zuletzt bearbeitet von Devils Child am Fr, Jun 03, 2005 18:30, insgesamt einmal bearbeitet
 

Gerhard

BeitragFr, Jun 03, 2005 18:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich schrieb doch: bei Programmbeginn die Variablen als global definieren.
 

hitokiri

BeitragFr, Jun 03, 2005 18:30
Antworten mit Zitat
Benutzer-Profile anzeigen
o.O er ruft doch keine weiteren Funktionen auf. Lediglich eine Fehlerausgabe wenn eine Waffe nicht geladen werden kann.
Du definierst einfach die variablen in der funktion global, damit du sie auch dort verwenden kannst und sie nicht wieder gelöscht werden wenn du aus der funktion zurückspringst. ansonsten kannst auch einfach ein gosub und return machen, das hat nich die eigenart der funktion das alle verwendeten variablen lokal sind.

frigi

BeitragFr, Jun 03, 2005 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Am ANFANG der Programms!

EDIT: Mal wieder zu spät...
frigi.designdevil.de

Devils Child

BeitragFr, Jun 03, 2005 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
achsooooo....
jetzt geht es Mr. Green
DANKE!! Very Happy

Edit: hab geantwort, wo die letzten 2 posts vor mir noch net da waren Wink
*X-Ware Member*

Mission to Hell[Ego-Shooter]
Hier Vollversion runterladen:
http://patrick-sch.de/spiele/m...ersion.zip

ich antworte auf jede PN
 

Gerhard

BeitragFr, Jun 03, 2005 18:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Gewöhn dir an, den runtimeerror zu bringen. Ist zwar etwas Schreibarbeit, ist aber echt sinnvoll und hilft enorm.

skey-z

BeitragFr, Jun 03, 2005 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
wie wäre es 1. mit Types, damit kannst du ja auch alle waffeneigenschaften speichern.

2. Du könntest zb die waffen durchnummeriert speichern, als wep1, wep2,etc. und in ner for next schleife laden
oder
du liest den ordner aus, wo die waffen drin sind, also mit opendir, nextfile
oder
die namen in eine datei speichern und diese auslesen, da kannst dui dann auch die eigenschaften direkt mit speichern und auch mal schnell verändern
siehe dazu openfile, readline/string/byte/short etc
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter
 

OJay

BeitragFr, Jun 03, 2005 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
die elegante variante mit oop-ansätzen Smile
BlitzBasic: [AUSKLAPPEN]

Type tWeapons
Field mesh
Field name, texture ; etc...
End Type


w.tWeapons = LoadWeapons()


For w.tWeapons = Each tWeapons
; jede waffe durchgehen
Next




Function loadweapons.tWeapons()

;FiveSeven
w.tWeapon = New tWeapon
w\name = \"FiveSeven\"
w\mesh = LoadMesh(\"Models\Weapons\FiveSeven\FiveSeven.3ds\")
ScaleEntity w\mesh, .01, .01, .01

;SwatRifl
w.tWeapon = New tWeapon
w\name = \"SwatRifle\"
w\mesh = LoadMesh(\"Models\Weapons\SwatRifl\SwatRifl.3ds\")
ScaleEntity w\mesh, .002, .002, .002

;Thompson
w.tWeapon = New tWeapon
w\name = \"Thompson\"
w\mesh = LoadMesh(\"Models\Weapons\Thompson\Thompson.3ds\")
EntityColor w\mesh, 100, 100, 100

;LFPGun
w.tWeapon = New tWeapon
w\name = \"LFPGun\"
w\mesh = LoadMesh(\"Models\Weapons\LFPGun\LFPGun.3ds\")
ScaleEntity w\mesh, .3, .3, .3

;PlazmaGun
w.tWeapon = New tWeapon
w\name = \"PlazmaGun\"
w\mesh = LoadMesh(\"Models\Weapons\PlazmaGun\PlazmaGun.3ds\")
ScaleEntity w\mesh, .03, .03, .03

Return w

End Function


keine garantie für korrektheit, soll nur als beispiel dienen Wink

Devils Child

BeitragFr, Jun 03, 2005 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
naja gut, ich habs jetzt einfach mit functions, so wie gerhard es gesagt hat Wink , aber torotzdem danke Very Happy
*X-Ware Member*

Mission to Hell[Ego-Shooter]
Hier Vollversion runterladen:
http://patrick-sch.de/spiele/m...ersion.zip

ich antworte auf jede PN

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group