Super-TYPEs

Previous topic - Next topic

Kitty Hello

Mit dem neuen Update (bald, bald!) kann man so einfach Schüsse machen:
Code (glbasic) Select
// --------------------------------- //
// Project: Blaster
// Start: Thursday, April 05, 2007
// IDE Version: 4.145

// Ein Schuss-TYPE. Hier ist nur die Position von Bedeutung
TYPE SHOT
x
y
ENDTYPE

// ein SHOT um später neue hinzuzufügen
LOCAL newshot AS SHOT
// das SHOTs Feld. Hier kommen die Schüsse rein
LOCAL shots[] AS SHOT

playerx = 320
WHILE TRUE
// Spieler Bewegung
INC playerx, KEY(205)-KEY(203)

// Auf den Rand begrenzen
playerx=MAX(MIN(playerx,600),40)

// Leertaste und etwas Zeit seit letztem Schuss vergangen?
IF KEY(57) AND delay // Schuss vorbereiten
newshot.x = playerx
newshot.y = 400
// Und in's Feld reinpacken
DIMPUSH shots[], newshot
// Zeit festlegen, wann der nächste Schuss geladen ist
delay = GETTIMERALL() + 100
ENDIF

// Durch alle Schüsse laufen
FOREACH pop IN shots[]
// Schuss hoch bewegen
DEC pop.y, 1
// Wenn Schuss am oberen Rand, dann entfernen und continue
IF pop.y<0 THEN DELETE pop

// Schuss zeichnen
PRINT "|", pop.x, pop.y
NEXT

// "Spieler" zeichnen
PRINT "A", playerx, 400

// etwas Statusinformationen
PRINT "Shots: "+BOUNDS(shots[], 0), 0,0
SHOWSCREEN
WEND

Schranz0r

Schaut doch schon geiler aus Gernot, kann man sich doch einiges an arbeit sparen !
Nice work.
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

KidPaddle

Seit dem Update auf die neue Version kann ich mein Projekt nicht kompilieren. Es wird die Meldung
Code (glbasic) Select
*** Configuration: WIN32 ***
precompiling:
GPC - GLBasic Precompiler V.2007.095 - 3D, NET
"TypeTest.gbas"(14) error : wrong argument type : TYPE TTiles is not declared
beim kompilieren angezeigt.

Das Projekt besteht aus 2 Dateien, wobei die Datei uTypes.gbas unter Quellen eingetragen ist.

Die Hauptdatei:
Code (glbasic) Select
// --------------------------------- //
// Project: TypeTest
// Start: Friday, April 06, 2007
// IDE Version: 4.148


GLOBAL Tile AS TTiles

GOSUB SetupTile

SUB SetupTile:
GLOBAL Tile AS TTiles

Tile.iXPos = 0
Tile.iYPos = 0
ENDSUB
Die Datei mit der Typendefinition:
Code (glbasic) Select
// --------------------------------- //
// Project: TypeTest
// Start: Friday, April 06, 2007
// IDE Version: 4.148

TYPE TTiles
aImages[]
iXPos
iYPos
ENDTYPE
Mit der Version 4.132 wurde das Projekt kompiliert, mit der Version 4.148 geht dieses nicht mehr.

Gruß
Thomas
Intel CoreDuo 6300, GT 7950 512MB, 2 GB Ram, XP SP2
GP2X MK1, Firmware 2.0.0

Schranz0r

Code (glbasic) Select
TYPE TTile
    aImage
    iXPos
    iYPos
ENDTYPE

LOCATE T AS TTile
LOCATE Tiles[] AS TTile
versuchs mal so !

Die Types haben sich ja jetzt geändert in der neuen Version, ist jetzt  1000x leichter als vorher
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

KidPaddle

Dein Beispiel funktioniert nicht, der Befehl LOCATE wird als feherhaft markiert.

Was hat sich den gändert an der Definition und Verwendung von TYPES? Es sind neue Möglichkeiten für dynamische Arrays hinzugekommen, aber an den Types selber hat sich doch nichts geändert. Ich habe das Gefühl, das die Datei uTypes.gbas nicht korrekt eingebunden wird, denn ob die Datei unter Quellen aufgelistet ist oder nicht, es erscheint immer die gleiche Fehlermeldung.

Gruß
Thomas
Intel CoreDuo 6300, GT 7950 512MB, 2 GB Ram, XP SP2
GP2X MK1, Firmware 2.0.0

D2O

@Gernot,
hat sich hier wieder ein kleiner Bug eingeschlichen??

Nun muss man Type wieder vor einer function deklarieren ansonsten gibts wieder ne fehlermeldung.

Beispile code:

Code (glbasic) Select
GLOBAL test AS b

WHILE TRUE

test = a()
PRINT test.x,10,10


SHOWSCREEN
WEND



//TYPE b
//x
//ENDTYPE

FUNCTION a AS b:
GLOBAL  c AS b
INC c.x,1
IF c.x > 100 THEN c.x = 0

RETURN c

ENDFUNCTION


TYPE b
x
ENDTYPE
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

Hoppla. Danke.

D2O

Das Update ging mal wieder schnell :)

Ich hatte mich schon gewundert das mein Projekt sich plötzlich nicht mehr Compilieren läst.
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

KidPaddle

Vielen Dank für das schnelle Update, mein Projekt läßt sich wieder kompilieren.

Gruß
Thomas
Intel CoreDuo 6300, GT 7950 512MB, 2 GB Ram, XP SP2
GP2X MK1, Firmware 2.0.0

Kitty Hello

*schwitz*

Bugman

Ist das normal ??
Mein Projekt hat 3 Dateien :
Main , Declarationen , Funktionen

Wenn ich den Befehl:
  GLOBAL fire[] AS laser
  REDIM fire[5]
in die Datei Declarationen schreibe bingt er einen Fehler
wrong argument type : TYPE  is not declared

Aber wenn es im Main steht geht es!
(// IDE Version: 5.055)

Kitty Hello

nicht normal. Mach mal ein update.
Wenn's nicht geht, bitte mini-projekt posten.

S.O.P.M.

Häää? Wie alt ist dieser Thread eigentlich - vom 5. Apr. 2007??? Der ist bei mir heute erstmalig im Forum aufgetaucht, das ist nicht normal! Habe ich etwas verpasst?
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Kitty Hello

wenn man was neues schreibt, rutschen die wieder nach oben.

S.O.P.M.

Wie das verwirren kann, wenn ein alter Thread nochmal ausgegraben wird :)
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium