BASIC

Author Topic: Problem mit Jump and Run Spiel erste Map  (Read 1333 times)

Offline xxbastianxx

  • Mc. Print
  • *
  • Posts: 38
    • View Profile
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...

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5020
  • O Rly?
    • View Profile
Re: Problem mit Jump and Run Spiel erste Map
« Reply #1 on: 2013-Feb-26 »
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 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard