Вторник, 23 Апреля 2024, 20:38

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Форум игроделов » Программирование » C/C++ » SFML
SFML
НохчиДата: Пятница, 03 Мая 2013, 23:59 | Сообщение # 21
заслуженный участник
Сейчас нет на сайте
Как минимум Draw без скобок надо передавать. RenderFunc(Draw)

Многие вопросы по Windows отпадут, если посмотреть тут
SaiteiДата: Суббота, 04 Мая 2013, 11:33 | Сообщение # 22
старожил
Сейчас нет на сайте
Нохчи, действительно, трабла ушла. Но появилась новая:
Код
1>------ Build started: Project: SFML_game, Configuration: Release Win32 ------
1>  main.cpp
1>main.obj : error LNK2001: неразрешенный внешний символ "_RenderFunc"
1>F:\SFML\SFML_game\Release\SFML_game.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Добавлено (04.05.2013, 00:16)
---------------------------------------------
помогите пожалуйста

Добавлено (04.05.2013, 00:42)
---------------------------------------------
up...

Добавлено (04.05.2013, 11:33)
---------------------------------------------
help please. хотя бы натолкните на мысль...

Lord_ZeonДата: Суббота, 04 Мая 2013, 11:57 | Сообщение # 23
частый гость
Сейчас нет на сайте
Скорее всего ты снова не прилинковал от своей dll статическую библиотеку которая генерируется с проектом, или что-то еще...
Зачем ты себе такие сложности придумываешь? Если ты с трудом тянешь такое, стоит ли сейчас писать это?
ArchidoДата: Суббота, 04 Мая 2013, 13:06 | Сообщение # 24
Сэнсэй
Сейчас нет на сайте
Цитата (Lord_Zeon)
Скорее всего ты снова не прилинковал от своей dll статическую библиотеку которая генерируется с проектом, или что-то еще... Зачем ты себе такие сложности придумываешь? Если ты с трудом тянешь такое, стоит ли сейчас писать это?

+1. А еще я не вижу dllimport'a на стороне экзешника.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
SaiteiДата: Суббота, 04 Мая 2013, 14:36 | Сообщение # 25
старожил
Сейчас нет на сайте
Я прислушался к вашему мнению. Пишу теперь просто программку. Проблема с загрузкой текстуры (Unable to load):
main.cpp:
Код
#include "med_init.h"

const String title = "SFML GAME";
const unsigned int w_width = 1024;
const unsigned int w_height = 768;
const unsigned w_fps_limit = 60;
RenderWindow app(VideoMode(w_width, w_height, 32), title);

void Draw()
{
  app.draw(s_ava);
}

int main(void)
{
  app.setFramerateLimit(w_fps_limit);
  media_init();
  while(app.isOpen())
  {
   Event event;
   while(app.pollEvent(event))
   {
    if(event.type == Event::Closed)
    {
     app.close();
    }
    if((event.type == Event::KeyPressed) && (event.key.code == Keyboard::Escape))
    {

    }
   }
   app.setActive();
   app.clear(Color::Black);
   Draw();
   app.display();
  }
  return 0;
}

med_init.h:
Код
#include <SFML\Graphics.hpp>
using namespace sf;
Texture t_ava;
Sprite s_ava;

void media_init()
{
  if(!t_ava.loadFromFile("Red00_000.png"))
  {

  }
  s_ava.setTexture(t_ava);
}

Добавлено (04.05.2013, 14:23)
---------------------------------------------
P.S. все длл и либы подключены правильно. В папке Release (а я компилирую релизом) так же есть тот спрайт. Пытался запуститься сразу из той папки - эффект тот же...

Добавлено (04.05.2013, 14:36)
---------------------------------------------
почитал - частенько у людей такие проблемы. Но для меня она до сих пор актуальна. Сижу в жуткой печали

Lord_ZeonДата: Суббота, 04 Мая 2013, 14:38 | Сообщение # 26
частый гость
Сейчас нет на сайте

Все работает. Выпрямляй руки.
SaiteiДата: Суббота, 04 Мая 2013, 14:58 | Сообщение # 27
старожил
Сейчас нет на сайте
Lord_Zeon, а у меня не работает. Я-то их выпрямлю, но хоть намекните что не так, а не просто говорите "выпрямляй руки".

