GLBasic forum

Other languages => GLBasic - de => Topic started by: Kitty Hello on 2007-Apr-05

Title: Super-TYPEs
Post by: Kitty Hello on 2007-Apr-05
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
Title: Super-TYPEs
Post by: Schranz0r on 2007-Apr-05
Schaut doch schon geiler aus Gernot, kann man sich doch einiges an arbeit sparen !
Nice work.
Title: Super-TYPEs
Post by: KidPaddle on 2007-Apr-06
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
Title: Super-TYPEs
Post by: Schranz0r on 2007-Apr-06
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
Title: Super-TYPEs
Post by: KidPaddle on 2007-Apr-06
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
Title: Super-TYPEs
Post by: D2O on 2007-Apr-06
@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
Title: Super-TYPEs
Post by: Kitty Hello on 2007-Apr-07
Hoppla. Danke.
Title: Super-TYPEs
Post by: D2O on 2007-Apr-07
Das Update ging mal wieder schnell :)

Ich hatte mich schon gewundert das mein Projekt sich plötzlich nicht mehr Compilieren läst.
Title: Super-TYPEs
Post by: KidPaddle on 2007-Apr-07
Vielen Dank für das schnelle Update, mein Projekt läßt sich wieder kompilieren.

Gruß
Thomas
Title: Super-TYPEs
Post by: Kitty Hello on 2007-Apr-09
*schwitz*
Title: Super-TYPEs
Post by: Bugman on 2007-Nov-23
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)
Title: Super-TYPEs
Post by: Kitty Hello on 2007-Nov-23
nicht normal. Mach mal ein update.
Wenn's nicht geht, bitte mini-projekt posten.
Title: Super-TYPEs
Post by: S.O.P.M. on 2007-Nov-23
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?
Title: Super-TYPEs
Post by: Kitty Hello on 2007-Nov-23
wenn man was neues schreibt, rutschen die wieder nach oben.
Title: Super-TYPEs
Post by: S.O.P.M. on 2007-Nov-23
Wie das verwirren kann, wenn ein alter Thread nochmal ausgegraben wird :)
Title: Super-TYPEs
Post by: Bugman on 2007-Nov-23
Hier habe ich mal ein Beispiel Projekt nur mit dem Fehler.
http://www.zshare.net/download/5110599f998ec7/

Ach noch etwas seltsames. Es darf kein TYPE mit dem Namen "auto" erstellt werden
sonst passiert das :

Code (glbasic) Select
_______________________________________
*** Configuration: WIN32 ***
precompiling:
GPC - GLBasic Precompiler V.2007.315 - 2D, WIN32
Wordcount:3 commands

