Problem mit Types...

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

ChrisAttack

Betreff: Problem mit Types...

BeitragDi, März 23, 2004 22:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe ein Problem mit folgendem Code:

Code: [AUSKLAPPEN]

;_____Grasobjekt_________
Type gras
     field bild
     field pos_x
     field pos_y
     field pos_z
end type

;_____Mapobjekt__________
const terrain_name$="map.bmp" ;<-|

type map
        field height_map=loadterrain("Data/"+terrain_name$)
        field pos_x ;<-|
        field pos_y ;<-|
        field pos_z ;<-|
end type

level.map=new map

function map_generate()
positionentity level\height_map,level\pos_x,level\pos_y,level\pos_z
end function


Es kommt die Fehlermeldung: "Variable must be a Type" oder ähnlich.
Woran liegt das?
B3D
MSVC++
DX9SDK
 

Edlothiol

BeitragDi, März 23, 2004 22:05
Antworten mit Zitat
Benutzer-Profile anzeigen
level ist nicht Global. Daher ist es in der Funktion eine Zahl.

ChrisAttack

BeitragDi, März 23, 2004 22:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Das heißt ich muss global height_map an den anfang meines codes schreiben, oder?

Habs probiert... klappt net... Mad
Was muss ich tun?

Sorry, hab mich verlesen.. LEVEL IST NICHT GLOBAL. Ach so, und wie globalisier ich einen Type? ich dachte das wäre er ohnehin.
B3D
MSVC++
DX9SDK

Clonker

BeitragDi, März 23, 2004 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Pack doch einfach die Variabel in die Funktion:

Code: [AUSKLAPPEN]

function map_generate()
level.map=new map
positionentity level\height_map,level\pos_x,level\pos_y,level\pos_z
end function
Die exzessive Akkumulation von Fremdwörtern suggeriert pseudointellektuelle Kompetenz.

Athlon XP 2800|Radeon 9600 Pro|512MB DDR RAM|240GB Festplatte

ChrisAttack

BeitragDi, März 23, 2004 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Habs jetzt. ich hab ein global vor level.map = new map gesetzt.
Hätt ich auch gleich drauf kommen können, ich Trottel... Laughing
B3D
MSVC++
DX9SDK
 

OJay

BeitragDi, März 23, 2004 22:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
type map
        field height_map=loadterrain("Data/"+terrain_name$)
end type


seit wann geht denn sowas? hab ich was verpasst? der compiler meldet tatsächlich keinen fehler?! Shocked
  • Zuletzt bearbeitet von OJay am Di, März 23, 2004 23:23, insgesamt einmal bearbeitet
 

furbolg

BeitragDi, März 23, 2004 22:42
Antworten mit Zitat
Benutzer-Profile anzeigen
wundert mich auch

DivineDominion

BeitragDi, März 23, 2004 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
das "new map" in der funktion ist ungünstig - es würde dir jedes mal ein neues, leeres dingsi erstellen. Besser ist da, abgeändert:

Code: [AUSKLAPPEN]

Type map
   Field x
End Type

Global test.map = New map

Function map_generate()
   Print test\x
End Function


Geht durchaus, solange du "test" (also "level" bei dir) nicht irgendwie überschreibst...

Oder, eleganter:

Code: [AUSKLAPPEN]
Type map
   Field x
End Type

test.map = New map

Function map_generate()
   Local test.map = First map
   Print test\x
End Function



Ist dann zwar immer das selbe aber du vermeidest speichervergeudenden krimskrams Smile
christian.tietze@gmail.com - https://christiantietze.de
macOS

Gossi

BeitragFr, März 26, 2004 19:22
Antworten mit Zitat
Benutzer-Profile anzeigen
OJay hat Folgendes geschrieben:
Code: [AUSKLAPPEN]
type map
        field height_map=loadterrain("Data/"+terrain_name$)
end type


seit wann geht denn sowas? hab ich was verpasst? der compiler meldet tatsächlich keinen fehler?! Shocked



Wenn man statt der Funktion eine konstante Zahl anhängt, meldet der Compiler zwar keinen Fehler, aber keins der erstellten Objekte hat dann die Zahl.

Code: [AUSKLAPPEN]

Type a
   Field b=10
End Type

c.a=New a
Print c\b


c\b ist trotzdem 0.
Komisch ist das...
Alle Wasser laufen ins Meer, doch wird das Meer nicht voller; an den Ort, dahin sie fließen, fließen sie immer wieder. (...) Was geschehen ist, eben das wird hernach sein. Was man getan hat, eben das tut man hernach wieder, und es geschieht nichts neues unter der Sonne. Geschieht etwas, von dem man sagen könnte: "Sieh, das ist neu"? Es ist längst vorher auch geschehen in den Zeiten, die vor uns gewesen sind.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group