Добавлено (04.05.2013, 14:51)
---------------------------------------------
Прикол в том, что при дебаге всё пашет perfectly, а вот в релизе..

Добавлено (04.05.2013, 14:51)
---------------------------------------------
И это печально

Добавлено (04.05.2013, 14:58)
---------------------------------------------
а ещё в ошибке релиза имя файла искажается. А вот в дебаге всё ОК. Но мне нужен релиз

Сообщение отредактировал Saitei - Суббота, 04 Мая 2013, 14:43
Lord_ZeonДата: Суббота, 04 Мая 2013, 14:59 | Сообщение # 28
частый гость
Сейчас нет на сайте
Saitei,
Студия? Никогда не работал в ней, могу предположить разве что в кодировке дело.
SaiteiДата: Суббота, 04 Мая 2013, 17:19 | Сообщение # 29
старожил
Сейчас нет на сайте
Lord_Zeon, да, она. Сейчас роюсь у них на сайте. Вроде как студию они официально поддерживают

Добавлено (04.05.2013, 15:09)
---------------------------------------------
всё равно растерян. Переходить на Code Blocks мне неохота...

Добавлено (04.05.2013, 17:19)
---------------------------------------------
HEEELP! Q___Q
Debug mode жутко смущает

RUNGOGET2THECHOPAHДата: Суббота, 04 Мая 2013, 18:49 | Сообщение # 30
участник
Сейчас нет на сайте
Saitei, запускаешь не через студию, надеюсь? Попробуй просто открыть экзешник в папке Release.
НохчиДата: Суббота, 04 Мая 2013, 19:17 | Сообщение # 31
заслуженный участник
Сейчас нет на сайте
В realese-сборке должны быть подключены релизные либы, в debug-дебажные.

Многие вопросы по Windows отпадут, если посмотреть тут
SaiteiДата: Суббота, 04 Мая 2013, 19:19 | Сообщение # 32
старожил
Сейчас нет на сайте
RUNGOGET2THECHOPAH, так тоже делал. Ошибка
Цитата (Нохчи)
В realese-сборке должны быть подключены релизные либы, в debug-дебажные.

Может быть я что-то не понял конечно... но где они? Я вижу лишь огромный список либов. И нигде конкретно для релиза ничего нет
RUNGOGET2THECHOPAHДата: Суббота, 04 Мая 2013, 19:20 | Сообщение # 33
участник
Сейчас нет на сайте
Для релиза нужно подключать те, что без постфиксов. Для дебага с постфиксом -d. И сами dll-ки должны лежать в папке с исполняемым файлом.
SaiteiДата: Суббота, 04 Мая 2013, 19:25 | Сообщение # 34
старожил
Сейчас нет на сайте
RUNGOGET2THECHOPAH, действительно, помогло))) сразу нахлынул позитив. Спасибо огромное! Огромнейшое =)

Добавлено (04.05.2013, 19:25)
---------------------------------------------
Кстати. С вращением спрайта я разобрался: спрайт.rotate(...);
а вот как там дела с перемщеением? Я, допсутим, хочу чтобы спрайт плавно переместился на определенные координаты. Находил спрайт.move(x,y); , но в итоге у меня получилось тоже самое, что и спрайт.setPosition(x,y);

RUNGOGET2THECHOPAHДата: Суббота, 04 Мая 2013, 19:35 | Сообщение # 35
участник
Сейчас нет на сайте
sprite::move(x,y) - не то же самое, что sprite::setPosition(x,y). Второй устанавливает спрайту координаты x,y относительно начала отсчета, а первый - относительно его текущего положения (сдвигает его на x по горизонтали и на y по вертикали).
Что до плавного перемещения - тут тебе придется читать, что такое main loop, не иначе (это, вроде, даже в туториалах SFML есть).
SaiteiДата: Воскресенье, 05 Мая 2013, 11:30 | Сообщение # 36
старожил
Сейчас нет на сайте
Хм. Не знаю что делать. Делаю анимацию курсора:
Код
for(int i = 0; i < 16; ++i)
  {
   if(t_cursor[i].loadFromFile(i+".png")!=1)
   {
    return;
   }
   else
   {
    t_cursor[i].setSmooth(true);
   }

вот так писать нельзя:
Код
if(t_cursor[i].loadFromFile(i+".png")!=1)

а как быть тогда?
У меня есть кадры от 0.png до 15.png... Вручняк уже вбивал, анимация пашет на ура (гемор хх). Хочу циклом. Ну а как название-то менять я не знаю. i+".png" не пашет

Добавлено (04.05.2013, 22:16)
---------------------------------------------
ха-ха))
Что-то написал, но на костылях. И то до конца не понял что происходит. Пожалуйста, объясните или поправьте

