JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=6c2c2f69f6b8b3c97b095c7d0b79be05Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Mausabfrage

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Pizzabroetchen
Junior JLI'ler



Anmeldedatum: 29.02.2004
Beiträge: 55

Medaillen: Keine

BeitragVerfasst am: 05.04.2004, 19:51    Titel: Mausabfrage Antworten mit Zitat

Hi
Ich bin gerade dabei ein Leveleditor für ein Spiel zu schreiben habe aber folgendes Problem.Das Spielfeld soll aus Kacheln (32x32 Pixel) bestehen und man soll halt mit der Maus die KAcheln setzten können.Um zu bestimmen wo eine Kachel gesetzt werden soll benutze ich folgenden code:

void Spielfeld(int x,int y,int textur)
{

x= (x-19)/32;
y= (y-19)/32;

x = x*32;
y = y*32;
Direct3D.Boden(x,y,textur);

mit der x koordinate funktioniert es perfekt aber mit der y nicht...der sezt die kachel immer 1 weiter nach oben wie es soll (also auf dem Spielfeld)
kann sich einer erklären wieso?
frage die Koord mit dem Windowsnarichtensystem ab....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 05.04.2004, 20:02    Titel: Antworten mit Zitat

Ich denke es liegt am Windowsnachrichtesystem.
Man muss irgendwie die Position relativ zum Fenster bestimmen, da sonst die koordinaten nicht umbedingt übereinstimmen.

Eine einfache lösung ist es den Mauszeiger einfach auszublenden (ShowCursor(false)) und an der von der Windowsnachrit übergebenen Cursorposition einen eigenen zu zeichenen. Dann hat dieser auf jedenfall immer die richtige Position.

Natürlich kann man auch, wenn es bei der Y Position immer 1 zu hoch ist
Direct3D.Boden(x, y-1, textur); schreiben, obwohl das natürlich unschön ist. Man sollte den fehler immer da beheben wo er entsteht.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 05.04.2004, 20:26    Titel: Antworten mit Zitat

Da gibt es eine eigene Funktion dafür:
ClientToScreen oder ScreenToClient.
Die Parameter sollten in der MSDN stehen Wink
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Pizzabroetchen
Junior JLI'ler



Anmeldedatum: 29.02.2004
Beiträge: 55

Medaillen: Keine

BeitragVerfasst am: 05.04.2004, 20:31    Titel: Antworten mit Zitat

danke erstmal
werde mir die funktion mal anscheuen....

das mit dem -1 bzw +1 geht nicht, da ansonsten keine Kacheln mehr ganz oben erzeugen kann (hatte die "unschöne" Idee zuerst auch)

Edit: vielen dank mit ClientToScreen gehts perfekt Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum