Jag skriver ett 2D spel i DirectX. Nu undrar jag hur jag skall hålla koll på vad som klickas på. Jag har mina sprites med alphablending och jag vill bara att det skall hända något om jag klickar på den delen av spriten som syns. Någon som har några ideer på hur jag borde lägga upp det? Beror ju lite på hur dessa områden er ut. Det var något sådant jag tänkt mig också (tror jag, jag vet inte vad bounding boxes är). Men jag har spritesen mot en annan bakgrundsbild. Kan jag då få fram vilken färg en viss sprite har? Är intr riktigt säker på att jag förstod dig rätt här nu. Men du vet väll på vilka positioner "spitesen" är? Tack för hjälpen! Hålla koll på klickandet
Sv: Hålla koll på klickandet
Men enklas borde ju vara en kombination av axisalignes bounding boxes och kontroll på pixelnivå.
Dvs. att du på grov nivå kontrollerar var du befinner dig, mha. bounding boxes. Sedan när du vet att du är på rätt område kontrollerar du om det är din transparenta färg som är under pekaren eller inte. *r det inte det har du helt enket tryckt på den och på rätt ställe.Sv:Hålla koll på klickandet
Sv: Hålla koll på klickandet
Ta en titt på bilden på:
www.agbrant.se/aacdplc.jpg
1. Först gör vi en kontroll om det finns en kollision nån stans på flygplanet. Denna kontroll är grov och inkluderar en del utrymme som inte är flygplan.
2. Sendan gör vi en lite finare kontroll med tre rektanglar.
3. För att sedan i den rektanglen vi kolliderade med på pixelnivå kontrollera om det är den transparenta färgen vi kolliderat med eller något annat (själva flygplanet).
Genom att göra det i flera steg såhär minskar man antalet beräkningar som behöver göras.
Ett hett tips är att inte använda intersect-metoden som finns på rectangle (tror jag det var) utan att göra kollisionstesterna själv med beräkningar.
Nu vet jag inte i vilket språk du skriver men C# så finns det en bra bok från apress som heter "Beginning .NET Game Programming in C#" som du nog skulle kunna få ut mycket av.Sv:Hålla koll på klickandet
Det är här jag inte vet hur jag skall göra.
3. För att sedan i den rektanglen vi kolliderade med på pixelnivå kontrollera om det är den transparenta färgen vi kolliderat med eller något annat (själva flygplanet).
Jag vet inte hur jag kan få färgen på en viss pixel från en sprite.