SFML и C++ Уроки \ Разработка игр › Форумы › SFML готовые решения (сниппеты) и советы › Идея создания инвентаря через массив › Ответ в теме: Идея создания инвентаря через массив
Реализовал взаимодействие со всеми иконками,теперь при нажатии на иконку она изменяется на белую По мере разработки буду дополнять код.
C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
if (event.type == Event::MouseButtonPressed)//если нажата клавиша мыши if (event.key.code == Mouse::Left)//а именно левая if (pos.x>view.getCenter().x+312&&pos.y>view.getCenter().y-89&&(pos.x<(view.getCenter().x+312)+11*34)&&(pos.y<(view.getCenter().y-89)+7*43)) { if(act){ if(act) for (int i = floor((pos.y-view.getCenter().y-89) / 43);i<7; i++)// //if(il!=i) if(act) for (int j = floor((pos.x-(view.getCenter().x+312 ))/ 34);j<11; j++) a=floor((pos.y-(view.getCenter().y-89))/43); b=floor((pos.x-(view.getCenter().x+312 ))/ 34); //if(j!=jl||i!=il) if (((TileInventory[a][b] == '0')||(TileInventory[a][b] == 's')||(TileInventory[a][b] == 'h')||(TileInventory[a][b] == 'f')||(TileInventory[a][b] == 'b')||(TileInventory[a][b] == 'l')||(TileInventory[a][b] == 'p')||(TileInventory[a][b] == 'n'))) { //jl=j; TileInventory[a][b] = ' '; act=false; // dX = pos.x - (view.getCenter().x + 312)+j*34;//делаем разность между позицией курсора и спрайта.для корректировки нажатия // dY = pos.y - (view.getCenter().y-89)+i*43;//тоже самое по игреку goto U; isMove = true;//можем двигать спрайт } }break; }break; U: if (event.type == Event::MouseButtonReleased) if (event.key.code == Mouse::Left) act=true; isMove = false; } |