RotoCopy Transparenz Probleme

Previous topic - Next topic

CptnRoughnight

Hi Leute,
nachdem ich seid gestern diesen Threaf :

http://www.glbasic.com/forum/index.php?topic=927.15

durchforstet habe, bin ich auf ein Problem gestoßen. Die Rotation klappt soweit, ist ja auch nicht viel zu beachten, nur bei der
Darstellung der Rotationsanimation mittels Sprite_Mid wird keine Transparenz beachtet, heißt, die Sprites die mit Grabsprite
aufgenommen wurden sind in der Grundfarbe (255,0,128) und diese Pixel werden auch gezeichnet... egal ob ich mit Smoothshading hantiere oder nicht... ich hoffe ich hab nicht wieder irgendwas kleines Überlesen und danke schonmal im Voraus den Helfenden!

LG

Edit : Werde morgen ein Beispiel reinstellen, habs heute nicht mehr geschafft und vorhin vergessen, sry

Kitty Hello

mach vorher ein DRAWRECT mit der Transparenten Farbe darunter.

CptnRoughnight

Hi, das DrawRect ist schon drin, hat nichts geholfen.... Hier nun der Code

RotoCopy:

Code (glbasic) Select

// num  = das Sprite was gedreht werden soll
// drehungs_step = nächste drehung IN Grad
// Start_num ab wo die Sprites gespeichert werden.

FUNCTION RotoCopy: num, drehungs_step, start_num

LOCAL XX, YY, Spitzenmass

GETSPRITESIZE num, XX, YY

Spitzenmass = SQR( POW(XX,2) + POW(YY,2) )



FOR Winkel = 0 TO 359 STEP drehungs_step

DRAWRECT 0,0,Spitzenmass,Spitzenmass, RGB(255, 0, 128)
ROTOSPRITE num,(Spitzenmass-XX)/2, (Spitzenmass-YY)/2, Winkel

GRABSPRITE start_num + Winkel / drehungs_step, 0, 0, Spitzenmass, Spitzenmass
CLEARSCREEN
NEXT

ENDFUNCTION


SpriteMid:

Code (glbasic) Select

//Sprite mittelpunktabhängig zeichnen

FUNCTION Sprite_Mid: num, X, Y
LOCAL XX, YY
GETSPRITESIZE num , XX, YY

DRAWSPRITE num, X-XX/2, Y-YY/2

ENDFUNCTION


Die Loop:
Code (glbasic) Select

INC tank_angle, KEY(203) - KEY(205)
IF tank_angle < 0 THEN tank_angle=359
IF tank_angle > 359 THEN tank_angle=0

INC tank_speed, (KEY(200) - KEY(208)) * 0.2

tank_speed = tank_speed * 0.9 // Hier die Windkraft anpassen

INC tank_x, tank_speed *  COS(tank_angle)
INC tank_y, tank_speed * -SIN(tank_angle)

DrawMap()
Sprite_Mid(tank_angle,tank_x,tank_y)
//ROTOSPRITE 0,tank_x,tank_y,tank_angle

PRINT "Winkel :" + tank_angle,100,100

Check_Collision()

SHOWSCREEN


SMOOTHSHADING ist,wie gesagt auf False... bin da grad etwas ratlos, woran könnte es denn liegen?
LG

Quentin

nur als Idee:

Bringt es etwas, wenn du vor RotoCopy oder innerhalb der Funktion noch mal

SETTRANSPARENCY RGB(255, 0, 128)

aufrufst? Evtl. wird vorher irgendwo schon mal SETTRANSPARENCY aufgerufen? Die Einstellung gilt ja dann bis zum nächsten Aufruf von SETTRANSPARENCY.

CptnRoughnight

SETTRANSPARENCY wird direkt vor dem Aufruf von RotoCopy aufgerufen (255,0,128).. daran liegt es leider auch nicht

CptnRoughnight

#5
Hi,

Also ich habe nochmal ein seperates Testprogramm geschrieben um die ganze Sache zu verdeutlichen. Es tritt der gleiche Effekt auf.

Eine kleine Rückmeldung ob es bei euch geht, oder wenn ihr den Fehler findet wäre cool :)

Lg

Edit: Ich hab grad herausgefunden, dass wenn ich SETTRANSPARENCY auf (0,0,0) setze dann nehmen die Augen von dem Gesicht die Hintergrundfarbe an... also geht es.. nur die (255,0,128) will er wohl nicht annehmen -.-

[attachment deleted by admin]

kanonet

Also i glaube, dass es bei mir geht...
Lenovo Thinkpad T430u: Intel i5-3317U, 8GB DDR3, NVidia GeForce 620M, Micron RealSSD C400 @Win7 x64

CptnRoughnight

kein Rosa Hintergrund? nur der Blaue Hintergrund und das, sich drehende Gesicht? oO jetzt springt der Hund aus der Pfanne....

kanonet

#8
Ja, nur blau...

EDIT: dafür ist es wirkungslos, wenn ich SETTRANSPERENCY auf eine andere Farbe ändere. Stelle ich zum Beispiel auf weiß um, dann wird zwar der rosane Rand sichtbar, jedoch bleibt das Gesicht weiß.
Lenovo Thinkpad T430u: Intel i5-3317U, 8GB DDR3, NVidia GeForce 620M, Micron RealSSD C400 @Win7 x64

CptnRoughnight

#9
Hmm interessant, dann muss es sich wohl um einen BUG handeln  :|

ist ja im Endeffekt bei mir das gleiche, auch wenn eine andere Farbe betroffen ist.

Edit: Auf meiner pandora seh ich gar nichts, so als wenn das image gar nicht da ist