Image Befehle funktionieren nicht mit Textur eines Sprites

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

BigSnake

Betreff: Image Befehle funktionieren nicht mit Textur eines Sprites

BeitragMo, Aug 09, 2004 12:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Sprite wird mit folgendem Code erstellt :

Code: [AUSKLAPPEN]

Function spReCreate(parSprite.spSprite,parWidth=100,parHeight=100)
   If Not parSprite\Sprite Then
      ; Der Sprite existiert noch nicht
      parSprite\Sprite = CreateSprite()
   EndIf
   
   parSprite\X = 0
   parSprite\Y = 0
   parSprite\Width = parWidth
   parSprite\Height = parHeight
   parSprite\Angle = 0.0
   parSprite\Visible = True
   
   If parSprite\Texture Then
      parSprite\TexWidth = TextureWidth(parSprite\Texture)
      parSprite\TexHeight = TextureHeight(parSprite\Texture)
   Else
      parSprite\TexWidth = 0
      parSprite\TexHeight = 0
   EndIf
   
   ScaleSprite parSprite\Sprite,parWidth/2,parHeight/2
End Function


Code: [AUSKLAPPEN]

Function asCreatePart(Cycle,Layer,X,Y,Width,Height)
   ; Sucht nach einem freien Slot
   Local c,void,tx,ty
   
   For c = 1 To asMAX_PARTS
      If Not asProject\Part[c]\Used Exit
   Next
   
   ; Erstellt den Sprite im Slot
   spReCreate(asProject\Part[c]\Sprite,Width,Height)
   
   ; Speichert die Identifizierungs Daten
   asProject\Part[c]\Cycle = Cycle
   asProject\Part[c]\Layer = Layer
   asProject\Part[c]\X = X
   asProject\Part[c]\Y = Y
   asProject\Part[c]\Width = Width
   asProject\Part[c]\Height = Height
   
   asIndexCount = asIndexCount + 1
   
   asProject\Part[c]\Index = asIndexCount
   
   ; Macht den neuen Part zum aktiven
   asInterface\CurPart = asProject\Part[c]\Index
   asInterface\CurPartIndex = c
   
   ; Texturiert ihn mit der durchsichtigen Standart Textur
   asProject\Part[c]\Sprite\Texture = CreateTexture(Width,Height,4)
   
   SetBuffer TextureBuffer(asProject\Part[c]\Sprite\Texture)
   
   For tx = 0 To TextureWidth(asProject\Part[c]\Sprite\Texture)-1 Step 1
      For ty = 0 To TextureHeight(asProject\Part[c]\Sprite\Texture)-1 Step 1
         WritePixel tx,ty,0
      Next
   Next
   
   SetBuffer BackBuffer()
   
   EntityTexture asProject\Part[c]\Sprite\Sprite,asProject\Part[c]\Sprite\Texture
   
   ; Erneuert die Anzeige der 3d Elemente
   asInterface\UpdateAll = True
End Function


Soweit alles ok. Der Sprite ist unsichtbar, wie es sein soll. Nun will ich aber ein Image auf die Textur zeichnen. Das funktioniert aber nicht. Weder drawimage, drwablock noch copyrect funktionieren. Die normalen Zeichenfunktionen funktionieren jedoch ganz normal

Code: [AUSKLAPPEN]

Function asLoadFileToPart(Index,X,Y,ImageFile$)
   Local img = LoadImage(ImageFile)
   Local c
   
   For c = 1 To asMAX_PARTS Step 1
      If asProject\Part[c]\Index = Index Exit
   Next
   
   SetBuffer TextureBuffer(asProject\Part[c]\Sprite\Texture)
   
   ; DrawImage img,0,0 Funktioniert nicht ???
   ; DrawBlock funktioniert nicht
   ; Grafik ist geladen, da kein RuntimError
   ; Rect funktioniert !
   ; CopyRect 0,0,100,100,0,0,ImageBuffer(img) funktioniert nicht ???
   ; Warum funktionieren nur Zeichenfunktionen ?
   
   SetBuffer BackBuffer()
   
   asInterface\UpdateAll = True
   
   FreeImage img
End Function
 

Dreamora

BeitragMo, Aug 09, 2004 12:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Was heisst funktioniert nicht?

Ich würd einfach sagen, du hast den CreateTexture versaut.

Flag ist 4 -> Masked

Da fehlt eigentlich die Flag 1 für die Color
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

BigSnake

BeitragMo, Aug 09, 2004 13:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ändert rein gar nichts am Ergebnis und zudem funktionierte diese Funktion

Code: [AUSKLAPPEN]

Function spTextureWithFile(parSprite.spSprite,TextureFile$)
   If parSprite\Texture Then
      FreeTexture parSprite\Texture
      parSprite\Texture = 0
   EndIf
   parSprite\Texture = LoadTexture(TextureFile,4)
   parSprite\TexWidth = TextureWidth(parSprite\Texture)
   parSprite\TexHeight = TextureHeight(parSprite\Texture)
   EntityTexture parSprite\Sprite,parSprite\Texture
End Function


einwandfrei auch ohne Modus 1

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group