Simple Global - Local Frage !

Previous topic - Next topic

mull

So stehts in der Hilfe

LOCAL var#$, var#$[]
GLOBAL var#$, var#$[]
LOCAL var#=wert#, var#=wert(), ...

a#$ = LOCAL var#$
LOCAL a#$ = GLOBAL a#$
...


und wieso geht das nicht :

LOCAL W# = 1024, H# = 768
GLOBAL Width# = 1024, Height# = 768
AMD Phenom II x4 955 Proc. 3.2 GHZ,  4GB Ram
Windows 7 64bit Ultima
NVIDIA GeForce GTX 460
Leistungsindex 5,7

Schranz0r

Gute Frage, hab ich mich auch schon gefragt!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Weil '#' in der Hilfe ein Symbol dafür ist, das das eine nummernvariable ist. '#$' heisst: kann entweder nummer oder Zeichenfolge sein (a oder a$), '$$' muss eine Zeichenfolge sein und '##' muss eine Nummernvariable sein.
z.B.: GETFONTSIZE fx##, fy##
Da darf man eben nicht:
GETFONTSIZE 3,4
machen.

mull

Aber man derklariert doch vorher Variablen nach deren Type, also mit Global A# = 5, B$= "Wort".
A als Zahl B als String ?

Glaube einen Bug gefunden zu haben:

PRINT " " +Waffen[0].Name$, 0, 450
PRINT Waffen[0].Name$, 10,10


Die erste Zeile läuft wie es soll und Waffen[0].Name$ gibt den String aus.
Erst bei der 2. Zeile kommt der Compiler Fehler.

(72) error : wrong argument type : PRINT, arg no: 1
TYPE  is not declared
AMD Phenom II x4 955 Proc. 3.2 GHZ,  4GB Ram
Windows 7 64bit Ultima
NVIDIA GeForce GTX 460
Leistungsindex 5,7

Kitty Hello

Nein! Zehlen haben kein '#'. Das ist nur in der Hilfe, damit man's erkennt was das für ein Argument ist.

GLOBAL A = 5, B$ ="Wort"

Ich hab ein Update hochgeladen. Solche Fehler sollten jetzt weg sein.

mull

Diese funktioniert auch mit V 4.21 nicht.

PRINT " " +Waffen[0].Name$, 0, 450
PRINT Waffen[0].Name$, 10,10


Die erste Zeile läuft wie es soll und Waffen[0].Name$ gibt den String aus.
Erst bei der 2. Zeile kommt der Compiler Fehler.

(72) error : wrong argument type : PRINT, arg no: 1
TYPE  is not declared
AMD Phenom II x4 955 Proc. 3.2 GHZ,  4GB Ram
Windows 7 64bit Ultima
NVIDIA GeForce GTX 460
Leistungsindex 5,7

Schranz0r

Hi Gernot du hast im Update was vergessen!

Code (glbasic) Select
Echtzeit Schatten mit Stencil Buffer. Funktioniert so:
- die ganze Szene zeichnen
- X_SPOT_LT -3, 0, x,y,z, 0,0,0, 360
dieses Licht ist die Lichtquelle und Schattenrichtung
- X_DRAWOBJ für alle schattenwerfende Objekte
- X_MAKE2D/SHOWSCREEN/X_MAKE3D
Das zeichnet die Schatten letztendlich.
Stencil funzt doch nur in verbindung mit X_CULLMODE

Code (glbasic) Select
Echtzeit Schatten mit Stencil Buffer. Funktioniert so:
- X_CULLMODE 1
- die ganze Szene zeichnen
- X_SPOT_LT -3, 0, x,y,z, 0,0,0, 360
dieses Licht ist die Lichtquelle und Schattenrichtung
- X_DRAWOBJ für alle schattenwerfende Objekte
- X_MAKE2D/SHOWSCREEN/X_MAKE3D
Das zeichnet die Schatten letztendlich.
Dann halt fürs nächste update.
Mir wärs ja egal ich weiss es ja jetzt, aber ein "frischling"<--- (Kleines wortspiel) :D
der neu in 3D ist, oder noch nie Stencil benutzt hat, weiss sowas halt nicht.
Deshalb wärs sinnvoll wenns drine steht.
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

D2O

Hi, habe das Update heruntergeladen.
Da ist irgend was schief gelaufen ??
GLB läst sicht nicht mehr starten, muss neu installiert werden.
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Kitty Hello


Kitty Hello

Quote from: mullDiese funktioniert auch mit V 4.21 nicht.

PRINT " " +Waffen[0].Name$, 0, 450
PRINT Waffen[0].Name$, 10,10


Die erste Zeile läuft wie es soll und Waffen[0].Name$ gibt den String aus.
Erst bei der 2. Zeile kommt der Compiler Fehler.

(72) error : wrong argument type : PRINT, arg no: 1
TYPE  is not declared
Ja.... wo ist denn Waffen definiert?
Code (glbasic) Select
TYPE WEAPON
Name$
ENDTYPE
LOCAL Waffen[] AS WEAPON

PRINT " " +Waffen[0].Name$, 0, 450
PRINT Waffen[0].Name$, 10,10
OK, der erste sollte auch einen Fehler melden ;)