Autor Beitrag
basti-s
Hält's aus hier
Beiträge: 3

Win 2000
D6 Prof
BeitragVerfasst: Fr 11.02.05 15:34 
Hi,
Ich möchte in einem Spiel eine Animation einbauen. Und zwar soll ein (logischerweise runder) Ball durch das Spiel rollen. Das ganze soll aber nicht auf einer einfachen Farbe sondern auf einem Hintergrundbild passieren. Ich habe es bisher nur geschafft, per Timer alle paar Millisekunden eine andere Grafik aus einer TImageList aufzurufen und einem TImage zu "überweisen". Allerdings sieht das ganze nicht so schön aus. Es ist ziemlich pixelig und (obwohl die Transparente Farbe des TImage nur am äußeren Rand des Bildes zu finden ist, und somit sowieso transparent wird...) es ist innerhalb der Grafik eine Stelle transparent. Sprich da ist so ein Fleck auf dem Ball, der der (noch)Hintergrundfarbe entspricht.

Hm, eigentlich wollte ich nur wissen, ob es eine andere/bessere Variante gibt, Animierte Grafiken oder Videos transparent zu machen.

Ich hoffe ihr versteht, was ich meine. Kann mir da jemand helfen?
HolgerB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 91

Win XP
D6 Pers
BeitragVerfasst: Fr 11.02.05 16:32 
Hallo,

der Schlüssel zu nicht pixeligen Rändern ist entweder ein Alpha Kanal oder einfaches AntiAliasing (oder wie man das auch immer schreibt).

Am einfachsten ist der Alpha Kanal. Eine Bitmap kann auf 32Bit Farben basieren. Dabei sind drei für die Farbe, mit der dritten bestimmst du ob ein Pixel durchsichtig sein soll oder nicht oder nur halb. Wenn du den Rand auf 50% setzt, verschmilzt er leicht mit dem Hintergrund und es Pixelt nicht so sehr.

AntiAliasing macht im Prinzip das gleiche. Dabei werden Pixel aus den Rändern mit den umliegenden Pixeln gemischt.

Schau mal unter [url]www.graphics32.org [/url]da findest du tolle Units die beides können.

Dort solltest du dir auch die Layers anschauen, damit kann man Grafiken wie z.B. deinen Ball einfach über anderen bewegen, allein durch setzen der Koordinaten.

Gruß
Holger