DisplaySprite3d()

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

DisplaySprite3d()

Beitrag von Green Snake »

Hallo

gibt es keine möglichkeit bei displaysprite3d eine transparente farbe zu bestimmen?

habe nichts in der hilfe gefunden.

ich meine so etwas wie transparentspritecolor
-.-"
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Beitrag von Rubiko »

schau mal in den sources von PB
da is ein source davon; "Sprite3D" heißt der glaubich, da wird auch ein sprite mittels displaysprite3D dargestellt und transparent, wurde es auch gemacht mit transparentspritecolor()
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

danke

Beitrag von Green Snake »

für die erste frage danke dir
aber ich habe noch eine:

habe diesen code

Code: Alles auswählen

; English forum: http://purebasic.myforums.net/viewtopic.php?t=3723&highlight=
; Author: Pupil
; Date: 18. April 2002

;-----------------------------------------
;---------- STARFIELD DEMO----------------
;-----------------------------------------
;-------- Blitz to purebasic--------------
;-----------------------------------------


MAX_STAR = 4000
STAR_SPEED = 3
#width=800
#height=600



Dim star_x.l(MAX_STAR)
Dim star_y.l(MAX_STAR)
Dim star_z.l(MAX_STAR)

Global MAX_STAR, STAR_SPEED, star_x, star_y, start_z

If InitSprite() = 0
  MessageRequester("Error", "Can't open DirectX 7 Or later", 0)
  End
EndIf

If InitKeyboard() = 0
  MessageRequester("Error","Can't open DirectX 7 Or later",0)
  End
EndIf

If OpenScreen( #width,#height, 32, "Sprite")
  Goto StartGame
Else
  MessageRequester("Error", "Can't open screen !", 0)
EndIf
End

Procedure rnd(min.w,max.w)
  a.w = max - Random (max-min)
  ProcedureReturn a
EndProcedure

Procedure setup_stars()
  For c.w=0 To MAX_STAR
    star_x(c)= rnd(-#width/2,#width/2) << 6
    star_y(c)= rnd(-#height/2,#height/2) << 6
    star_z(c)=rnd(2,255)
  Next
  StartDrawing(ScreenOutput())
  For i = 0 To 255
    FrontColor(i, i, i)
    Box(i*3, 0, 1, 1)
  Next
  StopDrawing()
  For i = 0 To 255
    GrabSprite(i, i*3, 0, 3, 3)
  Next
  ProcedureReturn value
EndProcedure

Procedure UpdateStar()
  cos.f = Cos(0.01) : sin.f = Sin(0.01)
  For c = 0 To MAX_STAR
    star_z(c)=star_z(c) - STAR_SPEED
    x.l = star_x(c)
    y.l = star_y(c)
    star_y(c) = (y * cos - x * sin)
    star_x(c) = (x * cos + y * sin)
    If star_z(c)<=2
      star_z(c)=255
    EndIf
    s_x.w=(star_x(c)/star_z(c))+(#width/2)
    s_y.w=(star_y(c)/star_z(c))+(#height/2)
    col.w=255-star_z(c)
    DisplaySprite(col,s_x, s_y)
  Next
  ProcedureReturn value
EndProcedure


;-------------------------
; Game-LOOP
;-------------------------
StartGame:
setup_stars()

Repeat
  
  FlipBuffers()
  ClearScreen(0,0,0)
  
  UpdateStar()
  
  ExamineKeyboard()
  If KeyboardPushed(#PB_Key_Escape) ; If ESCAPE is pressed: END
    End
  EndIf
  
ForEver
dieser code erzeugt ein sternenfeld, dass auch funktioniert.
jetzt würde ich gerne diese zeilen code dort einfügen

Code: Alles auswählen

loadsprite(0,"Dieser\Pfad\Bild.bmp",0)
diese zeile code ladet mein sprite.
und jetzt möchte ich, das das bild mittels displaytransparentsprite über dem sternenfeld angezeigt wird. jetzt will ich, dass der sternen himmel unter dem bild immer NOCH DARGESTELLT WIRD
die transparente farbe ist RGB(0,0,0)

wie geht das?
habs schon probiert, doch dann wirt garnichts angezeigt (schwarzer bildschirm) oder nur das sternenfeld

wisst ihr das?
-.-"
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Keiner?

Beitrag von Green Snake »

hallo

weis keiner von euch eine antwort?

(tut mir leid, dass ich bei dieser frage so dränge, es ist einfach ungeheuer wichtig, dass ich das weiss)

danke
-.-"
Antworten