Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    25

    [Allegro/C++] ciclo for

    sto usando la libreria allegro in c++ e sto cercando di creare un giochino, fin ora sono riuscito a fare un carro armato che si muove e che spara. per farlo sparare ho messo un for che mi visualizza il colpo ogni tot di tempo, spostato nella direzione opposta del carro armato. e fino a qui ci siamo solo che quando il colpo si sta muovendo, il carro rimane fermo e non posso muoverlo finchè non esce dal for. come posso farlo muovere senza l'interruzione del for??

  2. #2

    Moderazione

    Ti ricordo che il linguaggio di riferimento (ed eventualmente la libreria con cui hai problemi) va inserito nel titolo; come l'altra volta, anche qui l'ho inserito io, in futuro ricordatene.

    Quanto al tuo problema, è normale che si verifichi, dato che, se stai lavorando nel for, tutto il resto nel frattempo è bloccato.

    Quello che si fa normalmente nei giochi è implementare un "game loop", ovvero un ciclo che ad ogni iterazione si occupa di aggiornare lo stato di tutti gli elementi di gioco, attende un tot (per evitare di divorare la CPU e avere temporizzazioni diverse a seconda del PC) e ricomincia.

    Per questo motivo, non puoi semplicemente animare il proiettile con un for: dovrai avere una qualche struttura dati in cui memorizzerai (1) se è stato sparato un proiettile e (2) la sua posizione, direzione e velocità corrente; ad ogni iterazione del game loop, controllerai se esiste il proiettile, e in tal caso aggiornerai la sua posizione con i dati memorizzati nella struttura in questione. Se poi vuoi avere più proiettili, dovrai prevedere più di una struttura di questo genere (probabilmente un array di struct può andare più che bene).
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.