Was soll das für ein Fehler sein ? which is of non-class type `DGNat'

Previous topic - Next topic

LukasOK

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!

Schranz0r

Hast nen Fehler beim TYPE-Namen würde ich sagen.
Sieht schwer nach Schreibfehler beim Aufruf von TMap aus.
SELF. vergessen?!
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

LukasOK

Nein es ist leider kein Schreibfehler, der Fehler ist aufgetreten als ich den Namen des Spiels geändert habe.

Fabbio

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


D2O

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.
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

LukasOK

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.

Schranz0r

Lade doch bitte mal deinen Code irgendwo rauf und schick mir den Link per PM dann kann ich dir besser helfen.
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

LukasOK


spacefractal

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.
Genius.Greedy Mouse - Karma Miwa - Spot Race - CatchOut - PowerUp Elevation - The beagle Jam - Cave Heroes 2023 - https://spacefractal.itch.io/

kanonet

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).
Lenovo Thinkpad T430u: Intel i5-3317U, 8GB DDR3, NVidia GeForce 620M, Micron RealSSD C400 @Win7 x64