Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Magazynek

Ostatnio zmodyfikowano 2010-12-27 18:12
Autor Wiadomość
Mazzir
Temat założony przez niniejszego użytkownika
Magazynek
» 2010-12-26 18:41:32
Chcę zrobić magazynek z ograniczoną liczbą naboi. Gdy robię to tak jak poniżej to gdy przytrzymam LPM to leeeci w dół. Nawet jak się kliknie bardzo szybko to zejdzie na -23 :D

if(mouse_b == 1) magazynek--;
if(mouse_b == 2) magazynek = 5;

Jak zrobić magazynek żeby nie zabierał aż tyle naboi tylko po jednym nawet jak się przytrzyma LPM ?
P-25583
jsc
» 2010-12-26 18:55:23
Spróbuj wykorzystać zdarzenie OnClick z WinAPI.
P-25585
Mazzir
Temat założony przez niniejszego użytkownika
» 2010-12-26 18:57:42
Gra jest pisana w Allegro ;p
P-25586
wojos
» 2010-12-26 18:59:09
Np poza pętlą umieścić jakąś zmienną bool Przycisk i zmieniać wartość na true po kliknięciu i przy każdym kolejnym przebiegu sprawdzać czy przycisk był już przyciśnięty.

Kod:
C/C++
bool Pressed = false;
while( /*jakiś warunek*/ ) //wstawić własny warunek
{
    if( mouse_b == 1 && Pressed == false )
    {
        magazynek--;
        Pressed = true;
    }
    if( mouse_b == 2 )
    {
        magazynek = 5;
    }
    if( mouse_b != 1 )
    {
        Pressed = false;
    }
}

Przy czym ta forma pozwoli na wystrzelenie jednego naboju na jedno przyciśnięcie (o ile dobrze zrozumiałem to o to Ci chodziło), a jakbyś chciał zrobić karabin maszynowy to byś musiał wstawić jakieś timery do kodu.
P-25587
ison
» 2010-12-26 19:02:21
podobny kod niedawno pisałem ;p
C/C++
static bool LeftMouseButtonPressed = false;
if( mouse_b == 1 && LeftMouseButtonPressed == false ) {
    LeftMouseButtonPressed = true;
    //...
}
if( mouse_b != 1 ) LeftMouseButtonPressed = false;

P-25588
Mazzir
Temat założony przez niniejszego użytkownika
» 2010-12-26 19:10:20
Dzięki wojos i ison. Dokładnie o takie coś mi chodziło jak wojos napisał. Działa pierwszorzędnie ;)
P-25589
pekfos
» 2010-12-26 19:21:38
możesz też napisać interfejs do klawiatury. mam na myśli strukturę trzymającą zmienną bool pressed i inne konieczne badziewia. lepiej tak zrobić od razu niż później na to przerabiać.
P-25590
Mazzir
Temat założony przez niniejszego użytkownika
» 2010-12-26 19:27:16
C/C++
if( magazynek <= 0 )
{
    textprintf( bufor, font, 500, 350, makecol( 0, 0, 0 ), "Magazynek Pusty!" );
    textprintf( bufor, font, 500, 370, makecol( 0, 0, 0 ), "Naciśnij PPM aby przeładować!" );
}

Czemu to się nie chce wyświetlić ? :(
P-25591
« 1 » 2 3
  Strona 1 z 3 Następna strona