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
mach vorher ein DRAWRECT mit der Transparenten Farbe darunter.
Hi, das DrawRect ist schon drin, hat nichts geholfen.... Hier nun der Code
RotoCopy:
// 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:
//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:
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
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.
SETTRANSPARENCY wird direkt vor dem Aufruf von RotoCopy aufgerufen (255,0,128).. daran liegt es leider auch nicht
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]
Also i glaube, dass es bei mir geht...
kein Rosa Hintergrund? nur der Blaue Hintergrund und das, sich drehende Gesicht? oO jetzt springt der Hund aus der Pfanne....
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ß.
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