SFML и C++ Уроки \ Разработка игр › Форумы › SFML готовые решения (сниппеты) и советы › Идея создания инвентаря через массив › Ответ в теме: Идея создания инвентаря через массив
Всё, вот вам полностью реализованный инвентарь. a,b,c,d заранее оглашены в int main()
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
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)) { 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') { z='0'; isMove = true; } if (TileInventory[a][b] == 's') { z='s'; isMove = true; } if (TileInventory[a][b] == 'h') { z='h'; isMove = true; } if (TileInventory[a][b] == 'f') { z='f'; isMove = true; } if (TileInventory[a][b] == 'b') { z='b'; isMove = true; } if (TileInventory[a][b] == 'l') { z='l'; isMove = true; } if (TileInventory[a][b] == 'p') { z='p'; isMove = true; } if (TileInventory[a][b] == 'n') { z='n'; isMove = true; } TileInventory[a][b] = ' '; } } if (event.type == Event::MouseButtonReleased)//если отпустили клавишу if (event.key.code == Mouse::Left){ //а именно левую isMove = false; //то не можем двигать спрай 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)) { for (int i = floor((pos.y-view.getCenter().y-89) / 43);i<7; i++)// for (int j = floor((pos.x-(view.getCenter().x+312 ))/ 34);j<11; j++) c=floor((pos.y-(view.getCenter().y-89))/43); d=floor((pos.x-(view.getCenter().x+312 ))/ 34); TileInventory[c][d] = z; } else TileInventory[a][b] = z; } |