Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 13.11.2003, 15:45 Titel: Pixelgenaue Trefferüberprüfung |
|
|
Hallo Leute, ich arbeite grade an einem 2D Shooter à la Moorhuhn in C++ und DirectX 7.
Nun habe ich eine Frage:
Wie kann ich prüfen ob die Mauskoordinate in dem geblitteten Bild liegt?
Also ich habe MausX, MausY und will prüfen ob die in einem mit hilfe eines Colorkeys geblitteten Grafik liegen. Gibt es da eine einfache Möglichkeit? |
|
Nach oben |
|
 |
Christian Rousselle Site Admin

Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 13.11.2003, 16:56 Titel: |
|
|
Sollte was im Buch und im Forum zu stehen. |
|
Nach oben |
|
 |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 13.11.2003, 17:41 Titel: |
|
|
im Buch steht aber doch nix zur pixelgenauen kontrolle oder habe ich da was übersehen???
und im Forum habe ich bis jez auch nix gefunden was ich wissen möchte... |
|
Nach oben |
|
 |
Zyrian Super JLI'ler

Anmeldedatum: 30.08.2003 Beiträge: 321 Wohnort: Essen Medaillen: Keine
|
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 13.11.2003, 18:12 Titel: |
|
|
Zuerst prüfst du, ob die Maus im Bounding Rectangle deines Objektes ist, ist dies der Fall, so musst du die Surface locken und prüfen, ob der Cursor auf einem nicht transparenten Pixel ist... ist dies auch der Fall so wird das Objekt getroffen. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 13.11.2003, 19:00 Titel: |
|
|
das mit dem rechteck prüfen kriege ich ja noch hin, wie prüfe ich aber ob es auf einem nicht transparenten Pixel liegt???
DANKE IM VORRAUS!!! |
|
Nach oben |
|
 |
Erni Junior JLI'ler
Anmeldedatum: 29.10.2003 Beiträge: 54
Medaillen: Keine
|
Verfasst am: 13.11.2003, 19:23 Titel: |
|
|
Code: |
if(!(Pixels[global_mouseY * nPitch + global_mouseX]==EXAKTE_FARBE_DEINES_TRANSPARENTEN_PIXELS_RGB_ODER_WAS_AUCH_IMMER))
{
/* ... Objekt getroffen ... */
}
|
Ernie[/code] |
|
Nach oben |
|
 |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 13.11.2003, 19:45 Titel: |
|
|
danke, wie locke ich denn das surface?
muss ich das dann einfach locken und deinen code einfügen???
also auch nur die mauskoordinaten und die Farbe ersetzen? |
|
Nach oben |
|
 |
Erni Junior JLI'ler
Anmeldedatum: 29.10.2003 Beiträge: 54
Medaillen: Keine
|
Verfasst am: 13.11.2003, 19:53 Titel: |
|
|
Hi, du musst dein Surface mit LockRect "locken" und auch wieder unlocken mit UnlockRect. Bevor du meinen Code nimmst musst du noch den Pitch sowie die pbits deiner Oberfläche berechnen, je nachdem wieviel Bit dein Bild hat. Im 2. Buch kap 20.5 steht sehr viel darüber. |
|
Nach oben |
|
 |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 14.11.2003, 13:57 Titel: |
|
|
ich habe leider das 2. Buch nicht...
also ich habe ein 24bit BMP Bild, könnte einer mal bitte den Code posten? |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 14.11.2003, 14:04 Titel: |
|
|
Wenn du mit DirectDraw arbeitest, kannst du das auch im 1. Buch nachschlagen.
Das kommt AFAIK vor dem Sternenfeld. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 15.11.2003, 14:14 Titel: |
|
|
ich finde das im Buch einfach nicht...
auf welcher Seite steht das??? |
|
Nach oben |
|
 |
Hasenfuß Senior JLI'ler

Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 15.11.2003, 14:20 Titel: |
|
|
Im 1. Buch: S.348 ff. |
|
Nach oben |
|
 |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 18.11.2003, 15:24 Titel: |
|
|
danke erstmal für die Angabe, dort steht aber ja nur wie man auf Pixel einer Oberfläche zugreift...
Ich möchte aber prüfen ob die Mauskoordinate auf eine Stelle zeigt die in der transparenten FArbe dargestellt wär...
Aber ich blitte ja mehrere Sachen auf die Oberfläche, wie sieht das ganze dann aus?
DANKE IM VORRAUS!!!! |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 18.11.2003, 15:33 Titel: |
|
|
Na dann ziehst du eben noch von den Mauskoordinaten die Koordinaten, an denen das Surface auf den Bildschirm geblittet wird, ab und kannst dann mit der "neuen" Mausposition und dem Surface berechnen, auf welchem Pixel des Surfaces die Maus liegt  _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
|