Понедельник, 11 Ноября 2024, 05:28

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
MrFiringДата: Пятница, 19 Июня 2015, 22:49 | Сообщение # 1 | Тема: Уроки по SFML
был не раз
Сейчас нет на сайте
Вот еще например цикл уроков о том как создать игру "Градостроительство" Тык...
MrFiringДата: Пятница, 06 Марта 2015, 22:18 | Сообщение # 2 | Тема: Мультиязычность
был не раз
Сейчас нет на сайте
Цитата xMoonGuarDx ()
В-третьих, думаю, что могут возникнуть проблемы с тем, что слишком много элементов обратятся к одному файлу.

А как насчет при запуске игры считать весь файл локализации и раскидать всё это дело по переменным.
MrFiringДата: Понедельник, 09 Февраля 2015, 20:43 | Сообщение # 3 | Тема: Как продвинуть игру выложенную в Google Play?
был не раз
Сейчас нет на сайте
.Есть еще сервисы предоставляющие услуги: Установки,отзывы,гео-таргетинг...Конечно не бесплатно.
Например Apptools,AppForMoney....


Сообщение отредактировал MrFiring - Понедельник, 09 Февраля 2015, 20:44
MrFiringДата: Пятница, 09 Января 2015, 20:45 | Сообщение # 4 | Тема: Проблемы с путем к файлу
был не раз
Сейчас нет на сайте
Цитата 12334q ()
у мена и так и так по разному всё работает главное \\ два раза чтоб эскейп последовательности не было


"//" я такой записи еще не видел.Следовательно принял за неправильную..

Цитата 12334q ()
........ хотя \\ это и есть эск.последовательность чтобы вывести обратный слэш


Это я знаю.
MrFiringДата: Пятница, 09 Января 2015, 19:57 | Сообщение # 5 | Тема: Проблемы с путем к файлу
был не раз
Сейчас нет на сайте
Цитата 12334q ()
Код
"sfx//"

Если уж на то пошло,то тут нужны два задних слеша либо вообще один обычный.Или я чего-то не знаю?


Сообщение отредактировал MrFiring - Пятница, 09 Января 2015, 20:01
MrFiringДата: Среда, 07 Января 2015, 08:08 | Сообщение # 6 | Тема: Проблемы с путем к файлу
был не раз
Сейчас нет на сайте
Цитата daffy-doomer ()
char name[250];
char filename[200]="gfx\\";
GetModuleFileNameA(NULL, name, 250);

for(int j=strlen(name);name[j]!='\\';j--)
name[j]='\0';

strcat(name, filename);
TextureImage texture10;

strcpy(filename,name);
strcat(filename,st1);


Зачем столько заморочек для того чтобы получить путь?

В аргументах функции можно использовать указатель на char.
Поскольку папка с текстурами находится в директории с экзешником то путь можно записать так:

"./gfx/texture1.png"

Код

#include <sstream> //Класс для форматирования строк.

void LoadTexture(const char* FileName, int i)
{
      const char* dir = "./gfx/";
          
      stringstream str; //Создаём поток ввода-вывода строки

      str << dir << FileName; //Добавляем наши строки в конец строки потока

      ilLoad(IL_PNG, str.str().c_str()); // с помощью str.str().c_str() получаем строку
          
       int err = ilGetError();     
       if(err != IL_NO_ERROR)     
       {     
          cout << "Error an loading textures!" << endl;     
          getch();     
          exit(1);     
       }     

        ...
}


Сообщение отредактировал MrFiring - Среда, 07 Января 2015, 08:22
MrFiringДата: Среда, 10 Сентября 2014, 19:26 | Сообщение # 7 | Тема: Спонтаное закрытие окна в SFML
был не раз
Сейчас нет на сайте
Цитата OpenGOO ()
Должно быть такое условие (event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Escape)

Или такое
(event.type == sf::Event::Closed || sf::Keyboard.isKeyPressed(sf::Keyboard::Escape))
MrFiringДата: Воскресенье, 07 Сентября 2014, 13:29 | Сообщение # 8 | Тема: SFML
был не раз
Сейчас нет на сайте
MrFiringДата: Суббота, 23 Августа 2014, 15:31 | Сообщение # 9 | Тема: SFML
был не раз
Сейчас нет на сайте
Цитата Saitei ()
MrFiring, GalakTozawr, вы на даты сообщений вообще смотреть умеете? Я давно уже всё знаю.

Умеем...Кому-нибудь да пригодится..


Сообщение отредактировал MrFiring - Суббота, 23 Августа 2014, 15:32
MrFiringДата: Суббота, 23 Августа 2014, 08:37 | Сообщение # 10 | Тема: как за раз удалить массив текстур SDL2 ?
был не раз
Сейчас нет на сайте
Цитата -l33t-h4xx- ()
Хочу также на всякий случай добавить, что "за раз" ничего никогда не удаляется. Так не бывает.

