Wie c ++ Array zur Laufzeit verwenden und die Werte ändern, es hält?

stimmen
0

Sehr Anfänger Frage hier.

Also habe ich diese int-Array und mit SFML Ich habe diese int-Array verwendet Texturen auf den Bildschirm in einem Raster wie Struktur abzubilden. Ich frage mich, wie Sie gehen würden, um zu wissen, was Platz sind Sie mit der Maus während der Laufzeit über im Array ist.

int mapArr[] = { 
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0
}

^ So etwas wie so.

Also mit so etwas wie unten wird die oben ändern am weitesten links stehende Platz in eine andere Textur.

mapArr[0] = { 1 };

int mapArr[] = { 
1, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0
}

Also, wie würde ich dies implementieren, basierend auf, wenn meine Maus über die obere linke Quadrat war und wollen so etwas wie mapArr tun [0] = {1}; zur Laufzeit?

https://gist.github.com/jbax86/94ee0b326a30f4dd80efbb33791f6728

Veröffentlicht am 27/11/2018 um 17:52
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

// 25x15 array for 800x600 display are my settings.
int mapArr[];    

int MouseToMap(int x, int y, int val)
{
    mapArr[25 * y + x] = val;
};

// at a calling location inside main somewhere.  
// for sfml I put it in the event listening part of loop.
// 25 is tiles across not 0 indexed,
// 32 is tile width of tile in pixels.

sf::vector2i mVal = sf::Mouse::getPosition(window);
MouseToMap(mVal.x / 32, mVal.y / 32, 3);
Beantwortet am 17/12/2018 um 23:19
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more