Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - trucidare

#1276
ich hab den ganzen kram mal ein wenig verbessert hier ein paar funktionen:

Code (glbasic) Select
//--------------------------------------------------------------------------------------------------
//-------------------------------------------Load Map-------------------------------------------
//--------------------------------------------------------------------------------------------------
FUNCTION LoadMap: lm_name$
// Diese Variablen sind als LOCAL definiert:
// lm_name$
LOCAL zwischenschritt$
DIM map[max_tilesx][max_tilesy][Layer]

FOR l = 0 TO Layer-1
FOR y = 0 TO max_tilesy-1
GETFILE lm_name$, y , zwischenschritt$
FOR x = 0 TO max_tilesx-1
SPLITSTR (zwischenschritt$, split$[], ",")
map[x][y][Select_Layer] = split$[x]
NEXT
NEXT
NEXT


ENDFUNCTION // LOADMAP

//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------


//--------------------------------------------------------------------------------------------------
//-------------------------------------------Draw Layer-----------------------------------------
//--------------------------------------------------------------------------------------------------

FUNCTION DrawLayer:
// Diese Variablen sind als LOCAL definiert:
//
FOR l = 0 TO Layer-1
FOR x = 0 TO max_tilesx-1
   FOR y = 0 TO max_tilesy-1
        SPRITE map[x][y][l],x*tile_size_x,y*tile_size_y
        IF SPRCOLL(map[x][y][l], x*tile_size_x,y*tile_size_y, 11998, mx, my) AND b1
        PRINT map[x][y][l], 0,410
        map[x][y][Select_Layer] = Tilenummer
        ENDIF
        IF SPRCOLL(map[x][y][l], x*tile_size_x,y*tile_size_y, 11998, mx, my) AND b2
        map[x][y][Select_Layer] = 19992
        ENDIF
   NEXT
NEXT
NEXT


ENDFUNCTION // DRAWLAYER

//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------------
//-------------------------------------------ShowTilebar----------------------------------------
//--------------------------------------------------------------------------------------------------

FUNCTION ShowTilebar: choose
// Diese Variablen sind als LOCAL definiert:
// choose
IF choose = 1
SPRITE 12000, 0, 420
SPRITE 12002, 0, 440
SPRITE 12001, 626, 440

IF SPRCOLL (11999, mx, my, 12001, 626, 440) AND b1
move = move+1
ENDIF
IF SPRCOLL (11999, mx, my, 12002, 0, 440) AND b1
move = move-1
IF move < 1 THEN move = 0
ENDIF
IF MOUSEAXIS(2) = 1
Select_Layer = Select_Layer -1
IF Select_Layer < 0 THEN Select_Layer = 0
ENDIF
IF MOUSEAXIS(2) = -1
Select_Layer = Select_Layer +1
IF Select_Layer > 2 THEN Select_Layer = 2
ENDIF

FOR x = 1+move TO 30+move
SPRITE x+(Select_Layer*1000), 10*(x-move)*2, 451
IF SPRCOLL(x+(Select_Layer*1000), 10*(x-move)*2, 451, 11998, mx, my) AND b1
Tilenummer = x+(Select_Layer*1000)
ENDIF
NEXT
ENDIF

PRINT "Layer: "+Select_Layer, 0, 0

ENDFUNCTION // SHOWTILEBAR

//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------------
//-------------------------------------------Save Map-------------------------------------------
//--------------------------------------------------------------------------------------------------

FUNCTION SaveMap: datei$
// Diese Variablen sind als LOCAL definiert:
// datei$


FOR y = 0 TO max_tilesy-1
line$ = ""
FOR x = 0 TO max_tilesx-1
line$=line$+FORMAT$(1,0,map[x][y])+","
NEXT
PUTFILE datei$, y, line$
NEXT

ENDFUNCTION // SAVEMAP

//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
#1277
1. kann ich dir nich sagen. ich kenn mich mit den meisten spielgedöhns nich aus aber ich denke ja musst du.
2. mit sprcoll kanns du ja erfahren ob dein sprite gegen die mauer gelaufen ist oder nich

3. keine ahnung...

;)
#1278
sehr geil :) meinem chat steht nichts mehr im wege ( außer die warte zei tbis zum nächsten update )

danke
#1279
also ich hab mein menu so gelöst:

Code (glbasic) Select
FUNCTION menu:
// Diese Variablen sind als LOCAL definiert:
//
IF menu_start = 1
IF KEY(208) = FALSE AND KEY(200) = FALSE AND KEY(28) = FALSE
item_press = 0
ENDIF
PRINT menu_item, 0,0

abstand = 0


DIM menu_items$[4]
menu_items$[0]="Neues Spiel"
menu_items$[1]="Spiel Laden"
menu_items$[2]="Optionen"
menu_items$[3]="Beenden"

