GLBasic forum

Other languages => GLBasic - de => Topic started by: LukasOK on 2015-Jan-30

Title: Was soll das für ein Fehler sein ? which is of non-class type `DGNat'
Post by: LukasOK on 2015-Jan-30
Hallo,
So ich bin zwar kein Experte aber ich habe mich in GLBasic Super! zurecht gefunden.
Ich war dabei mit ein bisschen eigen wissen und ein oder zwei Tutorial mir ein kleines Spiel zusammenzuschrauben,
Es lief wirklich alles Prima aber als ich die Datei geschlossen hab, lief noch alles.
Dann kam ich auf die wunderbare Idee dem Spiel über die Optionen einen neuen Namen zugeben, als ich auch die restliche namen ersätzt habe steht da:
C:\Users\*****\AppData\Local\Temp\glbasic\gpc_tempg.cpp:41: error: request for member `X' in `((__GLBASIC__::TMap*)this)-
>__GLBASIC__::TMap::Player', which is of non-class type `DGNat'
C:\Users\*****\AppData\Local\Temp\glbasic\gpc_tempg.cpp:41: error: request for member `Y' in `((__GLBASIC__::TMap*)this)->__GLBASIC__::TMap::Player', which is of non-class type `DGNat'
*** FATAL ERROR - Bitte die Compiler-Ausgabe ins Forum kopieren

Bitte kann mir jemand helfen?
(Ich möchte dieses Problem so schnell wie möglich lösen)

PS: Ich habe schon versucht alles zurückzusetzen immer der gleiche Fehler!
Title: Re: Was soll das für ein Fehler sein ? which is of non-class type `DGNat'
Post by: Schranz0r on 2015-Jan-30
Hast nen Fehler beim TYPE-Namen würde ich sagen.
Sieht schwer nach Schreibfehler beim Aufruf von TMap aus.
SELF. vergessen?!
Title: Re: Was soll das für ein Fehler sein ? which is of non-class type `DGNat'
Post by: LukasOK on 2015-Jan-31
Nein es ist leider kein Schreibfehler, der Fehler ist aufgetreten als ich den Namen des Spiels geändert habe.
Title: Re: Was soll das für ein Fehler sein ? which is of non-class type `DGNat'
Post by: Fabbio on 2015-Jan-31
Moin,
du hast über die optionen den Namen geändert?
Hier wird dann im ausgabeordner ein neuer Appordner erstellt, hier fehlen dann die ganzen media daten.
Schau mal nach, ich bin selber nicht am Rechner.

Gesendet von meinem GT-I9300 mit Tapatalk

Title: Re: Was soll das für ein Fehler sein ? which is of non-class type `DGNat'
Post by: D2O on 2015-Jan-31
So, bins nochmals -> Fabbio.

Habe mal schnell den Rechner gestartet, ein altes Projekt geöffnet, Namen in den Optionen geändert.
Jetzt gibts bei mir den
QuoteERROR 3
Keine Datei
Es wir eine neuer Appordner erstellt und hier fehlen die Media, Map, Ini.....dateien.
Kopiere mal alle dateien von dem Originalen Ordner in den neuen Appordner und teste mal.
Sollte eigentlich funktionieren.
Title: Re: Was soll das für ein Fehler sein ? which is of non-class type `DGNat'
Post by: LukasOK on 2015-Jan-31
Ich danke euch für eure Hilfe.
Ich habe schon alles im Media Ordner drin.

Vielleicht Hilft das?

LOCAL Tiles$[]

SPLITSTR(Line$, Tiles$[], ",")


X = 0
FOREACH Tile IN Tiles$[]
self.Datas[X][Y] = INTEGER(Tile)
IF self.Datas[X][Y] = 4
   Spieler.X = X*Tilesize
   Spieler.Y = Y*Tilesize
self.SpawnX = Spieler.X
self.SpawnY = Spieler.Y
self.Datas[X][Y] = 0
ENDIF
INC X
NEXT


Da wird mir glaub ich der Fehler angezeigt.


PS: Mit X und Y Groß und klein hab ich versucht immer der gleich Fehler.
Title: Re: Was soll das für ein Fehler sein ? which is of non-class type `DGNat'
Post by: Schranz0r on 2015-Jan-31
Lade doch bitte mal deinen Code irgendwo rauf und schick mir den Link per PM dann kann ich dir besser helfen.
Title: Re: Was soll das für ein Fehler sein ? which is of non-class type `DGNat'
Post by: LukasOK on 2015-Jan-31
wie und wo
Title: Re: Was soll das für ein Fehler sein ? which is of non-class type `DGNat'
Post by: spacefractal on 2015-Jan-31
DGNat is a int (etc a%=100). You might have used float? You might have used int in the type and float to pass it (or the other way). That might cause the error.
Title: Re: Was soll das für ein Fehler sein ? which is of non-class type `DGNat'
Post by: kanonet on 2015-Feb-01
Das Ändern des Namens sollte eigentlich nicht zu solch einem Fehler führen, das sieht ganz klar nach irgendeinem Schreibfehler aus, eventuell einem der durch das Neuladen der Datei und die Groß-/Kleinschreibe-Korrektur automatisch erzeugt wurde. Um dir zu helfen, müssen wir mindestens sehen, an welcher Stelle er vermutlich auftrat, außerdem brauchen wir die Type-Deklaration, nur wenn wir sehen, wie der Type/die Klasse gebildet wurde, können wir Unstimmigkeiten im Aufruf entdecken.

Übrigens sollte in einer Funktion innerhalb eines Types keine Variable existieren, welche den selben Namen trägt, wie eine der Type-eigenen Variablen/ Mitgliedern. Das funktioniert zwar meist, kann aber auch zu seltsamen Fehlern führen (Grund liegt im C++ zu dem GLBasic deinen Code übersetzt).