Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

W jaki sposób wykryć naciśnięcie lewym przyciskiem myszy na polu


Gość Vosly_

Rekomendowane odpowiedzi

Opublikowano

Witam, 

mam pytanie w jaki sposób mogę wykryć naciśnięcie lewym przyciskiem myszy na wyrenderowanym polu mapy. Mapę renderuję za pomocą tego skryptu:

void Mapa::Draw(Mouse mouse) {

	INI SpriteINI(SpriteFile);

	SpriteINI.Open();

	SpriteINI.Load();

	for (int i = 0; i < MapSIZE_X; i++) {

		for (int j = 0; j < MapSIZE_Y; j++) {

			for (int c = 0; c < SpriteINI.n; c++) {

				if (Map[i][j] == SpriteINI.id[c]) {

					Sprite SPRITE(renderer, SpriteINI.data[c], 30 * i, 30 * j, 30, 30, false);

					SPRITE.IMG();

					SPRITE.Draw();

					SDL_DestroyTexture(SPRITE.texture);

				}

			}

		}

	}

}

void Mapa::Load(char *File) {

	string FileSize = File; FileSize += ROZSZERZENIE_SIZE;

	string FileMap = File; FileMap += ROZSZERZENIE_MAP;

	INI MapSIZE(FileSize);

	MapSIZE.Open();

	MapSIZE.Load();

	MapSIZE_X = MapSIZE.dataINT[0];

	MapSIZE_Y = MapSIZE.dataINT[1];

	FILE *fp;

	fp = fopen(FileMap.c_str(), "rb");

	if (fp == NULL) {}

	for (int i = 0; i < MapSIZE_X; i++) {

		for (int j = 0; j < MapSIZE_Y; j++) {

			fscanf(fp, "%d", &Map[i][j]);

		}

	}

	fclose(fp);

}

I chciałbym aby po wciśnięciu na pole X = 2, Y = 1 czyli Map[2][1] wyświetlono tekst ,, NACIŚNIĘTO ''. Dodam że wszystkie dane takie jak pozycja X, Y i czy wciśnięto przycisk myszy pobieram ale nie wiem w jaki sposób to zrobić.

 

Każdy komentarz otrzyma LIKE.

 

Z góry dziękuje za pomoc.

 

Mapa.png

Opublikowano

Zainclude'uj sobie windows.h na poczatek, a dalej:

Taki przykład: po wciśnięciu lewego przycisku myszy wyświetla się Hello World:

lb = 0;
while(lb!=1) // można też for(; lb!=1 , jakby while nie działał
{
if(HIBYTE(GetKeyState(VK_LBUTTON)))
{
lb = 1;
// tutaj piszesz kod który chcesz wykonać, a jeśli jest dłuższy, możesz zrobić tak, jak pokażę:
goto a;
}
}
a:
cout<<"Hello World";

Mam nadzieję, że pomogłem :)

jw19e8.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...