FOR menu_count = 0 TO 3
PRINT menu_items$[menu_count], 50, 130+abstand
abstand = abstand+25
NEXT

SPRITE 1, 10, 135+menu_y

IF KEY(208) AND item_press = 0
menu_item = menu_item + 1
item_press = 1
IF menu_item < 5
menu_y = menu_y + 25
ELSE
menu_y = 0
menu_item = 1
ENDIF
ENDIF

IF KEY(200) AND item_press = 0
menu_item = menu_item - 1
item_press = 1
IF menu_item > 0
menu_y = menu_y - 25
ELSE
menu_y = 75
menu_item = 4
ENDIF
ENDIF

IF KEY(28) AND item_press = 0
menu_start = 0
ENDIF

ELSE
SELECT menu_item
CASE 1
BLACKSCREEN
STOPMUSIC
spiel("Hiro")
CASE 2
CASE 3
BLACKSCREEN
STOPMUSIC
optionen()
CASE 4
END
ENDSELECT

ENDIF

ENDFUNCTION // MENU
vielleicht konnt ich dir ja helfen
#1280
GLBasic - de / Map Editor
2007-Feb-17
an der for-schleife mit dem z

Code (glbasic) Select
FUNCTION DrawLayer:
    // Diese Variablen sind als LOCAL definiert:
    //
FOR l = 0 TO Layer-1
    FOR x = 0 TO max_tilesx-1
        FOR y = 0 TO max_tilesy-1

            FOR z = 0 TO 1005
                //------------- Layer1
                SELECT map[x][y][l]
                    CASE z
                        SPRITE z,x*tile_size_x,y*tile_size_y
                ENDSELECT
            NEXT
        NEXT
    NEXT
NEXT

ENDFUNCTION // DRAWLAYER
Habs durch SPRITE map
  • [y][l],x*tile_size_x,y*tile_size_y
ersetzt.
#1281
GLBasic - de / Map Editor
2007-Feb-16
Problem gelöst. bitte schließen
#1282
GLBasic - de / Map Editor
2007-Feb-16
hier:

Code (glbasic) Select
// --------------------------------- //
// Project: Editor
// Start: Thursday, February 15, 2007
// IDE Version: 4.094

// Globals //
GLOBAL MapX=150
GLOBAL MapY=150
GLOBAL Layer=3

GLOBAL tile_size_x = 16
GLOBAL tile_size_y = 16

GLOBAL max_tilesx = 10
GLOBAL max_tilesy = 10

GLOBAL Tilesize = 32
GLOBAL TileCount
GLOBAL cam_x
GLOBAL cam_y
GLOBAL cam_speed = 12
GLOBAL Tilenummer
GLOBAL PosYtiles=440
GLOBAL SelectEbene
GLOBAL Select_Layer = 0
// End Globals //

// Files //
LOADSPRITE "gfx/maus.bmp", 11999
LOADSPRITE "gfx/tiles/tile.bmp", 1
LOADSPRITE "", 0
// End Files //

X_MAKE2D

LoadMap("Map1.dat")
LoadFiles(1005)
//LoadTile ("gfx/tiles/tiles3.bmp",15,15)
WHILE KEY(1) = 0
DrawLayer()
ShowTilebar(1)
ShowMap(0)
MOUSESTATE mx, my, b1, b2
SPRITE 11999, mx, my
SHOWSCREEN
WEND


// ------------------------------------------------------------- //
// -=#  LOADMAP  #=-
// ------------------------------------------------------------- //
FUNCTION LoadMap: lm_name$
// Diese Variablen sind als LOCAL definiert:
// lm_name$
BLACKSCREEN
DIM map[max_tilesx][max_tilesy][Layer]

FOR l = 0 TO Layer-1
FOR x = 0 TO max_tilesx-1
FOR y = 0 TO max_tilesy-1
GETFILE lm_name$, lm_counter , map[x][y][l]
lm_counter = lm_counter + 1
NEXT
NEXT
NEXT
FOR k = 0 TO Layer-1
FOR t = 0 TO max_tilesx-1
FOR z = 0 TO max_tilesy-1
PRINT map[t][z][k], t*tile_size_x, z*tile_size_y
NEXT
NEXT
NEXT

ENDFUNCTION // LOADMAP




// ------------------------------------------------------------- //
// -=#  DRAWLAYER  #=-
// ------------------------------------------------------------- //
FUNCTION DrawLayer:
// Diese Variablen sind als LOCAL definiert:
//
FOR l = 0 TO Layer-1
FOR x = 0 TO max_tilesx-1
   FOR y = 0 TO max_tilesy-1

       FOR z = 0 TO 1005
           //------------- Layer1
           SELECT map[x][y][l]
               CASE z
                   SPRITE z,x*tile_size_x,y*tile_size_y
           ENDSELECT
       NEXT
   NEXT
NEXT
NEXT

ENDFUNCTION // DRAWLAYER