Так-то да лучше попариться денёк...Но потом проблем не будет


Сообщение отредактировал MrFiring - Суббота, 23 Августа 2014, 08:40
MrFiringДата: Суббота, 23 Августа 2014, 08:14 | Сообщение # 11 | Тема: как за раз удалить массив текстур SDL2 ?
был не раз
Сейчас нет на сайте
Если чуть-чуть подумать можно сделать вывод,что незагруженная текстура не будет ничего делать с элементом массива так или запишет туда NULL?
Можно сделать вот так:
Код

int Counter = 0;

for(int i = 0; i < 256;i++)
{
    if(textSpr[i] == NULL)
         Counter++;
}

Таким образом можно получить кол-во загруженных элементов массива..Если я правильно понял то тебе это и было нужно
MrFiringДата: Суббота, 23 Августа 2014, 08:00 | Сообщение # 12 | Тема: SFML
был не раз
Сейчас нет на сайте
Цитата Saitei ()
а как тогда узнать координаты игрока?

Код

sf::Sprite sprite;
sprite.getPosition();Тут возвращается вроде бы vector2f
Еще можно вот так sprite.getPosition().x;
sprite.getPosition.y;
А тут возвращается тип float


Цитата Saitei ()
Научите пожалуйста правильно загружать и анимировать спрайты. Желательно с кодом-примером.
Задача: есть 150 картинок звезды (так называемые "кадры") с разрешением 500х500 и форматом .png, они пронумированы так: "_000.png ... _150.png". Нужно загрузить в игру и отобразить. Я уже делал, работало, но очень пожалел, т.к. пришлось создавать 2 массива по 150 элементов. Кошмар, в общем. Как грамотно всё это дело сделать?


Вместо массивов можно использовать vector там не нужно будет париться по поводу кол-ва элементов и прочей лабуды.Для удобства делаются классы объектов.Например:

Код

#include <SFML/Graphics.hpp>

class Wall
{
private:
   sf::Texture Wall_texture;
   sf::Sprite wall;
public:
  Wall(sf::String TextureFile,float posX,float posY,int imgX,int imgY,int imgW,int imgH);
//Первым аргументом получаем Путь к файлу в котором лежит наша  
//текстура,координаты X Y с помощью которых мы будем указывать где будем отображать всё это дело,размеры текстуры X Y Ширина Высота.
  {
    if(!Wall_texture.loadFromFile(TextureFile))//Загружаем текстуру,если не загрузили выдаём ошибку
    {

    }
    wall.setTexture(Wall_texture);//Задаём текстуру спрайту
    wall.setTextureRect(sf::IntRect(imgX,imgY,imgW,imgH))//Задаём необходимый участок отображений текстуры в спрайте
    wall.setPosition(X,Y);//Задаём позицию спрайту

  }

  void Draw(sf::RenderWindow &window)//Метод для отображения спрайта
  {
    window.draw(wall);//Тут мы рисуем наш спрайт
  }
~Wall(void)
  {
   //Оставим пустым
  }
};


Код

#include <vector>
#include <sstream>

  ostringstream string_stream; //Объявляем поток вывода строк..Собственно нужен будет нам для загрузки 150 картинок
  std::vector<Wall*> Wall_List;//Объявляем вектор

//где-то в коде...
for(int i = 0;i < 150;i++)
{
   string_stream << '_' << i << ".png";//Тут мы суём всё что нужно в поток,поскольку картинки имеют имена в формате _000-150.png мы будем передавать в поток первым  
//Символ _ дальше  i и только после этого .png дабы всё не спуталось и не было ошибок..Но код еще нужно будет додумать.Именно вот эту часть.
   Wall_List.push_back(new Wall(string_stream.str(),150,80,10,20,100,100))//Тут знакомый нам конструктор класса Wall который был написан заранее..
//Передаём нужные компоненты..Стоит обратить внимание на первый аргумент мы преобразуем поток вывода в строку тем самым получаем имя файла который будем  
//загружать
}

//где-то в коде вовремя рендера
for(int i = 0;i < Wall_List.size();i++)
{
   Wall_List[i]->Draw(window);
}
//Тут всё просто делаем цикл в котором i  бегает по каждому элементу вектора и вызываем метод отрисовки в который передаём наше окно в которое будем рисовать.


Ну вот собственно и всё...Разжевал как смог если что то не понятно пишите попробую объяснить
MrFiringДата: Среда, 13 Августа 2014, 19:50 | Сообщение # 13 | Тема: Раздел критики и фидбэков работ.
был не раз
Сейчас нет на сайте
Подскажите что подправить
MrFiringДата: Вторник, 12 Августа 2014, 15:47 | Сообщение # 14 | Тема: Нужна космическая станция
был не раз
Сейчас нет на сайте
Доброго времени суток,нужно нарисовать космическую станцию или подправить мою.
C правой части станции должны быть три дока

Пример:
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг