Problem mit Jump and Run Spiel erste Map

Previous topic - Next topic

xxbastianxx

Hallo liebe community,

ich habe vor kurzem angefangen mit GLBASIC ein Jump n Run zu programmieren. Den Spieler habe ich erfolgreich erstellt... nun versuche ich vergeblich eine Map zu erstellen.


Mein Code:

Code (glbasic) Select
// --------------------------------- //
// Project: My Jump AND Run
// Start: Monday, October, 2012
// IDE Version: 10.202


// FREE-VERSION:
// Benötigt Premium für Feature:
// 3D Grafik
// Netzwerk Befehle
//INLINE C/C++ Code






//Features:
// Singelplayer
// Level
// Levelwechsel
// Gegner
// Pixelgrafik
// Leitern
// Trampolin
// Spikes
// Start-/Zielpunkt
// ...







SETCURRENTDIR("Media") // go to media files


GLOBAL Player AS TPlayer //Spieler erstellen
GLOBAL Map AS TMap //Map erstellen



//GLOBAL PlayerImage%
//PlayerImage = GENSPRITE()
//LOADANIM "Player.png", PlayerImage, 32, 64



GOSUB Init
WHILE TRUE


   GOSUB Render
   GOSUB Update


   SHOWSCREEN

WEND


SUB Init:

Player.Init (100,100)
Map.Init("map0.txt")

ENDSUB

SUB Update:

Player.Update()
Map.Update ()


ENDSUB


SUB Render:

Map.Render ()
    Player.Render()



ENDSUB








Mein Spieler Code: (Kollision bitte auslassen)

Code (glbasic) Select


//Spieler

TYPE TPlayer

x; y
vx; vy //Vektor x,y
width%
height%
HP%
scrollx; scrolly

//...

FUNCTION Init: x, y, width% = 32, height% = 64

    self.x = x
    self.y = y
    self.vx = 0
    self.vy = 0


    self.width = width
    self.height = height

ENDFUNCTION




FUNCTION Update:

LOCAL width, height
GETSCREENSIZE width, height

//Schwerkraft
INC self.vy, 0.01


//Bewegung
IF KEY(203) THEN DEC self.vx, 1 //links
IF KEY(205) THEN INC self.vx, 1 //rechts
// IF KEY(57) AND (Map.CollisionPoint(self.x + 1, self.y + self.height +1) OR Map.CollisionPoint(self.x + self.width -1, self.y + self.height +1)) THEN self.vy = -4 //space


//trägheit
self.vx = self.vx* 0.8

LOCAL oldx, oldy
oldx = self.x
oldy = self.y

//grenze
IF self.vy > 8 THEN self.vy = 8
IF self.vy < -8 THEN self.vy = -8


//bewege & kollision
INC self.x, self.vx


// IF Map.Collision(self.X+1, self.y+1, self.width-2, self.height-2)
// self.x = oldx
// ENDIF
// INC self.y, self.vy

// IF Map.Collision(self.X+1, self.y+1, self.width-2, self.height-2)
// self.x = oldx
// self.y = oldy

// Map.ScrollX = -self.x + width/2 + self.width/2
// Map.ScrollY = -self.y + height/2 + self.height/2


// ENDIF
ENDFUNCTION



FUNCTION Render:

   DRAWRECT self.x + 1, self.y , self.width, self.height, RGB(255,0,0)
//   DRAWANIM PlayerImage, 0, self.x + 1, self.y


ENDFUNCTION

ENDTYPE




Meine Map:

Code (glbasic) Select
// --------------------------------- //
// Project: My Jump and Run
// Start: Wednesday, January 23, 2013
// IDE Version: 10.202


// FREE-VERSION:
// Benötigt Premium für Feature:
// 3D Grafik
// Netzwerk Befehle
//INLINE C/C++ Code


CONSTANT tilesize = 64

//Spielkarte

TYPE TMap

.Datas%[]
Width% ; Height%
ScrollX; ScrollY
Tileset% //speichert Frames



FUNCTION Init: Name$
LOCAL Chn% = GENFILE()
LOCAL Line$

IF OPENFILE(Chn% , Name$, 1) = FALSE THEN END

READLINE Chn, Line$
self.Width = INTEGER(Line$)

READLINE Chn, Line$
self.Height = INTEGER(Line$)

DIM self.Datas[self.Width][self.Height]


LOCAL X%,Y%
WHILE ENDOFFILE(Chn) = FALSE
READLINE chn%, line$
LOCAL Tiles$[]

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


X=0
FOREACH tile IN Tiles$[]
self.Datas[X][Y] = INTEGER(tile)
INC X
NEXT
INC Y



ENDFUNCTION

FUNCTION Update:

ENDFUNCTION

FUNCTION Render:
FOR x = 0 TO self.Width -1
FOR y = 0 TO self.Height -1
SELECT self.Datas[x][y]
CASE 0
CASE 1
DRAWRECT x*tilesize, y*tilesize, tilesize, tilesize, RGB(255, 0, 0)
ENDSELECT
NEXT
NEXT

ENDFUNCTION


ENDTYPE





Die Map soll via Texteditor 0,1,2 etc. eingelesen werden und dann entsprechend in Farbe oder nicht Farbe gesetzt werden. (0 nichts , 1 Mapstück)

Nach dem compilen gibt er mir folgende Fehleranzeige aus: "My Jump and Run.gbas"(66) error : user type is not defined : TYPE TMap is not declared


Ich bitte um Hilfe...

Schranz0r

Lade doch mal bitte dein Projekt hier rauf, dann kann ich später helfen ( oder wer anders ).
Bin allerdings vor 22:15 nicht zuhause :/
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