кто знает как исправить такую проблему подскажите пожалуйста ??

SFML и C++ Уроки \ Разработка игр Форумы SFML Начало работы (подключение и настройка) кто знает как исправить такую проблему подскажите пожалуйста ??

В этой теме 6 ответов, 5 участников, последнее обновление  KindRedSand 4 нед., 1 день назад.

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)
  • Автор
    Сообщения
  • #1714
    Daniel
    Daniel
    Участник
    Сообщений:1

    Зарегистрирован:
    17.09.2015

    Репутация:0

     

     

    ==================================================================================

    #include <iostream>
    #include <SFML/Graphics.hpp>

    using namespace sf;

    class Player { // класс Игрока
    public:
    float x, y, w, h, dx, dy,

    speed ; //координаты игрока х и у, высота ширина, ускорение (по х и по у), сама скорость
    int dir ; //направление (direction) движения игрока
    String File; //файл с расширением
    Image image;//сфмл изображение
    Texture texture;//сфмл текстура
    Sprite sprite;//сфмл спрайт

    Player(String F, int X, int Y, float W, float H){ //Конструктор с параметрами(формальными) для класса Player. При создании объекта класса мы будем задавать имя файла, координату Х и У, ширину и высоту
    dir = 0; speed = 0;
    File = F;//имя файла+расширение
    w = W; h = H;//высота и ширина
    image.loadFromFile(“images/” + File);//запихиваем в image наше изображение вместо File мы передадим то, что пропишем при создании объекта. В нашем случае “hero.png” и получится запись идентичная image.loadFromFile(“images/hero/png”);
    image.createMaskFromColor(Color(41, 33, 59));//убираем ненужный темно-синий цвет, эта тень мне показалась не красивой.
    texture.loadFromImage(image);//закидываем наше изображение в текстуру
    sprite.setTexture(texture);//заливаем спрайт текстурой
    x = X; y = Y;//координата появления спрайта
    sprite.setTextureRect(IntRect(0, 0, w, h)); //Задаем спрайту один прямоугольник для вывода одного льва, а не кучи львов сразу. IntRect – приведение типов

    }

    void update(float time) //функция “оживления” объекта класса. update – обновление. принимает в себя время SFML , вследствие чего работает бесконечно, давая персонажу движение.
    {
    switch (dir)//реализуем поведение в зависимости от направления. (каждая цифра соответствует направлению)
    {
    switch (dir)
    case 0: dx = speed; dy = 0; break;
    case 1: dx = -speed; dy = 0; break;
    case 2: dx = 0; dy = speed; break;
    case 3: dx = 0; dy = -speed; break;
    default: dx=0; dy=0;//по иксу задаем нулевое значение, по игреку отрицательное. получается, что персонаж идет только вверх
    }

    x += dx*time;//то движение из прошлого урока. наше ускорение на время получаем смещение координат и как следствие движение
    y += dy*time;//аналогично по игреку

    speed = 0;//зануляем скорость, чтобы персонаж остановился.
    sprite.setPosition(x,y); //выводим спрайт в позицию x y , посередине. бесконечно выводим в этой функции, иначе бы наш спрайт стоял на месте.
    }
    };

    int main()
    {
    RenderWindow window(sf::VideoMode(640, 480), “Lesson 8. kychka-pc.ru”);

    float CurrentFrame = 0;//хранит текущий кадр
    Clock clock;

    Player p(“hero.png”,250,250,96.0, 96.0);//создаем объект p класса player,задаем “hero.png” как имя файла+расширение, далее координата Х,У, ширина, высота.

    while (window.isOpen())
    {

    float time = clock.getElapsedTime().asMicroseconds();
    clock.restart();
    time = time / 800;

    sf::Event event;
    while (window.pollEvent(event))
    {
    if (event.type == sf::Event::Closed)
    window.close();
    }

    ///////////////////////////////////////////Управление персонажем с анимацией////////////////////////////////////////////////////////////////////////
    if ((Keyboard::isKeyPressed(Keyboard::Left) || (Keyboard::isKeyPressed(Keyboard::A)))) {
    p.dir = 1; p.speed = 0.1;//dir =1 – направление вверх, speed =0.1 – скорость движения. Заметьте – время мы уже здесь ни на что не умножаем и нигде не используем каждый раз
    CurrentFrame += 0.005*time;
    if (CurrentFrame > 3) CurrentFrame -= 3;
    p.sprite.setTextureRect(IntRect(96 * int(CurrentFrame), 96, 96, 96)); //через объект p класса player меняем спрайт, делая анимацию (используя оператор точку)
    }

    if ((Keyboard::isKeyPressed(Keyboard::Right) || (Keyboard::isKeyPressed(Keyboard::D)))) {
    p.dir = 0; p.speed = 0.1;//направление вправо, см выше
    CurrentFrame += 0.005*time;
    if (CurrentFrame > 3) CurrentFrame -= 3;
    p.sprite.setTextureRect(IntRect(96 * int(CurrentFrame), 192, 96, 96)); //через объект p класса player меняем спрайт, делая анимацию (используя оператор точку)
    }

    if ((Keyboard::isKeyPressed(Keyboard::Up) || (Keyboard::isKeyPressed(Keyboard::W)))) {
    p.dir = 3; p.speed = 0.1;//направление вниз, см выше
    CurrentFrame += 0.005*time;
    if (CurrentFrame > 3) CurrentFrame -= 3;
    p.sprite.setTextureRect(IntRect(96 * int(CurrentFrame), 288, 96, 96)); //через объект p класса player меняем спрайт, делая анимацию (используя оператор точку)

    }

    if ((Keyboard::isKeyPressed(Keyboard::Down) || (Keyboard::isKeyPressed(Keyboard::S)))) { //если нажата клавиша стрелка влево или англ буква А
    p.dir = 2; p.speed = 0.1;//направление вверх, см выше
    CurrentFrame += 0.005*time; //служит для прохождения по “кадрам”. переменная доходит до трех суммируя произведение времени и скорости. изменив 0.005 можно изменить скорость анимации
    if (CurrentFrame > 3) CurrentFrame -= 3; //проходимся по кадрам с первого по третий включительно. если пришли к третьему кадру – откидываемся назад.
    p.sprite.setTextureRect(IntRect(96 * int(CurrentFrame), 0, 96, 96)); //проходимся по координатам Х. получается 96,96*2,96*3 и опять 96

    }

    p.update(time);//оживляем объект p класса Player с помощью времени sfml, передавая время в качестве параметра функции update. благодаря этому персонаж может двигаться

    window.clear();
    window.draw(p.sprite);//рисуем спрайт объекта p класса player
    window.display();
    }

    return 0;
    }

    =======================================================================================================

    =======================================================================================================

     

    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Users\ДАНЯ\Documents\Visual Studio 2010\Projects\ПЛАТФОРМЕР\x64\Debug\ПЛАТФОРМЕР.exe”, Символы загружены.
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\ntdll.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\kernel32.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\KernelBase.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\opengl32.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\msvcrt.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\advapi32.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\sechost.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\rpcrt4.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\gdi32.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\user32.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\lpk.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\usp10.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\glu32.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\ddraw.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\dciman32.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\setupapi.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\cfgmgr32.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\oleaut32.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\ole32.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\devobj.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\dwmapi.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\winmm.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\msvcp100d.dll”, Символы загружены.
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\msvcr100d.dll”, Символы загружены.
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\imm32.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\msctf.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\uxtheme.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\nvoglv64.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\shell32.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\shlwapi.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\version.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\wintrust.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\crypt32.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\msasn1.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\ntmarta.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\Wldap32.dll”, Невозможно найти или открыть файл PDB
    Поток ‘Поток Win64′ (0x768) завершился с кодом 0 (0x0).
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\powrprof.dll”, Невозможно найти или открыть файл PDB
    Поток ‘Поток Win64′ (0x2a0) завершился с кодом 0 (0x0).
    “ПЛАТФОРМЕР.exe”: Выгружено: “C:\Windows\System32\powrprof.dll”
    Поток ‘Поток Win64′ (0x13fc) завершился с кодом 0 (0x0).
    Поток ‘Поток Win64′ (0x1138) завершился с кодом 0 (0x0).
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\dinput.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\hid.dll”, Невозможно найти или открыть файл PDB
    “ПЛАТФОРМЕР.exe”: Загружено: “C:\Windows\System32\cryptbase.dll”, Невозможно найти или открыть файл PDB
    Поток ‘Поток Win64′ (0xd74) завершился с кодом 0 (0x0).
    Поток ‘Поток Win64′ (0x1194) завершился с кодом 0 (0x0).
    Поток ‘Поток Win64′ (0x1044) завершился с кодом 0 (0x0).
    Программа “[4360] ПЛАТФОРМЕР.exe: Машинный код” завершилась с кодом 0 (0x0).

    #1717
    Daniel
    Daniel
    Участник
    Сообщений:1

    Зарегистрирован:
    17.09.2015

    Репутация:0

    говоря    проще  всё вроде работает  но   анимация  персонажа в право работает но самого движения не происходит

     

    #1718
    Павел Букреев
    Павел Букреев
    Хранитель
    Сообщений:585

    Зарегистрирован:
    04.01.2015

    Репутация:104

    заголовок поста надо было назвать как суть проблемы, использовать кнопку “вставить код”.
    завтра гляну че там

    #1742

    Oleg
    Участник
    Сообщений:11

    Зарегистрирован:
    09.08.2015

    Репутация:4

    Меня смущает вот эта конструкция:

    и то, что dir=0 – это дефолтное состояние. Попробуй заменить движение вправо с нуля на четыре, к примеру. Просто не удивлюсь, если где-то в коде есть if(p.dir==0)p.speed=0;

    #4874

    Sanya_drug
    Участник
    Сообщений:2

    Зарегистрирован:
    07.09.2017

    Репутация:0

    и у меня такая проблема

     

    #4875

    Sanya_drug
    Участник
    Сообщений:2

    Зарегистрирован:
    07.09.2017

    Репутация:0

    “kursach3.exe”: Загружено: “C:\Users\Innochka\Documents\Visual Studio 2010\Projects\kursach3\Debug\kursach3.exe”, Символы загружены.
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\ntdll.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\kernel32.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\KernelBase.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Program Files (x86)\AVG\Antivirus\aswhookx.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\opengl32.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\msvcrt.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\advapi32.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\sechost.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\rpcrt4.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\sspicli.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\cryptbase.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\gdi32.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\user32.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\lpk.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\usp10.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\glu32.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\ddraw.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\dciman32.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\setupapi.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\cfgmgr32.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\oleaut32.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\ole32.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\devobj.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\dwmapi.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\winmm.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Users\Innochka\Documents\Visual Studio 2010\Projects\kursach3\Debug\msvcp100d.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Users\Innochka\Documents\Visual Studio 2010\Projects\kursach3\Debug\msvcr100d.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\imm32.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\msctf.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\uxtheme.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\ig7icd32.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\version.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Выгружено: “C:\Windows\SysWOW64\version.dll”
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\dinput.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\hid.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\wintrust.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\crypt32.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\msasn1.dll”, Невозможно найти или открыть файл PDB
    “kursach3.exe”: Загружено: “C:\Windows\SysWOW64\clbcatq.dll”, Невозможно найти или открыть файл PDB
    Поток ‘Поток Win32′ (0x85c) завершился с кодом 0 (0x0).
    Программа “[5516] kursach3.exe: Машинный код” завершилась с кодом 0 (0x0).

    #4887

    KindRedSand
    Участник
    Сообщений:71

    Зарегистрирован:
    05.04.2017

    Репутация:28

    Некропстингом занимаешсья, Sanya_drug?

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)

Для ответа в этой теме необходимо авторизоваться.