compiling:
In file included from C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp.h:5,
                 from C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_tempg.cpp:2:
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp_class.h:1: error: expected identifier before "auto"
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp_class.h:2: error: expected unqualified-id before '{' token
In file included from C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_tempg.cpp:2:
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp.h:6: error: ISO C++ forbids declaration of `golf' with no type
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp.h:6: error: multiple storage classes in declaration of `golf'
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_tempg.cpp:4: error: ISO C++ forbids declaration of `golf' with no type
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_tempg.cpp:4: error: top-level declaration of `golf' specifies `auto'
In file included from C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp.h:5,
                 from C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp0.cpp:1:
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp_class.h:1: error: expected identifier before "auto"
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp_class.h:2: error: expected unqualified-id before '{' token
In file included from C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp0.cpp:1:
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp.h:6: error: ISO C++ forbids declaration of `golf' with no type
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp.h:6: error: multiple storage classes in declaration of `golf'
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp0.cpp: In function `int __GLBASIC__::__MainGameSub_()':
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp0.cpp:16: error: request for member `farbe' in `__GLBASIC__::golf', which is of non-class type `int'
In file included from C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp.h:5,
                 from C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp1.cpp:1:
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp_class.h:1: error: expected identifier before "auto"
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp_class.h:2: error: expected unqualified-id before '{' token
In file included from C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp1.cpp:1:
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp.h:6: error: ISO C++ forbids declaration of `golf' with no type
C:/DOKUME~1/Besitzer/LOKALE~1/Temp/glbasic/gpc_temp.h:6: error: multiple storage classes in declaration of `golf'
*** FATAL ERROR - Bitte die Compiler-Ausgabe ins Forum kopieren
Title: Super-TYPEs
Post by: Bugman on 2007-Nov-23
@S.O.P.M.
Ist doch normal das die Beiträge wieder hochrutschen.
Sonst hätte ich nie eine Antwort bekommen.
Title: Super-TYPEs
Post by: Schranz0r on 2007-Nov-23
so gehts:

Code (glbasic) Select
TYPE Auto
    hersteller
    farbe
  ENDTYPE

   GLOBAL golf AS Auto

  golf.farbe = 1
Title: Super-TYPEs
Post by: Bugman on 2007-Nov-23
@Schranz0r
Bezieht sich das auf den fehler das ein TYPE nicht den Namen "auto" haben darf ?
Oder das man die Instanz eines TYPE nur in die Hauptdatei des Projekts packen darf ?
Title: Super-TYPEs
Post by: Bugman on 2007-Nov-23
Aber ich bin begeistert wie schnell man eine Antwort in diesen Forum bekommt.
Wenn man sich mal überlegt das es eher eine "Randgruppen" Programmiersprache ist.
Alleine das ist mir schon eine Vollversion wert.
Title: Super-TYPEs
Post by: BumbleBee on 2007-Nov-23
Ja und vor allem dass der GLBasic Entwickler höchstselbst fast täglich hier reinschaut  und auch immer ein offenes Ohr für Vorschläge oder Verbesserungen hat. Wo gibts das schon.  Also wenn's mal zu einem GLBasic Treffen kommt (was ich hoffe) dann gibt's für Gernot auf jeden Fall ein extra Weizen.:booze:

Cheers
Title: Super-TYPEs
Post by: Schranz0r on 2007-Nov-23
Jow wenn ich was seh, und helfen kann, helfe ich immer ;)

Du hast recht der Type darf nicht "auto" heissen, aber AUTO und Auto geht... Ist wohl ein C++ kommando laut Debuger oder zumindest schon vergeben... was mich durchaus wundert!

Types können meines wissens nur in der Maindatei vor der Hauptschleife, oder in einer Subdatei eingebunden werden!

In einer zusätzlichen datei kannst du übrigends so machen

SUBDATEI:
Code (glbasic) Select
TYPE Auto
Model$
Farbe
ENDTYPE

GLOBAL Autos[] AS Auto

FUNCTION SetCar: Model$, Farbe
LOCAL i AS Auto
i.Model$ = Model$
i.Farbe = Farbe
DIMPUSH Autos[],i
ENDFUNCTION

FUNCTION ShowCars:
LOCAL i, num
FOREACH i IN  Autos[]
PRINT i.Model$,num*90,10
PRINT i.Farbe,num*90,20
INC num,1
NEXT
ENDFUNCTION
MAINDATEI:
Code (glbasic) Select
SetCar("AUDI",RGB(0x00, 0x00, 0x00))
SetCar("BMW",RGB(0xff, 0x00, 0x00))

WHILE TRUE

ShowCars()

SHOWSCREEN
WEND
END
so könnte man es machen ;)
Title: Super-TYPEs
Post by: Quentin on 2007-Nov-24
Code (glbasic) Select
TYPE tRandgruppe
  sprache$
  status
ENDTYPE

GLOBAL Randgruppe AS tRandgruppe
Randgruppe.sprache$ = "GL-Basic"
Randgruppe.status = FALSE

Randgruppe.sprache$ = "Cobol und sonstiger ernsthafter Unsinn"
Randgruppe.status = TRUE
;) ok, syntaktisch unsinng, aber ich weigere mich, eine Randgruppe zu sein ;)
Title: Super-TYPEs
Post by: Schranz0r on 2007-Nov-24
Quote from: Quentin
Code (glbasic) Select
TYPE tRandgruppe
  sprache$
  status
ENDTYPE

GLOBAL Randgruppe AS tRandgruppe
Randgruppe.sprache$ = "GL-Basic"
Randgruppe.status = FALSE

Randgruppe.sprache$ = "Cobol und sonstiger ernsthafter Unsinn"
Randgruppe.status = TRUE
;) ok, syntaktisch unsinng, aber ich weigere mich, eine Randgruppe zu sein ;)
Sei mir nicht böse, aber whats that?
Entweder hast du hier was total falsch verstanden, oder es sollte ein Witz sein, den ich nicht verstehe....??????
Title: Super-TYPEs
Post by: Quentin on 2007-Nov-24
Quote from: BugmanAber ich bin begeistert wie schnell man eine Antwort in diesen Forum bekommt.
Wenn man sich mal überlegt das es eher eine "Randgruppen" Programmiersprache ist.
Alleine das ist mir schon eine Vollversion wert.
lol Schranzor, es sollte nur ein Gag sein wegen obigem Posting von Bugman ;)
Title: Super-TYPEs
Post by: Schranz0r on 2007-Nov-24
dann eher so :

IF Randgruppe = True THEN GLBasic = False
Title: Super-TYPEs
Post by: Quentin on 2007-Nov-24
*ggg* oder so, dann wirds klarer
Title: Super-TYPEs
Post by: Kitty Hello on 2007-Nov-24
Übrigens, die Idee Types mit T zu beginnen (Tauto) ist hier auch wieder gut.
Title: Super-TYPEs
Post by: Schranz0r on 2007-Nov-25
Also Gernot :D
Ich habe noch nie ein Tauto gesehen ;)
Spass bei Seite, noch 2 Posts dan hab ich Posting-Geburtstag, und zwar nen Runden :D
Aber wenn man Auto eingibt passts ja auch, aber Gernot sag mal, wieso ist den auto schon belegt? Hat das nen besonderen Grund?
Title: Super-TYPEs
Post by: Kitty Hello on 2007-Nov-26
[url]http://msdn2.microsoft.com/en-us/library/6k3ybftz(VS.80).aspx[/urll]

Wenn's kein Tauto gibt, dann eben TTauto. :D
Gruß aus Ingolstadt.
Title: Super-TYPEs
Post by: Schranz0r on 2007-Nov-26
Na da müssen wir mal einen Termin für ein Audit ausmachen ;)