SetRotation -> Transparenz weg

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

flexer94

Betreff: SetRotation -> Transparenz weg

BeitragSa, Okt 02, 2010 18:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Sodele,
nachn paar Abstechern in C++ wollt ich mal wieder was mit BlitzMax machen. Jetz hab ich das Problem, dass wenn ich ein Bild per SetRotation drehe, dass dann die als Transparent gezeichneten bereiche sichtbar werden...

Hab im Forum schon den ein oder anderen Beitrag gelesen, jedoch für Blitz3D mit TFormFilter, aber das gibts ja in BMax nicht.

Gruß
Flexer

BladeRunner

Moderator

BeitragSa, Okt 02, 2010 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
BeispielCode deinerseits? Bei mir funktioniert Rotation mit Alpha problemfrei.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

flexer94

BeitragSa, Okt 02, 2010 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzMax: [AUSKLAPPEN]

Graphics 1680, 1050, 32, 0
Type SpaceShip

Field PosX:Int
Field PosY:Int
Field angle:Float
Field speed:Int
Global image:TImage

Method Rotate(newAngle:Int)
Self.angle = Self.angle + newAngle
EndMethod

Function LoadBMP(path:String)
image = LoadImage(path)
EndFunction

Function Create:SpaceShip()
Return New SpaceShip
End Function

Method Move(pSpeed:Int)
Self.speed :+ pSpeed
Self.PosX :+ Cos(angle) * speed
Self.PosY :+ Sin(angle) * speed
EndMethod

EndType

Player:SpaceShip = SpaceShip.Create()
Player.LoadBMP("ship.png")
MidHandleImage(Player.image)
Player.PosX = 10
Player.PosY = 10

While(Not KeyHit(KEY_ESCAPE))

Cls
SetMaskColor(255,0,255)

If (KeyDown(KEY_LEFT)) Then Player.Rotate(-1)
If (KeyDown(KEY_RIGHT)) Then Player.Rotate(1)
If (KeyDown(KEY_UP)) Then Player.Move(1)
If (KeyDown(KEY_DOWN)) Then Player.Move(-1)

SetRotation(Player.angle)
DrawImage(Player.image, Player.PosX, Player.PosY)
Flip

EndWhile

D2006

Administrator

BeitragSa, Okt 02, 2010 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Unter Graphics folgendes:
BlitzMax: [AUSKLAPPEN]
SetBlend ALPHABLEND


Geht allerdings nur, wenn dein Bild einen richtigen Alpha-Kanal hat. Du hast das Bild bisher nur maskiert, da kann es bei Rotation schon zu Problemen kommen.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

flexer94

BeitragSa, Okt 02, 2010 21:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibts da auch was eleganteres?

D2006

Administrator

BeitragSa, Okt 02, 2010 21:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Alphakanal statt eine Maskfarbe zu nehmen ist gerade unter BlitzMax sehr elegant. Wink
Allein, weil dir das auch partielle Transparenz ermöglicht.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

flexer94

BeitragSa, Okt 02, 2010 22:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, dan probier ich das mal aus^^

*PaintNet saugen*

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group