gif grafiken in data map?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

biegl

Betreff: gif grafiken in data map?

BeitragMo, Sep 13, 2004 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo,

ich hba mir mit hilfe eines arrays eine map erstellt
und zuwar eine data map.
die einzelnen tiles hab ich in ein tileset gespeichert.
in der array werden sie dann als frames aufgerufen.
jetzt meine frage wie kriege ich gifs in die map also ich hab eine tile namens wasser.gif und will das in di data map einfügen.

wie geht das?

ViciouS

BeitragMo, Sep 13, 2004 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
du musst alle tiles der map durchgehen und das entsprechende image an die gewünschte stelle malen...

Besipiel
Code: [AUSKLAPPEN]
wasser = loadimage("wasser.gif")
gras = loadimage("gras.gif")

dim map(9,9)

for x = 0 to 9
      for y = 0 to 9
            select map(x,y)
               case 1 : drawimage wasser,x*32,y*32
               case 2 : drawimage gras,x*32,y*32
            end select
      next
next
Skaten ist scheisse...
Bilanz: 3 Knochenbrüche in 4 Jahren...
und es werden mehr Laughing
 

Apocalyptic

BeitragMo, Sep 13, 2004 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Gifs können nicht mit Loadimage geladen werden. Man kann Gifs zwar mit Openmovie laden, aber ich würde definitiv ein anderes Format nehmen.
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]
 

Timo

BeitragMo, Sep 13, 2004 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
.png ist zu empfehlen! Sehr Speicherplatzschonend und ohne Verluste von Farbinformationen (also nicht wie bei .jpg Smile )
 

biegl

BeitragMo, Sep 13, 2004 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
ich versteh hier nicht ganz die select kontruktion.

select ist ja normaler weise ein ersatz für if
kannst du mir das genauer erklären?
 

David

BeitragMo, Sep 13, 2004 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Zitat:

Code: [AUSKLAPPEN]

wasser = loadimage("wasser.gif")
gras = loadimage("gras.gif")

dim map(9,9)

for x = 0 to 9
      for y = 0 to 9
            select map(x,y)
               case 1 : drawimage wasser,x*32,y*32
               case 2 : drawimage gras,x*32,y*32
            end select
      next
next



Mal konkret zu dem Beispiel. So würd ich das wirklich nicht machen...
Stell dir vor du hast 100 Tiles, wow was wäre das dann für eine krasse case Anweisung. Und wenn dann nochmal ein paar Tilesets dazukommen wirds wirklich haarig...

grüße
http://bl4ckd0g.funpic.de
 

biegl

BeitragMo, Sep 13, 2004 19:15
Antworten mit Zitat
Benutzer-Profile anzeigen
wie würdest dus machn?
 

Timo

BeitragMo, Sep 13, 2004 19:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi! für ein paar Tiles ist die Select-Konstruktion gar nicht mal so schlecht. Gut - bei über 50 Tiles würd ichs mir dann auch überlegen

Was ist denn der max. Wert in deiner Data-map? sollte er bei 255 oder mehr liegen währe es ratsam einen kleinen Mapeditor zu basteln, der die Tile-platzierung erleichtert.
  • Zuletzt bearbeitet von Timo am Mo, Sep 13, 2004 19:26, insgesamt einmal bearbeitet

Bms

BeitragMo, Sep 13, 2004 19:24
Antworten mit Zitat
Benutzer-Profile anzeigen
so:

Code: [AUSKLAPPEN]

dim bilder(9)
bilder(0) = loadimage("wasser.gif")
bilder(1) = loadimage("gras.gif")

dim map(9,9)

for x = 0 to 9
      for y = 0 to 9
        drawimage bilder(map(x,y)),x*32,y*32
      next
next
Reblonce (Jump + Run + Shoot - Game; 20 Levels): Download
 

biegl

BeitragMo, Sep 13, 2004 21:00
Antworten mit Zitat
Benutzer-Profile anzeigen
also du speicherst jetzt die gifs in ne array
und weißt jedem eine zahl zu.

und wie funzt die anzeige?

BladeRunner

Moderator

BeitragMo, Sep 13, 2004 22:27
Antworten mit Zitat
Benutzer-Profile anzeigen
... und das führen wir 3 -4 Seiten lang fort und dann wird es wieder geclosed weil nichts bei rumkommt....

*hups, bin ja eigent auf ignore...*
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

biegl

BeitragMo, Sep 20, 2004 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
kannn dazu nichma jemand n tut schreibn?
 

dubitat

BeitragMo, Sep 20, 2004 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Bms hat Folgendes geschrieben:
so:

Code: [AUSKLAPPEN]

dim bilder(9)
bilder(0) = loadimage("wasser.gif")
bilder(1) = loadimage("gras.gif")

dim map(9,9)

for x = 0 to 9
      for y = 0 to 9
        drawimage bilder(map(x,y)),x*32,y*32
      next
next



so also ich denke das dir der anfang klar sein dürfte mitm dim bilder...

also jetzt zur schleife:

for x = 0 to 9 ;für die X - Achse alle Tiles auswählen (10x10) (nicht 9x9 der rechner zählt die 0 auch wir als menschen aber nicht)
for y = 0 to 9 ;das gleiche für die Y achse also insgesamt 10x10 also 100 tiles zu zeichnen
drawimage bilder(map(x,y)),x*32,y*32 ; so hier wirds dann haarig: du hast oben das array bilder besimmt... nun läd er das bild, was im array bild an der stelle map(x,y) steht... du hast ja irgendwo ein data feld, wo die daten herkommen(oder auch aus einer mapdatei, was schlauer is) und jetzt sucht er halt dein array map nach der zahl ab, die in map(x,y) steht! kann zb. 0 für wasser oder 1 für gras oder sonstwas sein!
next
next



hoffe ich konnte dir helfen!
Erare humanum est - Irren ist Menschlich
 

biegl

BeitragMo, Sep 20, 2004 21:58
Antworten mit Zitat
Benutzer-Profile anzeigen
also dann wäre wasser 1 und gras 2
was aber wenn ich zu den animierten gifs noch ein tileset habe wie geht das dann weil da hab ich ja auch frames von o- unendlich
und wenn ich aber die 1 schon dem wasser zugeteilt habe kann ich doch nicht nochmal die 21 einem frame aus dem tile zuweisen ?
 

David

BeitragDi, Sep 21, 2004 7:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ich frage mich ehrlich gesagt, ob manche hier im Forum nicht eigenständig denken können! Oder haben diese jenigen den Sinn des Programmierens missverstanden?
Wieso kannst du dir, z.B., nicht selbst mal Gedanken über die Lösung dieses Problem's machen? Wenn du dann ne halbwegs gute Lösung gefunden hast, kannst du sie ja hier erklähren und wir anderen können gern helfen sie zu optimieren!
Aber anscheinend hast du dir noch garkeine Gedanken gemacht wie du animierte Tiles in dein Spiel einbinden könntest...

Du könntest z.B. ein Object erstellen:

Code: [AUSKLAPPEN]

Type Tile
end Type


Dieses Object hat dann ein paar Felder:

Code: [AUSKLAPPEN]

Field Index
Field Frame
Field FirstFrame
Field LastFrame


Der Index wäre dann eben die Tilenummer welche gezeichnet wird...
Frame wäre der aktuell gezeichnete Frame und wird bei jedem Update aktualisiert. FirstFrame wäre der Index des ersten Frames der Animation und LastFrame der Index des letzten Frames.

grüße
http://bl4ckd0g.funpic.de

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group