Würfel mit unterschiedlichen Seitentexturen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

pirahni

Betreff: Würfel mit unterschiedlichen Seitentexturen

BeitragDi, Dez 09, 2008 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
hiho, Ich möchte ein Würfelspiel machen, ohne ressourcen ausser Highscore und sound(Der BCC# 20 hat mich angeregt zu ohneressourcen) Nunja, mein Spielwürfel soll auf jeder Seite eine andere Textur haben (1 Auge, 2 Augen...) wie kann ich jetzt einem Würfel unterschiedliche Texturen für die einzelnen Flächen zuweisen?

SYSThern

BeitragDi, Dez 09, 2008 21:54
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/help/HWMultiTex

schau mal hier dürfte dir helfen

sowas macht man mit multitexture...


mfg systhern
Tools and Programms
--------------------
www.systhern.de

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDi, Dez 09, 2008 22:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstell dir selbst ein Würfel, indem du die acht Vertices setzt und dessen UV-Koordinaten bestimmst. Das ist vielleicht am Anfang etwas kompliziert, dafür lernt man dann auch vernünftige Sachen zu programmieren.

Du benötigst dazu lediglich:

CreateMesh
CreateSurface
AddVertex
AddTriangle
EntityFX

und fertig ist das ganze.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

BlackError

BeitragDi, Dez 09, 2008 22:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Das müsste doch auch mit dem Befehl: SetCubeFace gehen, oder nicht? Damit kann man jede Seite eines Würfels (Hier dein Cube) direkt ansprechen und somit bestimmt auch für jede Seite eine andere Textur zuweisen.

Gruß BlackError

The_Nici

BeitragMi, Dez 10, 2008 14:27
Antworten mit Zitat
Benutzer-Profile anzeigen
SetCubeFace ist doch für Cubemaps?
 

BlackError

BeitragMi, Dez 10, 2008 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber sollte doch trotzdem möglich sein, oder?
Ser Befehl spricht ja trotzdem jede einzelne seite an.
Kann aber leider nicht viel darüber sagen. Bin mir auch net sicher

Xaymar

ehemals "Cgamer"

BeitragMi, Dez 10, 2008 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab mir sowas mal gebastelt:
Code: [AUSKLAPPEN]
;1 Texture 4 each Side
Graphics3D 800, 600, 16, 2
SetBuffer BackBuffer()

tex = CreateTexture(32, 32,2)
SetBuffer TextureBuffer(tex)
Color 255, 255, 255
Rect 3, 3, 26, 26
Color 0, 0, 0
Rect 16, 16, 16, 16
SetBuffer BackBuffer()

;Textur für untexturierte Seite
Global CT = CreateTexture(32,32,2)
SetBuffer TextureBuffer(CT)
   Color 255, 0, 255
   Rect 0, 0, 16, 16
   Rect 16, 16, 16, 16
SetBuffer BackBuffer()

Cam = CreateCamera() : MoveEntity Cam, 0, 0, -3
Cub = CreateCube2(0, tex) : EntityFX Cub,1
Cub2 = CreateCube(Cub) : ScaleEntity Cub2, .9,.9,.9 : EntityFX Cub2,1
EntityAlpha Cub2, .25

MoveMouse 400, 300
While Not KeyHit(1)
   Cls
   RotateEntity Cub, Float(MouseY()-300)/2, Float(MouseX()-400)/2, 0
   RenderWorld
   Color 255, 255, 255
   Rect 0, 0, 50, 50
   Color 0, 0, 0
   Rect 25 ,25 ,25 ,25
   Flip
Wend
End

;Funktion
Function CreateCube2(Parent=0, T1=0, T2=0, T3=0, T4=0, T5=0, T6=0)
   If T1 = 0 Then T1 = CT
   If T2 = 0 Then T2 = CT
   If T3 = 0 Then T3 = CT
   If T4 = 0 Then T4 = CT
   If T5 = 0 Then T5 = CT
   If T6 = 0 Then T6 = CT
   
   m = CreateMesh(Parent)
   ;Front
   brush = CreateBrush(255, 255, 255)
   BrushTexture brush, T1
   Surf = CreateSurface(m, brush)
   V0 = AddVertex(Surf, +1, +1, +1, 0, 0)
   V1 = AddVertex(Surf, -1, +1, +1, 1, 0)
   V2 = AddVertex(Surf, +1, -1, +1, 0, 1)
   V3 = AddVertex(Surf, -1, -1, +1, 1, 1)
   AddTriangle(Surf, V0, V1, V2)
   AddTriangle(Surf, V2, V1, V3)
   FreeBrush brush
   
   ;Right
   brush = CreateBrush(255, 255, 255)
   BrushTexture brush, T2
   Surf = CreateSurface(m, brush)
   V0 = AddVertex(Surf, +1, -1, -1, 1, 0)
   V1 = AddVertex(Surf, +1, +1, -1, 0, 0)
   V2 = AddVertex(Surf, +1, -1, +1, 1, 1)
   V3 = AddVertex(Surf, +1, +1, +1, 0, 1)
   AddTriangle(Surf, V0, V1, V2)
   AddTriangle(Surf, V2, V1, V3)
   FreeBrush brush

   ;Back
   brush = CreateBrush(255, 255, 255)
   BrushTexture brush, T3
   Surf = CreateSurface(m, brush)
   V0 = AddVertex(Surf, -1, +1, -1, 0, 0)
   V1 = AddVertex(Surf, +1, +1, -1, 1, 0)
   V2 = AddVertex(Surf, -1, -1, -1, 0, 1)
   V3 = AddVertex(Surf, +1, -1, -1, 1, 1)
   AddTriangle(Surf, V0, V1, V2)
   AddTriangle(Surf, V2, V1, V3)
   FreeBrush brush

   ;Left
   brush = CreateBrush(255, 255, 255)
   BrushTexture brush, T4
   Surf = CreateSurface(m, brush)
   V0 = AddVertex(Surf, -1, +1, -1, 0, 1)
   V1 = AddVertex(Surf, -1, -1, -1, 1, 1)
   V2 = AddVertex(Surf, -1, +1, +1, 0, 0)
   V3 = AddVertex(Surf, -1, -1, +1, 1, 0)
   AddTriangle(Surf, V0, V1, V2)
   AddTriangle(Surf, V2, V1, V3)
   FreeBrush brush

   ;Top
   brush = CreateBrush(255, 255, 255)
   BrushTexture brush, T5
   Surf = CreateSurface(m, brush)
   V0 = AddVertex(Surf, +1, +1, -1, 0, 0)
   V1 = AddVertex(Surf, -1, +1, -1, 1, 0)
   V2 = AddVertex(Surf, +1, +1, +1, 0, 1)
   V3 = AddVertex(Surf, -1, +1, +1, 1, 1)
   AddTriangle(Surf, V0, V1, V2)
   AddTriangle(Surf, V2, V1, V3)
   FreeBrush brush

   ;Bottom
   brush = CreateBrush(255, 255, 255)
   BrushTexture brush, T6
   Surf = CreateSurface(m, brush)
   V0 = AddVertex(Surf, -1, -1, -1, 1, 1)
   V1 = AddVertex(Surf, +1, -1, -1, 0, 1)
   V2 = AddVertex(Surf, -1, -1, +1, 1, 0)
   V3 = AddVertex(Surf, +1, -1, +1, 0, 0)
   AddTriangle(Surf, V0, V1, V2)
   AddTriangle(Surf, V2, V1, V3)
   FreeBrush brush
   
   Return m
End Function

Seiten die keine Textur haben bekommen ein raster, falls man die Textur CT nicht ändert
Warbseite

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group