Probleme mit VK_UP

Programmieren in C++
Antworten
Autor
Nachricht
Benutzeravatar
Beltar
7 Bit
Beiträge: 214
Registriert: Di Feb 13, 2007 10:01
Wohnort: Stein (nähe St. Pölten(A))
Kontaktdaten:

Probleme mit VK_UP

#1 Beitrag von Beltar » Mo Apr 13, 2009 13:05

Hi
Jetzt mach ich schon wieder mal ein Thema auf (hoffe das ich nicht schon zuviel rumspam^^)

Ich habe das Problem, dass bei allen spielen die ich schreibe automatisch VK_UP aktiviert ist:
d.h Wenn ich ins Spiel komme, läuft mein Char immer nach oben

Ich wollte mal wissen ob das an meinen GP2x liegt oder am Programm
könnte das mal wer ausprobieren:
wenn der Balken voll ist, kann man den Cursor bewegen

mfg
Beltar
fight.rar
(169.96 KiB) 92-mal heruntergeladen

Benutzeravatar
Thrake
11 Bit
Beiträge: 2400
Registriert: Do Aug 25, 2005 21:08
Wohnort: München
Kontaktdaten:

Re: Probleme mit VK_UP

#2 Beitrag von Thrake » Mo Apr 13, 2009 18:10

es fehlen dll Dateien dateien, um das zu starten...

Klaus
8 Bit
Beiträge: 474
Registriert: Mi Dez 10, 2008 20:42

Re: Probleme mit VK_UP

#3 Beitrag von Klaus » Mo Apr 13, 2009 23:37

Da kein Linux-Binary oder Makefile dabei war konnte ich das Programm nicht ausprobieren. Aber sind das alle Source-Dateien, oder bin ich zu betrunken? In beiden main.cpp-Dateien konnte ich als einzige behandelte Aktion nur das Beenden des Programms finden (bei Ctrl-C und <Start>). Wenn da was von Anfang an läuft, dann dürfte das nichts mit den Tasten zu tun haben.
Always bet on Duke.

Benutzeravatar
Beltar
7 Bit
Beiträge: 214
Registriert: Di Feb 13, 2007 10:01
Wohnort: Stein (nähe St. Pölten(A))
Kontaktdaten:

Re: Probleme mit VK_UP

#4 Beitrag von Beltar » Di Apr 14, 2009 12:11

ups, sorry
Hatte unabsichtlich die Dateien zu einem alten rar archive dazugeladen.
Ich bräuchte wen der das auf seinen GP2x ausprobiert.
Auf dem PC läuft das Programm ja richtig, nur am GP2x wird dauernd VK_UP gesendet, jetzt will ich halt wissen, ob mein GP2x einen Fehler hat, oder ich was falsch programmiert hab.

keyevent abfragen mach ich mit dieser Funktion:

Code: Alles auswählen

int getKeyEvent(void)
{
    int ret = FALSE;
    SDL_PollEvent(&event);
    if(event.type == SDL_KEYDOWN)
        ret = event.key.keysym.sym;
    if(event.type == SDL_JOYBUTTONDOWN)
        ret = event.jbutton.button;
     
    return ret;     
}
Sorry hätte ein paar mehr infos geben sollen

mfg
Beltar
fight.rar
(120.41 KiB) 84-mal heruntergeladen
Einfach auf den GP2x kopieren und starten, nach ein Paar Sekunden kann man einen Cursor bewegen

KidPaddle
8 Bit
Beiträge: 265
Registriert: So Mai 14, 2006 12:18
Wohnort: Bayern

Re: Probleme mit VK_UP

#5 Beitrag von KidPaddle » Di Apr 14, 2009 12:25

Du rufst in deiner Hautpschleife in main.cpp die Methode run() auf, welche wieder, leicht versteckt, die Methode move() aufruft. Diese bewegt bei jedem Aufruf den Spieler um 5 Pixel nach links.

Der Aufruf passiert bei jedem Schleifendurchlauf, die Taste VK_UP wird dabei nicht geprüft.

Gruß
Thomas

Benutzeravatar
Beltar
7 Bit
Beiträge: 214
Registriert: Di Feb 13, 2007 10:01
Wohnort: Stein (nähe St. Pölten(A))
Kontaktdaten:

Re: Probleme mit VK_UP

#6 Beitrag von Beltar » Di Apr 14, 2009 13:02

KidPaddle hat geschrieben:Du rufst in deiner Hautpschleife in main.cpp die Methode run() auf, welche wieder, leicht versteckt, die Methode move() aufruft. Diese bewegt bei jedem Aufruf den Spieler um 5 Pixel nach links.

Der Aufruf passiert bei jedem Schleifendurchlauf, die Taste VK_UP wird dabei nicht geprüft.

Gruß
Thomas
Der Sourcecode von der ersten RAR Datei ist veraltet und hat nichts mit dem VK_UP Problem zu tun.
Bei der aktuellen Version wartet der Spieler bis sein Balken voll ist, und dann kann man einen kleinen "Cursor" auf der linken Seite des Feldes bewegen. Genau bei diesem hab ich das Problem, das der Cursor immer nach oben geht.

mfg
Beltar

EDIT: Neuste Erkenntnisse:
Wenn ich mit Open2x die Buttons remappe, d.h. Ich leg VK_UP auf VK_UP_LEFT und frage auf dieses ab, kann ich das Programm so steuern wie ich es vorgesehen hatte.
Irgenwie hat mein Programm, bzw open2x Probleme mit Button0 (UP)

edit2: Problem gelöst,
Ich sollte mich nicht einfach auf die SDL Libaries von meiner Schule verlassen, zur Funktion gehört noch ein

Code: Alles auswählen

#define FALSE 0
dazu. :D

Code: Alles auswählen

int getKeyEvent(void)
{
    int ret = FALSE;
    SDL_PollEvent(&event);
    if(event.type == SDL_KEYDOWN)
        ret = event.key.keysym.sym;
    if(event.type == SDL_JOYBUTTONDOWN)
        ret = event.jbutton.button;
     
    return ret;     
}

Antworten

Zurück zu „C++“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast