frog87 (Normal User)
Newbie
Messaggi: 7
Iscritto: 06/04/2009
|
ho una matrice 5x5 e in una posizione A[4][2]='X' vorre capire come posso spostarlo a destra e sinistra muovendo 1 e 2 lungo l' ultima posizione della riga solo muovendo 1 e 2.
Per farvi capire meglio devo ottenere lo stesso movimento del gioco space invaders. Per orala X riesco solo a spostarla a destra o sinista vorrei ottenere un effetto continuo del movimento .
|
|
()
Newbie
Messaggi:
Iscritto:
|
ho provato a scrivere questo sorgente(fatto in fretta, da sistemare un po'):
Codice sorgente - presumibilmente C++ |
#include<stdio.h> #include<time.h> #define COLONNE 5 #define RIGHE 5 int main(){ char array[ RIGHE ][ COLONNE ] = { { ' ', ' ', ' ', ' ', ' ' }, /*riga1*/ { ' ', ' ', ' ', ' ', ' ' }, /*riga2*/ { ' ', ' ', ' ', ' ', ' ' }, /*riga3*/ { ' ', ' ', ' ', ' ', ' ' }, /*riga4*/ { ' ', ' ', ' ', ' ', ' ' } }; /*riga5*/ char *arrayPtr = &array[ 4 ][ 2 ]; int x = 4; /*righe*/ int y = 2; /*colonne*/ int random; srand( time( NULL ) ); printf(" Riga Colonna\n\n"); while( x <= 5 && y <= 5 ){ arrayPtr = &array[ x ][ y ]; arrayPtr = 'X'; printf("%c = array [ %d ] [ %d ]\n\n", arrayPtr, x, y); arrayPtr = ' '; random = 1 + rand() % 2; x += random; if( x >= 6 ){ x = 0; y += 1; } } while( x >= 0 && y >= 0 ){ arrayPtr = &array[ x ][ y ]; arrayPtr = 'X'; printf("%c = array [ %d ] [ %d ]\n\n", arrayPtr, x, y); arrayPtr = ' '; random = 1 + rand() % 2; x -= random; if( x <= 0 ){ x = 5; y -= 1; } } system("pause"); }
|
|
|
frog87 (Normal User)
Newbie
Messaggi: 7
Iscritto: 06/04/2009
|
il mio problem pero' è spostare un lettera di indice A[4][2]='X' con i tasti 1 e 2 tipo space invaders con le freccette... in modo da sposarmi lungo la la riga della matrice . non so se mi hai compreso .
|
|
()
Newbie
Messaggi:
Iscritto:
|
secondo me ragionando ci puoi arrivare
il tuo problema è spostare una x premendo uno e due.
Chiediti cosa devi fare:
-catturare la pressione di uno di due o di qualsiasi altro tasto
come lo risolvo? con una scanf o una getchar
-decidere se spostare la tua x a destra o a sinistra
come lo risolvo? con un if decidi in che direzione spostarla
-spostare la x
come lo risolvo? scrivi la x nella cella dove la vuoi mettere, e metti un blank nella cella corrente
|
|
frog87 (Normal User)
Newbie
Messaggi: 7
Iscritto: 06/04/2009
|
si giusto .. pero' mi ritrovo a qualcosa di poco elestico nel senso che la X si sposta a destra e sinistra io vorrei un movimento che con 1 o 2 si sposti di continuo è qui che sorgeil problema... come posso creare questo movimento continuo?
|
|
()
Newbie
Messaggi:
Iscritto:
|
secondo me finchè resti sul dos sarà dura riuscire a muovere la x fluidamente.
Riuscirai sempre a muoverla di uno spazio alla volta al massimo.
Però questa è solo una considerazione personale :P non ho prove di ciò che dico.
Se qualcuno ne sa qualcosa in più, attendiamo :P
|
|
()
Newbie
Messaggi:
Iscritto:
|
per un movimento fluido devi aggiungere qualche libreria grafica, con aggiunta quindi di object oriented
|
|
frog87 (Normal User)
Newbie
Messaggi: 7
Iscritto: 06/04/2009
|
secondo voi con qualche libreria grafica riesco a ottenere questo movimento ?
|
|
()
Newbie
Messaggi:
Iscritto:
|
non ne ho mai usate ma penso che con openGL potresti riuscirci, forse anche con le DirectX
|
|