 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
VerruecktesHuhn Super JLI'ler

Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 05.12.2002, 18:46 Titel: Selbst erstellte Menüs mit DX funzen nich... |
|
|
... und ich hab keine Ahnung warum!
Also, ich hab ne Buttonklasse geschrieben
Code: |
class Button
{
/*
Public:
*/
public:
//Button size:
RECTButtonRect;
//GS to change to:
DWORDdwGS;
//The buttons function:
intButtonsFunction(int iGS);
/*
Constructor and destructor:
*/
//Constructor:
Button();
//Destructor:
~Button();
//End
};
|
Also im Grunde nur das Rechteck, dass der Button einnimmt, und dann die funktion, die den Gamestate ändert.
Dann gibs noch ne Menüklasse, in der eigentlich nur das Image des Menüs und die Buttons sind:
Code: |
/*
Menu class:
*/
class Menu
{
/*
Public:
*/
public:
//Buttons:
ButtonButtons[16];
//Image:
LPDIRECTDRAWSURFACE7lpDDSurfImage;
/*
Constructor and destructor:
*/
//Constructor:
Menu();
Menu(int iButtons);
//Destructor:
~Menu();
//The end:
};
|
So, dann wird bei der Inputbehanlung durch folgenden Code überprüft ob der User auf nen Button gedrückt hat:
Code: |
case DIMOFS_BUTTON0:
{
if(Input.doMouseData.dwData)
{
for(int i = NULL; i < 15; i++)
{
int iGS;
iGS = 1000 + i;
if(iGamestate == iGS)
{
for(int ii = NULL; ii < 16; ii++)
{
if(Menus[i].Buttons[ii].ButtonRect.bottom >= iMouseX
&& Menus[i].Buttons[ii].ButtonRect.top <= iMouseX
&& Menus[i].Buttons[ii].ButtonRect.right >= iMouseY
&& Menus[i].Buttons[ii].ButtonRect.left <= iMouseY)
{
iGamestate = Menus[i].Buttons[ii].ButtonsFunction(iGamestate);
}
|
Menus ist ein Feld von Menüs. Wird erst mal geprüft welcher Gamestate grade dran ist und dann die Knöpfe des entsprechenden Menüs daraufhin untersucht, ob die Mauskoordinaten sich dadrin befinden.
Jetz starte ich das Programm und drücke auf den Knopf und nichts passiert.
Ich hab absolut keinen Plan woran das liegen könnte, deswegen hab ich auch so viel code gepostet, sorry.
Hoffe ihr könnt mir helfen!
PS:
Ich weiß das die Inputabfrage da ein bisschen umständlich ist, die ist aber noch im Umbau.
Cu,
VH |
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 05.12.2002, 19:13 Titel: |
|
|
Du überprüfst ::right und ::left mit der Y-Koordinate und ::bottom und ::top mit der X-Koordinate! _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
VerruecktesHuhn Super JLI'ler

Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 05.12.2002, 19:31 Titel: |
|
|
Danke, klappt aber immer noch nicht! |
|
Nach oben |
|
 |
Kampfhund Super JLI'ler
Alter: 42 Anmeldedatum: 20.07.2002 Beiträge: 408
Medaillen: Keine
|
Verfasst am: 05.12.2002, 20:10 Titel: |
|
|
debug das doch mal und guck, ob in iMouseX und Y die richtigen werte drinnstehen und guck auch mal, ob die buttons an der richtigen position liegen und die Methode ButtonFunction() den richtigen wert zurückliefert.
beim Debuggen müsstest du den fehler doch eigentlich finden. |
|
Nach oben |
|
 |
VerruecktesHuhn Super JLI'ler

Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 06.12.2002, 13:25 Titel: |
|
|
Also:
Ich hab jetzt mal folgendes versucht:
Ich hab eingestellt, dass der Gamestate beim drücken der Taste "A" gewechselt wird (Mouse behandlung hab ich weggelassen). Dann hab ich kopiliert, gestartet, "A" gedrückt und .... .... (Trommelwirbel) es hat geklappt! (Posaunen und Konfetti, usw...)
Dann hab ich mal den Cooperativelevel der Mouse auf "Exclusive" gestellt, hab ein bildchen gemalt, und lass das Bildchen dann immer auf die Mouseposition malen. Dann hab ich das ganze kopiliert (nun wieder mit Mousebehandlung) und die Maus bewegt und ... ... (wieder Trommelwirbel) nichts ist Passiert (Ein "Ooohhh...")! Auch das Bildchen hat sich nicht bewegt!
Wenn ich nun allerdings auf irgendne Taste der Tastatur drücke, bewegt sich das Bildchen nach rechts.
Jetzt hab ich mal vor die Tastaturabfrage ein "//" gesetzt und nochmal versucht, mit dem selben Ergebniss! Obwohl die Tastatur nicht abgefragt wird, verschiebt sich das Kästchen beim drücken einer Taste der Tastatur!
Habt ihr ne Ahnung? |
|
Nach oben |
|
 |
VerruecktesHuhn Super JLI'ler

Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 06.12.2002, 13:29 Titel: |
|
|
Ich hab jetzt den Cooperativelevel wieder auf "NonExclusive" gestellt, dass Bildchen und so aber gelassen.
Aber:
Egal wie ich die maus bewege, ob nach links oder rechts, ob nach oben oder unten, das Bildchen bewegt sich nur nach rechts! |
|
Nach oben |
|
 |
|
|
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
|