Код

  for(int i = 0; i < 16; ++i)
  {
   itoa(i,tmp,10);
    strcpy(filename,tmp);
    strcat(filename,".png");
   if(t_cursor[i].loadFromFile(filename)!=1)
   {
    return;
   }
   else
   {
    t_cursor[i].setSmooth(true);
   }
  }

Добавлено (05.05.2013, 11:30)
---------------------------------------------
Передо мной встала новая задачка. Хочу создать псевдогалактическую систему (Выдуманную). Солнце-то я без проблем поставлю. Но как быть с планетами? Как их заставить вращаться вокруг(!) него с соблюдением определенного расстояния(радиуса)(!)? Проблема именно в круговом вращении планеты с центром на солнце

XakepДата: Воскресенье, 05 Мая 2013, 11:55 | Сообщение # 37
めちゃくちゃちゃ
Сейчас нет на сайте
Цитата (Saitei)
Ну а как название-то менять я не знаю. i+".png" не пашет

Код

#include <string>

static inline string IntToStr(int64_t n) {
   char buff[13];
   sprintf(buff, "%lld", n);

   return buff;
}
...
if(t_cursor[i].loadFromFile((IntToStr(i)+".png").c_str())!=1)


Сообщение отредактировал Xakep - Воскресенье, 05 Мая 2013, 12:18
XakepДата: Воскресенье, 05 Мая 2013, 11:57 | Сообщение # 38
めちゃくちゃちゃ
Сейчас нет на сайте
Цитата (Saitei)
Передо мной встала новая задачка. Хочу создать псевдогалактическую систему (Выдуманную). Солнце-то я без проблем поставлю. Но как быть с планетами? Как их заставить вращаться вокруг(!) него с соблюдением определенного расстояния(радиуса)(!)? Проблема именно в круговом вращении планеты с центром на солнце


через sin и cos делай, примерно так:
Код

      float a = 0.0f;
      a += DeltaTime;
      x = r*cos(a);
      y = r*sin(a);


ну переменная а естественно должна быть глобальной, или внутри класса, еще сделай проверку чтобы угол a был <= pi*2 если больше то обнуляется угол, чтобы небыло переполнения


Сообщение отредактировал Xakep - Воскресенье, 05 Мая 2013, 12:00
SaiteiДата: Четверг, 09 Мая 2013, 00:32 | Сообщение # 39
старожил
Сейчас нет на сайте
Хм. А как заставить спрайт двигаться к определенным координатам?

Добавлено (09.05.2013, 00:32)
---------------------------------------------
p.s. должно быть что-то такое:
if ((Mouse::isButtonPressed(Mouse::Left))
{
s_player.двигаться(Mouse::getPosition(app).x, Mouse::getPosition(app).y);
}

Move есть, да. Но когда я пишу, например, s_player.move(1,1) он начинает двигаться бесконечно. Такое чувство, что я установил не точку, куда нужно двигаться, а скорость по плоскостям тт

НохчиДата: Четверг, 09 Мая 2013, 01:28 | Сообщение # 40
заслуженный участник
Сейчас нет на сайте
sprite.move(1,1) заставит передвинуть на 1 пиксель вправо и вниз относительно текущих координат. Ты, видимо, вызываешь ее в цикле, поэтому и двигается спрайт у тебя бесконечно. Смотри справку по move и setPosition.

Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Четверг, 09 Мая 2013, 01:28
Форум игроделов » Программирование » C/C++ » SFML
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

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