fb:porticula NoPaste
Fertige TileMapping mit Standart FB Befehle
Uploader: | MB Interactive Labs |
Datum/Zeit: | 13.06.2010 13:19:13 |
'*********************************************************************************
'* Title Mapping: Funktion ist es aus eine Grafikdatei, die Bilder für meine Land
'* schaft zu finden und Anzeigen zu können.
'*********************************************************************************
'* Copyright by: MB Interactive Labs. 2010.
'*********************************************************************************
#Include once "Inc\MyGrafik.bi" 'Datei die für das Laden der 2D BMP Datein verantwortlich ist
Dim Shared Zielimg AS ANY PTR
Declare Sub Init_Tile(myBMPTile As tBMP, w As Integer, h As Integer)
Declare Sub Load_Tile(myBMPTile As tBMP, sBMP As String)
Declare Sub PutTile(myBMPTile As tBMP, index as integer, w as integer, h as integer, x as integer, y as integer, z as integer = 0)
Declare Sub CopyTile(iX As Integer, iY As Integer)
Declare Sub Close_Tile(myBMPTile As tBMP)
Sub Init_Tile(myBMPTile As tBMP, w As Integer, h As Integer)
'Bild für Tilemapping init
Init_BMP(myBMPTile)
'Speicher anlegen
Zielimg = IMAGECREATE(w,h)
End Sub
Sub Load_Tile(myBMPTile As tBMP, sBMP As String)
Load_BMP(myBMPTile,sBMP)
End Sub
Sub PutTile(myBMPTile As tBMP, index as integer, w as integer, h as integer, x as integer, y as integer, z as integer = 0)
'Berechnen der Koordinaten
Dim as double cx, cy, rw, rh, horiz, vert
index = index -1
horiz = myBMPTile.xsize/w '' Anzahl der horizontalen Tiles bei 256 = 8 Tile
vert = myBMPTile.ysize/h '' Anzahl der vertikalen Tiles bei 256 = 8 Tile
'Startpunkt des copybereich finden
cx = (index mod horiz) * w '' X-Position unseres Tiles
cy = (index \ vert) * h '' Y-Position unseres Tiles
'Mit Get den Bild aus den Bildspeicher laden
Get myBMPTile.img,(cx,cy)-(cx+(w-1),cy+(h-1)),Zielimg ' Speichert nur den Bildschirmspeicher. Wo ist das Bild was ich vorher geladen hatte hin?
'Bild anzeigen
Put (x,y),Zielimg,Trans
End Sub
Sub CopyTile(iX As Integer, iY As Integer)
'Put (x,y),Zielimg,Alpha,RGB(255,255,255)
Put (iX,iY),Zielimg,Trans
End Sub
Sub Close_Tile(myBMPTile As tBMP)
Close_BMP(myBMPTile)
'BildLöschen
ImageDestroy Zielimg
End Sub