SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Бесконечный полет › Ответ в теме: Бесконечный полет
Доброго всем дня. Пишу игру-платформер на диплом. Тема эта для меня новая и интересная, но немного сложная. Время ограничено, до 3 марта нужно сдать 30% работы, посему помощь нужна срочно.
У меня возникла следующая проблема: при запуске программы карта не прогружается, а персонаж летит вниз на голубом фоне (временно выбрал этот цвет как фон (небо)). (Врагов пока не создавал, решил отработать физику и анимацию движения персонажа).
Почитал эту тему, но данные способы (изменение пути к файлу tmx, а также картинке в самом файле) ни к чему не привели.
Работаю в VS 2010. Скрин, а также картинка тайлов карты, скрин файла *.tmx в Notepad++ и листинг main.cpp прилагается.
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 |
#include <SFML/Graphics.hpp> #include <sstream> #include "Level.h" #include <vector> #include <list> //#include "Enemy.h" #include "Player.h" using namespace sf; int main() { RenderWindow window(VideoMode(1024, 600), "Apple Harvest"); view.reset(FloatRect(0,0,1024,600)); Level lvl; //объект класса Уровень lvl.LoadFromFile("levels/mymap.tmx"); //Image mapImage; //Texture mapTexture; //mapImage.loadFromFile("img/map.png"); //mapTexture.loadFromImage(mapImage); //Sprite s_map; //s_map.setTexture(mapTexture); Object player = lvl.GetObject("player"); //Object easyEnemyObject = lvl.GetObject("easyEnemy"); Image playerImage; playerImage.loadFromFile("img/fox.png"); Player p(playerImage, "Player1", lvl, 750, 500, 64, 112); //Enemy easyEnemy(easyEnemyImage, "EasyEnemy", lvl, easyEnemyObject.rect.left, easyEnemyObject.rect.top, 200, 97); float CurrentFrame = 0; Clock clock; while(window.isOpen()) { float time = clock.getElapsedTime().asMicroseconds(); clock.restart(); time = time/800; Event event; while(window.pollEvent(event)) { if(event.type == Event::Closed) window.close(); } p.update(time); //EasyEnemy.update(time); window.setView(view); window.clear(Color(10,183,214)); lvl.Draw(window); //for (int i = 0; i < HEIGHT_MAP; i++) //for (int j = 0; j < WIDTH_MAP; j++) //{ // if (TileMap[i][j] == ' ') s_map.setTextureRect(IntRect(0, 0, 32, 32)); // if (TileMap[i][j] == 's') s_map.setTextureRect(IntRect(32, 0, 32, 32)); // if (TileMap[i][j] == '0') s_map.setTextureRect(IntRect(64, 0, 32, 32)); // if (TileMap[i][j] == 'f') s_map.setTextureRect(IntRect(96, 0, 32, 32)); // if (TileMap[i][j] == 'h') s_map.setTextureRect(IntRect(128, 0, 32, 32)); // s_map.setPosition(j * 32, i * 32); // window.draw(s_map);//рисуем квадратики на экран //} //window.draw(easyEnemy.sprite); window.draw(p.sprite); window.display(); } return 0; } |