• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SDL2 Gra 2D Problem

Object Storage Arubacloud
0 głosów
189 wizyt
pytanie zadane 29 września 2019 w C i C++ przez Jakub Chomicz 1 Użytkownik (840 p.)

Witam mam problem otóż piszę sobie grę jest fajnie i wgl. wszystko śmiga aż postanowiłem trochę uporządkować kod który miałem tylko w main-ie więc potworzyłem pare plików i wszystko fajnie działało do momentu aż postanowiłem stworzyć oddzielną funkcję do KeyInputów otórz jak mam funkcję GetAsyncKeyState w pliku Player.cpp to wszystko ładnie śmiga ale jak w tym nowym pliku to już postać się nie chce ruszać o co może chodzić ?

#include "KEYINPUTS.h"
KEYINPUTS::KEYINPUTS()
{

}
KEYINPUTS::~KEYINPUTS()
{

}
void KEYINPUTS::MOVES(int x,int y)
{
    if(GetAsyncKeyState(VK_LEFT))
    {
        x--;
    }
    if(GetAsyncKeyState(VK_RIGHT))
    {
        x++;
    }
}
#include "Player.h"
KEYINPUTS KI;
Player::Player()
{

}
Player::~Player()
{

}
void Player::P(const char*TEX,SDL_Renderer*Ren,int x,int y)
{
    REN = Ren;
    PT = PNGMenager::PNG(TEX,Ren);
    X=x;
    Y=y;
}
void Player::Update()
{
    KI.MOVES(X,Y);
    cout<<X<<endl;
    AR.x=0;
    AR.y=0;
    AR.w=1539;
    AR.h=2976;
    BR.x=X;
    BR.y=Y;
    BR.w=AR.w/9;
    BR.h=AR.h/9;
}
void Player::Render()
{
    SDL_RenderCopy(REN,PT,&AR,&BR);
}

 

1 odpowiedź

0 głosów
odpowiedź 29 września 2019 przez j23 Mędrzec (194,920 p.)
wybrane 30 września 2019 przez Jakub Chomicz 1
 
Najlepsza
void KEYINPUTS::MOVES(int& x, int& y)
{
    if (GetAsyncKeyState(VK_LEFT)) { --x; }
    if (GetAsyncKeyState(VK_RIGHT)) { ++x; }
}

Nie znam SDL-a, ale tak patrzę w dokumentację i nie wiem, po co używasz funkcji WinAPI, skoro biblioteka ma funkcje pobierającą stan klawiatury:

const Uint8* state = SDL_GetKeyboardState(NULL);
if (state[SDL_SCANCODE_LEFT]) { --x; }
if (state[SDL_SCANCODE_RIGHT]) { ++x; }

 

Nazwy klas, metod i zmiennych pisane dużymi literami to nie jest dobry pomysł.

komentarz 30 września 2019 przez Jakub Chomicz 1 Użytkownik (840 p.)
Wciąż nie działa :/
komentarz 30 września 2019 przez j23 Mędrzec (194,920 p.)
Być może w innym miejscu jest też błąd. Brak referencji ewidentnie takim był.

Podobne pytania

0 głosów
1 odpowiedź 242 wizyt
pytanie zadane 7 października 2019 w C i C++ przez Jakub Chomicz 1 Użytkownik (840 p.)
0 głosów
1 odpowiedź 303 wizyt
pytanie zadane 15 lipca 2021 w C i C++ przez BartoszKX Nowicjusz (160 p.)
0 głosów
0 odpowiedzi 189 wizyt
pytanie zadane 3 listopada 2018 w C i C++ przez iksdek Użytkownik (550 p.)

92,536 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,922 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...