Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18

Discussione: [C/C++] problema gioco

  1. #11
    Grazie!
    E per l'altro problema?
    Fdxhccjcmvkdvovjvb h g m jvjduxhx

  2. #12
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Altro problema?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #13
    Quello delle navicelle
    Non riesco a far comparire insieme sia la navicella che ho scritto prima sia le navicelle nemiche create da un altro codice
    Appena posso scrivo l'altro codice


    Ma quindi "MODE CON COLS=200 LINES=200" dove lo devo inserire?
    Fdxhccjcmvkdvovjvb h g m jvjduxhx

  4. #14
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    codice:
    system("MODE CON COLS=200 LINES=200");
    All'inizio del main può andare bene...

    Per muovere le altre navicelle il modo più semplice è inserire all'interno del loop il codice che le disegna, evita i thread visto che non ti trovi a tuo agio nel leggere della documentazione...

    Detto ciò potresti usare una matrice per la posizione delle navicelle e ad ogni ciclo spostare le navicelle in avanti (con un delay di tempo)...
    codice:
    #include <time.h>
    //tempo in secondi:
    #define DELAY 0.2
    //all'inizio del main
    time_t now, last;
    time(&last);
    
    //nel ciclo
    
    if(difftime(time(&now), last) >= DELAY) {
      last = now;
      //codice che sposta le navicelle
    }
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #15
    allora, il nuovo codice è

    [#include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<Windows.h>
    #include<time.h>

    void GotoXY(int x, int y) { COORD CursorPos = {x, y}; HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hConsole, CursorPos); }

    main () {
    int x;
    int y;
    int muovi;
    int az=3;

    system("MODE CON COLS=100 LINES=50");

    x=45;y=48;
    GotoXY (x,y) ;
    printf("!-||-!");
    do {
    muovi = getch();
    if (muovi == 77 ) {
    system("cls") ;
    x=3+x;
    GotoXY (x,y) ;
    printf("!-||-!");
    }
    else if (muovi == 75 ) {
    system("cls") ;
    x=x-3;
    GotoXY (x,y) ;
    printf("!-||-!");
    }

    }
    while (az!=50) ;

    return 0;
    } ]



    mentre il codice delle navicelle è

    [start:

    b=rand()%200;
    GotoXY(b,a);
    printf("<(_)>");

    Sleep(1000);

    system("cls") ;
    a=a-5;
    GotoXY (b,a) ;
    printf("<(_)>");

    d=rand()%200;
    GotoXY(d,c);
    printf("<(_)>");

    Sleep(1000);

    system("cls") ;
    c=c-5;
    GotoXY (d,c) ;
    printf("<(_)>");

    Sleep(3000);
    goto start;]


    il mio problema è: dove inserire il secondo codice per evitare che il secondo annulli il primo?
    Fdxhccjcmvkdvovjvb h g m jvjduxhx

  6. #16
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Devi organizzare il tuo codice in un main e tante funzioni.

    Nel main inserisci un grande ciclo while in cui chiami le varie funzioni (che gestiscono i vari oggetti).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #17
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Originariamente inviato da Scara95
    codice:
    #include <time.h>
    //tempo in secondi:
    #define DELAY 0.2
    //all'inizio del main
    time_t now, last;
    time(&last);
    
    //nel ciclo
    
    if(difftime(time(&now), last) >= DELAY) {
      last = now;
      //codice che sposta le navicelle
    }
    uniscili, oppure come detto da oregon usa i thread

    Edit: ah, dimenticavo, evita gli sleep e sostituiscili con variabili di tempo e sottrazione, come mostrato qui sopra...
    Nell'emulare con un ciclo un sistema multi-threading l'inserimento di uno sleep non blocca solo un processo, ma entrambi...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  8. #18
    ma devo copiare un
    if(difftime(time(&now), last) >= DELAY) {
    last = now;
    al posto di ogni sleep?

    ragazzi ma io ho provato ad aggiungere

    time_t now, last;
    time(&last);

    ma mi dice

    'now' : undeclared identifier
    'last' : undeclared identifier
    'function' : incompatible types - from 'int *' to 'time_t *'

    come risolvo?
    Fdxhccjcmvkdvovjvb h g m jvjduxhx

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 © 2026 vBulletin Solutions, Inc. All rights reserved.