SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Итератор
В этой теме 5 ответов, 2 участника, последнее обновление Serob 5 года/лет, 7 мес. назад.
-
АвторСообщения
-
Здравствуйте, у меня есть анимация огня, я хочу сделать class с этим огнем и сделать из него итератор, чтобы призывать при смерти врагов, но у меня не получается придумать как его сделать, как стоит написать класс?
Привет скорее всего вы не понимаете что такое итератор тут подробно разьяснили про итератор Может хотите сделать анимацию типа персонаж умер и его поглотил огонь? Тогда самое простое через жизнь “если очки жизни = 0, тогда воспроизвести анимацию огня и вывести меню”.
Я понимаю, что такое итератор, я пытаюсь реализовать его, но не понимаю как, я хочу чтобы в любом случае, каком я хочу, вызывать огонь на специальные координаты, но с одной анимацией я не смогу это сделать например если два врага сразу умрут, я же не смогу вызвать два огня сразу, чтобы у них была своя независимая от других огней анимация
если два врага сразу умрут, я же не смогу вызвать два огня сразу
почему нет? делаешь простой класс “огонь” делаешь класс анимации и вызываешь их в любом удобном случае, при событии с игроком, при наступлении определённого события в игре и т.д. в таком варианте будет одинаковая на вид анимация, но она никак не зависит от появления другой анимации.
Я не могу придумать как это сделать, у меня есть 50 кадров с анимацией огня, куда мне и как присваивать вообще, я хочу, чтобы я прописывал команду, например если враг умер, то я прописываю что-то (в моем понимании void должен быть) и задаю координаты появления этого огня, подскажи пожалуйста как сделать толковый класс
Вот класс с который я придумал, но неуверен, что я вообще правильно сделал:
C++123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172class Fire {public:float posx; float posy;Sprite deathFireSp;float deathFireFr;#pragma region texturesTexture f0;Texture f1;Texture f2;Texture f3;Texture f4;Texture f5;Texture f6;Texture f7;Texture f8;Texture f9;Texture f10;Texture f11;Texture f12;Texture f13;Texture f14;Texture f15;Texture f16;Texture f17;Texture f18;Texture f19;Texture f20;Texture f21;Texture f22;Texture f23;Texture f24;Texture f25;Texture f26;Texture f27;Texture f28;Texture f29;Texture f30;Texture f31;Texture f32;Texture f33;Texture f34;Texture f35;Texture f36;Texture f37;Texture f38;Texture f39;Texture f40;Texture f41;Texture f42;Texture f43;Texture f44;Texture f45;Texture f46;Texture f47;Texture f48;Texture f49;Texture f50;#pragma endregion texturesFire(float frame){deathFireFr = frame;f0.loadFromFile("images/normal/flame/flame_01.png");f1.loadFromFile("images/normal/flame/flame_02.png");f2.loadFromFile("images/normal/flame/flame_03.png");f3.loadFromFile("images/normal/flame/flame_04.png");f4.loadFromFile("images/normal/flame/flame_05.png");f5.loadFromFile("images/normal/flame/flame_06.png");f6.loadFromFile("images/normal/flame/flame_07.png");f7.loadFromFile("images/normal/flame/flame_08.png");f8.loadFromFile("images/normal/flame/flame_09.png");f9.loadFromFile("images/normal/flame/flame_10.png");f10.loadFromFile("images/normal/flame/flame_11.png");f11.loadFromFile("images/normal/flame/flame_12.png");f12.loadFromFile("images/normal/flame/flame_13.png");f13.loadFromFile("images/normal/flame/flame_14.png");f14.loadFromFile("images/normal/flame/flame_15.png");f15.loadFromFile("images/normal/flame/flame_16.png");f16.loadFromFile("images/normal/flame/flame_17.png");f17.loadFromFile("images/normal/flame/flame_18.png");f18.loadFromFile("images/normal/flame/flame_19.png");f19.loadFromFile("images/normal/flame/flame_20.png");f20.loadFromFile("images/normal/flame/flame_21.png");f21.loadFromFile("images/normal/flame/flame_22.png");f22.loadFromFile("images/normal/flame/flame_23.png");f23.loadFromFile("images/normal/flame/flame_24.png");f24.loadFromFile("images/normal/flame/flame_25.png");f25.loadFromFile("images/normal/flame/flame_26.png");f26.loadFromFile("images/normal/flame/flame_27.png");f27.loadFromFile("images/normal/flame/flame_28.png");f28.loadFromFile("images/normal/flame/flame_29.png");f29.loadFromFile("images/normal/flame/flame_30.png");f30.loadFromFile("images/normal/flame/flame_31.png");f31.loadFromFile("images/normal/flame/flame_32.png");f32.loadFromFile("images/normal/flame/flame_33.png");f33.loadFromFile("images/normal/flame/flame_34.png");f34.loadFromFile("images/normal/flame/flame_35.png");f35.loadFromFile("images/normal/flame/flame_36.png");f36.loadFromFile("images/normal/flame/flame_37.png");f37.loadFromFile("images/normal/flame/flame_38.png");f38.loadFromFile("images/normal/flame/flame_39.png");f39.loadFromFile("images/normal/flame/flame_40.png");f40.loadFromFile("images/normal/flame/flame_41.png");f41.loadFromFile("images/normal/flame/flame_42.png");f42.loadFromFile("images/normal/flame/flame_43.png");f43.loadFromFile("images/normal/flame/flame_44.png");f44.loadFromFile("images/normal/flame/flame_45.png");f45.loadFromFile("images/normal/flame/flame_46.png");f46.loadFromFile("images/normal/flame/flame_47.png");f47.loadFromFile("images/normal/flame/flame_48.png");f48.loadFromFile("images/normal/flame/flame_49.png");f49.loadFromFile("images/normal/flame/flame_50.png");f50.loadFromFile("images/normal/flame/flame_51.png");}void fireAnim(float time, float posX, float posY){if (deathFireFr < 51) deathFireFr += 0.05*time;else deathFireFr = 0;if (deathFireFr >= 0) deathFireSp.setTexture(f0);if (deathFireFr >= 1) deathFireSp.setTexture(f1);if (deathFireFr >= 2) deathFireSp.setTexture(f2);if (deathFireFr >= 3) deathFireSp.setTexture(f3);if (deathFireFr >= 4) deathFireSp.setTexture(f4);if (deathFireFr >= 5) deathFireSp.setTexture(f5);if (deathFireFr >= 6) deathFireSp.setTexture(f6);if (deathFireFr >= 7) deathFireSp.setTexture(f7);if (deathFireFr >= 8) deathFireSp.setTexture(f8);if (deathFireFr >= 9) deathFireSp.setTexture(f9);if (deathFireFr >= 10) deathFireSp.setTexture(f10);if (deathFireFr >= 11) deathFireSp.setTexture(f11);if (deathFireFr >= 12) deathFireSp.setTexture(f12);if (deathFireFr >= 13) deathFireSp.setTexture(f13);if (deathFireFr >= 14) deathFireSp.setTexture(f14);if (deathFireFr >= 15) deathFireSp.setTexture(f15);if (deathFireFr >= 16) deathFireSp.setTexture(f16);if (deathFireFr >= 17) deathFireSp.setTexture(f17);if (deathFireFr >= 18) deathFireSp.setTexture(f18);if (deathFireFr >= 19) deathFireSp.setTexture(f19);if (deathFireFr >= 20) deathFireSp.setTexture(f20);if (deathFireFr >= 21) deathFireSp.setTexture(f21);if (deathFireFr >= 22) deathFireSp.setTexture(f22);if (deathFireFr >= 23) deathFireSp.setTexture(f23);if (deathFireFr >= 24) deathFireSp.setTexture(f24);if (deathFireFr >= 25) deathFireSp.setTexture(f25);if (deathFireFr >= 26) deathFireSp.setTexture(f26);if (deathFireFr >= 27) deathFireSp.setTexture(f27);if (deathFireFr >= 28) deathFireSp.setTexture(f28);if (deathFireFr >= 29) deathFireSp.setTexture(f29);if (deathFireFr >= 30) deathFireSp.setTexture(f30);if (deathFireFr >= 31) deathFireSp.setTexture(f31);if (deathFireFr >= 32) deathFireSp.setTexture(f32);if (deathFireFr >= 33) deathFireSp.setTexture(f33);if (deathFireFr >= 34) deathFireSp.setTexture(f34);if (deathFireFr >= 35) deathFireSp.setTexture(f35);if (deathFireFr >= 36) deathFireSp.setTexture(f36);if (deathFireFr >= 37) deathFireSp.setTexture(f37);if (deathFireFr >= 38) deathFireSp.setTexture(f38);if (deathFireFr >= 39) deathFireSp.setTexture(f39);if (deathFireFr >= 40) deathFireSp.setTexture(f40);if (deathFireFr >= 41) deathFireSp.setTexture(f41);if (deathFireFr >= 42) deathFireSp.setTexture(f42);if (deathFireFr >= 43) deathFireSp.setTexture(f43);if (deathFireFr >= 44) deathFireSp.setTexture(f44);if (deathFireFr >= 45) deathFireSp.setTexture(f45);if (deathFireFr >= 46) deathFireSp.setTexture(f46);if (deathFireFr >= 47) deathFireSp.setTexture(f47);if (deathFireFr >= 48) deathFireSp.setTexture(f48);if (deathFireFr >= 49) deathFireSp.setTexture(f49);if (deathFireFr >= 50) deathFireSp.setTexture(f50);}};нифига ты наворотил. посмотри видос платформер на SFML будет много понятно про анимацию. под видео есть ссылки на проги и исходный код. если останутся вопросы спрашивай
-
АвторСообщения
Для ответа в этой теме необходимо авторизоваться.