Textureerweiterung

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Kryan

Betreff: Textureerweiterung

BeitragMi, März 31, 2004 18:46
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
;/////////////////////////////////////////////////////////////////////////////////////////////////
;
; M a d e b y K r y a n 30.03.´04
;
;/////////////////////////////////////////////////////////////////////////////////////////////////

Type texture
Field image
Field status$
Field texid
End Type

Graphics3D 800,600,16
; eine Textur mit CreateTexture erstellen
cubetexture=CreateTexture(100,100)
;die textur einfrieren, notwendig um in den texturbuffer umzuschalten
LockTexture cubetexture
; den buffer auf den texturebuffer umstellen
SetBuffer TextureBuffer(cubetexture)
;irgendwas in die textur malen
Color 255,255,255
Rect 0,0,100,100
Color 255,0,0
Oval 0,0,100,100
Color 0,0,255
Oval 25,25,50,50
Color 0,255,0
Line 0,0,100,100
;zurück zum backbuffer
SetBuffer BackBuffer()
;texture wieder entfrieren, notwendig für ActivatedTexture
UnlockTexture cubetexture
;ActivatedTexture liefert die aktualisierte Texturid,wird immer neu sein
;ist bei jeder kleinen änderung der textur wichtig, wenn sie aktualsiert werden soll
fertigetexture=ActivatedTexture(cubetexture)
;sonst alles wie gewöhnlich...
cube=CreateCube()
camera=CreateCamera()
light=CreateLight()
PositionEntity cube,0,0,10
EntityTexture cube,fertigetexture

Repeat
TurnEntity cube,1,1,1
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End


Function CreateTexture(Xgroesse,Ygroesse)
obj.texture=New texture
obj\status$="unlocked"
obj\image=CreateImage(Xgroesse,Ygroesse)
SaveImage obj\image,Str$(obj\image)+".bmp"
Return Handle(obj)
End Function
Function ActivatedTexture(textureid)
obj.texture=Object.texture(textureid)
If obj\status$="unlocked" Then
If obj\texid<>0 Then FreeTexture obj\texid
obj\texid=LoadTexture(Str$(obj\image)+".bmp")
End If
Return obj\texid
End Function
Function NoTexture(textureid)
obj.texture=Object.texture(textureid)
FreeTexture obj\texid
DeleteFile obj\image+".bmp"
FreeImage obj\image
Delete obj
End Function
Function LockTexture(textureid)
obj.texture=Object.texture(textureid)
obj\status$="locked"
End Function
Function UnlockTexture(textureid)
obj.texture=Object.texture(textureid)
obj\status$="unlocked"
SaveImage obj\image,Str$(obj\image)+".bmp"
End Function
Function TextureBuffer(textureid)
obj.texture=Object.texture(textureid)
If obj\status$="locked" Then
Return ImageBuffer(obj\image)
Else
Return GraphicsBuffer()
End If
End Function
Function DrawTexture(textureid,x,y)
obj.texture=Object.texture(textureid)
DrawImage obj\image,x,y
End Function

Was das soll:
Ich wollte mal ein Programm schreiben, da ist rechts ein Mesh und links kann man wie bei Paint die Texture verändern...
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

bruZard

BeitragMi, März 31, 2004 19:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich verschiebe das mal ins Codearchiv.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Kryan

BeitragMi, März 31, 2004 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
na gut
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group