ok, risolto!!! Il codice di prima era giusto. L'unico problema era il movimento del pacman.
Rispiego velocemente il procedimento, forse non ero stato chiaro. Dunque

1- creo una matrice, facciamo questa semplice
codice:
char mappa[4][3] =
{
"XXX",
"XXX",
"     ",
"XXX",
};
ora con un doppio ciclo di for scansiono la matrice (i contatori li ho chiamati righe e colonne)
All'interno del doppio ciclo for ho scritto un if che disegna un muretto quando i contatori incontrano una x. La posizione di ogni muretto è data dal contatore colonne * 30 e dal contatore righe * 30 (30 perchè se lasciassi solo righe e colonne, i muretti sarebbero attaccati l'un l'altro). Facciamo un esempio.
il doppio ciclo for scansiona la matrice e quando arriva alle coordinate mappa[1][1] allora disegna un muretto nella seconda fila della seconda colonna con le coordinate 1 * 30 (x) e 1 * 30 (y) quindi le coordinate di quel muretto sono 30 e 30.

Ora creiamo il pacman (le cui coordinate sono x e y). Esso dovrà stare in uno spazio vuoto. Per esempio quello della matrice mappa[2][1]. Per fare ciò basta scrivere

x = 1 * 30; // 30
y = 2 * 30; // 60

Per farlo muovere aumenterò le varie coordinate di 30 (in questo modo andrà velocissimo, per renderlo più lento utilizzerò l'istruzione rest()).

Adesso, per scrivere la collisione ho deciso di creare la stessa condizione dell'ultima volta, in questo caso solo per le collisioni verso l'alto, ma nel codice originale ho calcolato le collisioni per ogni direzione.

if (mappa[(y - 30) / 30][ x / 30] != 'X')
{
muovi il pacman verso sopra
}
altrimenti no.

proviamo a risolvere l'uguaglianza in modo matematico

if (mappa [(60 - 30) / 30][30 / 30] != 'X')
if (mappa [1][1] != 'X')
{
allora muovi verso sopra

}
altrimenti no

In questo caso mappa[1][1] corrisponde a una X, quindi il pacman si ferma.


Il mio errore è stato quello di aumentare la posizione del pacman di 2 ogni volta, in questo modo solo poche volte si incasellava perfettamente con la matrice. Spostandolo di 30 in 30 si incasella perfettamente, infatti la scala di proporzione è 30 : 1. Ora il mio unico problema è che usando rest, il pacman non reagisce subito ai comandi, ma gli ci vuole circa 1 / 2 di secondo. Qualche consiglio?