// ------------------------------------------------------------- //
// -=#  LOADFILES  #=-
// ------------------------------------------------------------- //
FUNCTION LoadFiles: num
// Diese Variablen sind als LOCAL definiert:
// num
FOR x = 1 TO num
LOADSPRITE "gfx/tiles/sprite"+x+".bmp", x
LOADSPRITE "gfx/tiles/sprite"+(x+1000)+".bmp", x+1000
LOADSPRITE "gfx/tiles/sprite"+(x+2000)+".bmp", x+2000
NEXT

LOADSPRITE "gfx/win.png", 12000
LOADSPRITE "gfx/rechts.png", 12001
LOADSPRITE "gfx/links.png", 12002

ENDFUNCTION // LOADFILES

// ------------------------------------------------------------- //
// -=#  SHOWTILEBAR  #=-
// ------------------------------------------------------------- //
FUNCTION ShowTilebar: choose
// Diese Variablen sind als LOCAL definiert:
// choose
IF choose = 1
SPRITE 12000, 0, 420
SPRITE 12002, 0, 440
SPRITE 12001, 626, 440

IF SPRCOLL (11999, mx, my, 12001, 626, 440) AND b1
move = move+1
ENDIF
IF SPRCOLL (11999, mx, my, 12002, 0, 440) AND b1
move = move-1
IF move < 1 THEN move = 0
ENDIF
IF MOUSEAXIS(2) = 1
Select_Layer = Select_Layer -1
IF Select_Layer < 0 THEN Select_Layer = 0
ENDIF
IF MOUSEAXIS(2) = -1
Select_Layer = Select_Layer +1
IF Select_Layer > 2 THEN Select_Layer = 2
ENDIF
FOR x = 1+move TO 30+move
SPRITE x+(Select_Layer*1000), 10*(x-move)*2, 451
NEXT
ENDIF

PRINT "Layer: "+Select_Layer, 0, 0

ENDFUNCTION // SHOWTILEBAR



// ------------------------------------------------------------- //
// -=#  SHOWMAP  #=-
// ------------------------------------------------------------- //
FUNCTION ShowMap: para
// Diese Variablen sind als LOCAL definiert:
// para
//DIM map2[40][26][3]
IF para = 1
FOR l = 0 TO Layer-1
FOR x = 0 TO max_tilesx
FOR y = 0 TO max_tilesy
DRAWLINE x*16, y*16, x*16+16, y*16, RGB(255,255,255)
DRAWLINE x*16, y*16, x*16, y*16+16, RGB(255,255,255)
NEXT
NEXT
NEXT
ENDIF
ENDFUNCTION // SHOWMAP
ich hab mit dem code 26 fps... ohne anzeigen hab ich 30 fps... is das nich ein wenig viel zu langsam?

und hier noch ein bild:

http://trucidare.tr.funpic.de/shot.jpg
#1283
GLBasic - de / Map Editor
2007-Feb-16
Hallo,
ich bau gerade an einem map editor, jedoch umso größer die map um so mehr lagt es. bei einer map von 10x10 mit 16x16px großen sprites gehts noch aber bei 20x20 lagt es schon. ich habe alle neuen treiber druf und trotzdem sehr langsam das ganze.

kann mir jemand helfen?
#1284
Hallo cyby,

könntest du auch den erweietreten code einstellen? und vielleicht eine testmap? ich habe ein rpg projekt angefangen und bräuchte eine tile engine. vielleicht kannst du mir ja helfen.

danke
trucidare
#1285
GLBasic - de / GP2X
2007-Feb-11
ansprechen kannst du die tasten genau wie auf dem pc. dabei ist das steuerkreuz gleich den pfeiltasten. x meine ich ist die linke oder  rechte maustaste den rest habe ich bishe rnicht benötigt, werde aber erfahrungen mitteilen.
#1286
genau das mein ich. wäre sehr nütztlich um den server zu testen.
#1287
Hab heute endlich meine Lizenz bekommen und portiere gerade meinen chat. nur hab ich ein Problem mit dem server. ich möchte gern das man den server minimieren kann und nebenbei weiterarbeiten kann. bisher habe ich noch nichts gefunden, das mein problem löst.

vielleicht habt ihr ja eine lösung.

mfg
trucidare
#1288
GLBasic - de / GP2X
2007-Feb-07
Hallo,
ich bin am überlegen mir GLBasic zu leisten, da ich ein gp2x habe und ich gern mal eine neue sprache ausprobieren will. Bisher lief noch kein simples programm auf meinem gp2x, das ich mit der demo kompileirt habe aber das wird sich hoffentlich noch ändern.
Da ich Azubi bin sind 68â,¬ doch ein wenig viel für mal so eben anschaffen. wie sieht es mit rabatt für arme azubis aus?

bitte eine mail an: ntonagel@gmx.de
oder per icq: 208714324

mfg trucidare ;)