Reklama
Pokazuje wyniki od 1 do 8 z 8

Temat: [C++] deklarowanie w while

  1. #1
    Avatar kuba_k31
    Data rejestracji
    2006
    Wiek
    30
    Posty
    2,322
    Siła reputacji
    20

    Domyślny [C++] deklarowanie w while

    witam,
    mam sobie funkcje, którą następnie umieszczam w while'u. Teraz problem polega na tym, że każdą pojedynczą zmienną muszę deklarować poza tą funkcją, ponieważ jeżeli zrobię to w funkcji to będzie się ona deklarować przez cały czas działania pętli. Gdybym chciał np. zmiennej x przypisać 5, chciałbym to zrobić w while'u, ale chciałbym aby liczba 5 została przypisana tylko raz - da się tak zrobić?
    Cytuj Minsafo napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    domknąłem

  2. #2
    Avatar Tibiarz
    Data rejestracji
    2008
    Położenie
    Tibiantis
    Wiek
    5
    Posty
    17,114
    Siła reputacji
    29

    Domyślny

    podaj konkretny przykład, co chcesz zrobić

  3. #3

    Data rejestracji
    2009
    Położenie
    Rybnik
    Wiek
    29
    Posty
    451
    Siła reputacji
    16

    Domyślny

    nie wiem czy dobrze zrozumiałem, ale może w tej pętli dodaj warunek, że jeśli zmienna x != null to nie przypisuje do niej żadnej liczby?

  4. Reklama
  5. #4
    Avatar kuba_k31
    Data rejestracji
    2006
    Wiek
    30
    Posty
    2,322
    Siła reputacji
    20

    Domyślny

    Właściwie to korzystam z biblioteki Allegro i bawię się w pisanie gry. Mam funkcję, która odpowiada za poruszanie się postaci - if key[key_left] ... itd. Funkcje te wywołuję w while'u, który odpowiada za to aby gra cały czas działała. Teraz zaczyna się część właściwa. Mam bitmapę, na której wyświetlany jest gracz: BITMAP * p1 = load_bmp("nazwa.bmp", default_palette); i chciałbym żeby kiedy wcisnę przycisk w lewo, na bitmape wchodził nowy obrazek - muszę zrobić mirror do chodzenia w lewo. Chciałem zrobić, że jeżeli wcisnę lewy klawisz to p1 = load_bmp("nazwam.bmp", default_palette); gdzie plik nazwam.bmp byłby po prostu mirrorem nazwa.bmp na której mam postać - niestety, nie mogę tak zrobić, ponieważ to się deklaruje przez cały czas kiedy wciskam klawisz w lewo, a to z kolei bardzo spowalnia program.
    Nie wiem, mam nadzieje ze dobrze wytlumaczylem. Chciałem zrobić tak jak Zed napisał: if (x != load_bmp("nazwam.bmp", default_palette);), ale wtedy wywala mi błąd, że nie mogę porównać bitmapy do char - może tu by ktoś pomógł ; p
    Cytuj Minsafo napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    domknąłem

  6. #5

    Data rejestracji
    2010
    Posty
    2,657
    Siła reputacji
    17

    Domyślny

    Zadeklaruj w globalnym kontekscie ( poza whilem ) i uzyj tego w momencie gdy wykryjesz wcisniecie w lewo w lokalnym kontekscie ( w petli )

  7. #6
    Avatar kuba_k31
    Data rejestracji
    2006
    Wiek
    30
    Posty
    2,322
    Siła reputacji
    20

    Domyślny

    Cytuj Havaran napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Zadeklaruj w globalnym kontekscie ( poza whilem ) i uzyj tego w momencie gdy wykryjesz wcisniecie w lewo w lokalnym kontekscie ( w petli )
    chciałem tego uniknąć, bo już teraz pobieram z 10 zmiennych, które spokojnie mogłyby być lokalne gdyby nie to, że funkcja wywołuje się w while'u, a zmiennych globalnych podobno powinno się unikać ; p
    jeżeli nie ma lepszego wyjścia to tak zrobię.
    Cytuj Minsafo napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    domknąłem

  8. Reklama
  9. #7
    Avatar Lord
    Data rejestracji
    2012
    Położenie
    Kąkolewnica
    Wiek
    30
    Posty
    11,647
    Siła reputacji
    20

    Domyślny

    A nie możesz użyć jakiegos warunku np.
    while(cipki)
    {
    [...]
    if (warunek) { int ::x } [...]

    Nie pamiętam dokładnie, ale :: przed nazwą zmiennej cos robiło w C++, ale zabij mnie nie pamiętam ^^
    Oblukaj, czy tak się da

  10. #8

    Data rejestracji
    2009
    Położenie
    Rybnik
    Wiek
    29
    Posty
    451
    Siła reputacji
    16

    Domyślny

    a nie możesz na samym początku(przy uruchomieniu gry) wczytać wszystkich tekstur i gdy gracz wciśnie dany klawisz to robisz coś w stylu player.setPlayerTexture(...); ?
    poza tym nie wiem jak to jest w Allegro ale ustaw limit fpsów na np. 60(żeby gra nie wykonywała pętli miliardy razy i nie jadła 100% procesora) i jakiegoś wait'a żeby 60 fpsów na każdym komputerze(niezależnie od jego wydajności) trwało tyle samo. wtedy też Twój sposób nie będzie pewnie spowalniał gry.

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. [8.5] error while saving player POMOCY!!
    Przez lichak232 w dziale Strefa developerska
    Odpowiedzi: 0
    Ostatni post: 09-07-2012, 14:27

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •