Результаты поиска
| |
Morfay | Дата: Понедельник, 13 Февраля 2012, 13:56 | Сообщение # 41 | Тема: Рисование в консоли |
почетный гость
Сейчас нет на сайте
| А есть ли какой мануал по работе с консолью?
Интересует прежде всего вывод символов в указанном месте, их окраска, премещение, удаление. Гугл не помог, я просто не знаю как написать запрос (по запросам типа "работа с консолью С++" и тому подобные появлялись совсем не те варианты, которые мне нужны)
|
|
| |
Morfay | Дата: Понедельник, 13 Февраля 2012, 13:51 | Сообщение # 42 | Тема: SDL_mixer не воспроизводит звук |
почетный гость
Сейчас нет на сайте
| Вряд ли. Я же и разбирал по мануалу. Со всеми проверками. Сначала была проблема, что не подгружалась музыка (выводилась ошибка), решил ее (тупо забыл нужную dll подкинуть в Debug проекта). Перекомпилил, а тут такое. Потому и спросил здесь. А когда код вылаживал, просто убрал все проверки, для минимизации.
Что касается директа и OpenAL - я просматривал их. Но сейчас я ковыряюсь в SDL и дополнительных библах к нему. SDL_image работает норм, SDL_mixer шалит. Наверно закину его на время и поковыряю SDL_net и SDL_ttf.
Возможно, есть смысл проверить билиотеку на другом компе. Надо будет потеститьДобавлено (13.02.2012, 13:51) --------------------------------------------- Недавно вернулся к этому вопросу, после переустановки ОС. Сейчас те же примеры работают нормально. Но само воспроизведение хромает. Если музыка воспроизводится нормально, то звуки примерно в два раза быстрее чем надо. Покопался в доках, ничего про скорость воспроизведения не нашел. Кто знает, от чего зависит скорость воспроизведения в миксере?
|
|
| |
Morfay | Дата: Пятница, 27 Января 2012, 21:33 | Сообщение # 43 | Тема: Public, Private, Protected - что и когда? |
почетный гость
Сейчас нет на сайте
| Вроде понял, всем спасибо. Про инкапсуляцию перечитаю еще раз, может чего не заметил. Честно говоря, вопрос возник после того, когда заметил, что у меня в классах все в public, и это мне никак не мешало. Вот и захотелось просветить себя в каких случаях лучше будт защитить методы и переменные.
Тему можно закрывать. Еще раз всем спасибо.
|
|
| |
Morfay | Дата: Пятница, 27 Января 2012, 19:33 | Сообщение # 44 | Тема: Public, Private, Protected - что и когда? |
почетный гость
Сейчас нет на сайте
| Немного не понятно. Насколько я знаю, приватные переменные можно поменять только через метод класса, приватные методы нельзя вызвать напрямую (на то они и приватные). А протектед, можно использовать в дочерних классах, а в остальных случаях изменить нельзя. То есть, если методы/переменные используются только внутри класса, то их делаем приватными. Если класс родительский, но методы и переменные используются только внутри классов (родительского и дочернего), то протектед. А если используем методы/переменные внутри main или других классах то паблик. Я правильно понял?
|
|
| |
Morfay | Дата: Пятница, 27 Января 2012, 18:31 | Сообщение # 45 | Тема: Public, Private, Protected - что и когда? |
почетный гость
Сейчас нет на сайте
| Это не то, я понимаю как работает private и protected. Мне нужны конкретные примеры. Могу прикинуть только, то защита нужна для каких-либо констант класса, либо специальных переменных, которые изменяются при определенных условия в определенной функции (чтобы напрямую их изменить нельзя было). А что еще? Можно, пожалуйста конкретные примеры (допустим ваши), когда вы защищали переменные или функции?
|
|
| |
Morfay | Дата: Пятница, 27 Января 2012, 16:18 | Сообщение # 46 | Тема: Необходима помощь в освоении азов создания игр |
почетный гость
Сейчас нет на сайте
| Что касается ошибок в коде: не буду говорить конкретно за этого автора, но пару раз видел в книгах, что авторы намеренно делают тупые ошибки (в основном орфографические, но не всегда только они). И авторы об этом предупреждают. Делают это для того, чтобы не было тупого переписывания кода (В худшем случае, придется разобраться где ошибка и почему, в лучшем - ученик изучит тему, по которой приводится пример, и будет способен написать все самостоятельно).
Раньше тоже занимался таким копированием. Закончил дурью маяться после того как не смог вспомнить ни одного названия функции по теме примера через пару месяцев. Понял все и начал читать все с самого начала, не копируя не единой строчки. Можешь сам провести тест: сможешь ли ты то что "изучил" написать без книги, сам? Если сможешь все, то либо у тебя офигенная память либо ты разобрался. Если хотя бы больше половины, то тоже неплохо - в верном направлении движешься. а вот если ты практически ничего не написал, то ты только потратил время.
И еще про учебу в колледже\универе добавлю: большинство учебных заведений СНГ (но не буду утверждать что все) дают только базовый уровень подготовки. И вполне вероятно, что начав обучение сейчас (что и рекомендую) ты ничего нового на следующем курсе не узнаешь.
|
|
| |
Morfay | Дата: Пятница, 27 Января 2012, 15:30 | Сообщение # 47 | Тема: Public, Private, Protected - что и когда? |
почетный гость
Сейчас нет на сайте
| Здравствуйте. При написании движка столкнулся с такой ситуацией, что не знаю, как распределить доступ к функциям и переменным. Я знаю различия между privat, public и protected, но в каких случаях лучше использовать protected или private не могу понять - в мануалах сказано, чтобы защитить данные или предотвратить ненужный вызов функции. Но в С++ до сих пор с подобным не сталкивался (или думаю, что не сталкивался). Объясните, пожалуйста, на примерах (желательно связанных с разработкой игр), когда нужно отнести переменные\функции в private или protected.
|
|
| |
Morfay | Дата: Пятница, 20 Января 2012, 16:12 | Сообщение # 48 | Тема: Как определить количество кадров в спрайте. |
почетный гость
Сейчас нет на сайте
| Quote (Demeron) А если в одной текстуре несколько анимаций? Тоже учитывал такой вариант. Вполне подходило все под сложившиеся условия. К примеру спрайт состоящий из кадров: 1,2,3 - кадр есть. 0 -пустая область.
1111 1000 2222 2222 2200 3330
Определяем кадры до первого пустого места - это и будет 1-я анимация. Так определяем вторую, третью и далее. Сама проблема и была в определении - сложно сделать уникальный алгоритм, который точно будет определять кадры.
|
|
| |
Morfay | Дата: Пятница, 20 Января 2012, 10:48 | Сообщение # 49 | Тема: Как определить количество кадров в спрайте. |
почетный гость
Сейчас нет на сайте
| Quote (zodiak) Проще уж сделать программу для сбора кадров в один спрайт, которая будет автоматом создавать файл описания
А это идея.
Алгоритм написать не сложно, проблема в том, что он будет как костыль - помогать будет, но не всегда, да и "бегать" с ним будет сложновато. По крайней мере, выдрать пиксель на SDL, судя по документации, сложностей не представляет. Но твоя идея однозначно лучше.
Есть ли у кого еще варианты?
|
|
| |
Morfay | Дата: Пятница, 20 Января 2012, 09:47 | Сообщение # 50 | Тема: Как определить количество кадров в спрайте. |
почетный гость
Сейчас нет на сайте
| Доброе утро. Разбираюсь с 2D графикой. Написал загрузку и отображение графики и кадров в спрайте (довольно прикольный алгоритм, позволяющий отобразить любой кадр спрайта заменой 1-2 символов). Как это работает: Спрайт представляет собой таблицу, с одинаковой шириной и высотой отдельного кадра. Зная номер столбца, строки, а также ширину и высоту кадра находим координаты нужные нам и выводим на экран (Работа с графикой через SDL). Но хочу сделать автоматическое распознавание кадров в спрайте. То есть, при загрузке спрайта, зная ширину и высоту, мы автоматически разбиваем спрайт на ячейки с кадрами. После считываем каждую ячейку. Если в ней есть изображение, то это кадр анимации. Если пусто (просто фон или его отсутствие), то кадры одной анимации закончены. Цель: сделать автоматический загрузчик спрайта с разбивкой на кадры и/или анимации.
В связи с этим, вопрос: как узнать - есть ли изображение в заданной области или нет на SDL? Есть идея проверять пиксели области в центре - если они отличаются от фона, то изображение есть. Но это похоже на костыль - могут быть случаи, когда такое решение не поможет. Есть ли у кого более лучшие идеи?
З. Ы. Была идея создавать файл с описанием кадров, но тогда вся идея ни к чему - автоматизмом и не пахнет.
|
|
| |
Morfay | Дата: Вторник, 01 Ноября 2011, 16:26 | Сообщение # 51 | Тема: SDL_mixer не воспроизводит звук |
почетный гость
Сейчас нет на сайте
| Увы, не работает - то же самое. Видимо что-то не так с самим миксером. Странно, качал с официального сайта. Поковыряю еще немного, если ничего не получится, то забью.
|
|
| |
Morfay | Дата: Понедельник, 31 Октября 2011, 11:33 | Сообщение # 52 | Тема: SDL_mixer не воспроизводит звук |
почетный гость
Сейчас нет на сайте
| Если второй пункт понял, то третий нет. Это как так через cin? Разбираю по мануалам, никогда подобного не видел, и вообще считал, что cin из iostream нужна для ввода информации. Не могли бы привести пример, как это связать с конструкцией SDL?
P. S. да, окно подвисает и не реагирует на нажатие клавиш, потому прошу объяснить мне пункт 3 подробнее.
Сообщение отредактировал Morfay - Понедельник, 31 Октября 2011, 11:35 |
|
| |
Morfay | Дата: Понедельник, 31 Октября 2011, 01:13 | Сообщение # 53 | Тема: SDL_mixer не воспроизводит звук |
почетный гость
Сейчас нет на сайте
| Здравствуйте. Уже не первая моя тема по SDL, но что уж поделать - мануалов маловато, а разобраться очень уж хочется.
Проблема с воспроизведением звука: уже второй или третий пример отказывается работать. В чем суть: все подключается, компилируется. Музыка (пробовал как mp3 так и ogg) загружается. НО, когда выполняется программа (все просто - инициализация, загрузка и проигрывание) вижу просто консоль и, если создаю, то окно приложения. Музыки нет.
Возможная проблема: стоит VirtualBox, на котором стоит винда и все нужные проги. В MVS 2010, который установлен там же, и пишу. При установке дрова ставил на звук, но мало ли.
Вот код примера (удалю, не влияющие на понимание, проверки для минимизации): Code
#include "stdafx.h" #include "SDL.h" #include "SDL_mixer.h" #pragma comment(lib, "SDL.lib") #pragma comment(lib, "SDL_mixer.lib") void InitSound();
void InitSound() { SDL_Init (SDL_INIT_AUDIO); Mix_OpenAudio (44100, MIX_DEFAULT_FORMAT, 2, 1024); }
void PlayMusic (char *file, int chanel) { Mix_Music *music; music = Mix_LoadMUS (file); Mix_PlayMusic (music, chanel); }
int _tmain(int argc, _TCHAR* argv[]) { SDL_Event event; InitSound(); int done = 0; while(done == 0) { while ( SDL_PollEvent(&event) ) { if ( event.type == SDL_QUIT ) { done = 1; } if ( event.type == SDL_KEYDOWN ) { if ( event.key.keysym.sym == SDLK_m ) { PlayMusic("A.mp3",-1); } } } } return 0; }
Если кто объяснит в чем проблема, буду рад.
|
|
| |
Morfay | Дата: Понедельник, 24 Октября 2011, 21:48 | Сообщение # 54 | Тема: SDL_opengl |
почетный гость
Сейчас нет на сайте
| Парадокс, когда создал тему, пришел в голову ответ . Но вот с SDL_mixer осталась проблемка, правда она уже видоизменилась - музыка (мп3 формат) загружается, но не проигрывается. Просто консоль висит (окно не создавал - чисто SDL_mixer тестил), причем на нажатие клавиш не реагирует (если убираю функцию воспроизведения, то реагирует норм).
|
|
| |
Morfay | Дата: Понедельник, 24 Октября 2011, 02:47 | Сообщение # 55 | Тема: SDL_opengl |
почетный гость
Сейчас нет на сайте
| Как хобби разбираюсь в SDL. 1) В данный момент просматривал файлик SDL_opengl.h - в нем описаны функции openGL. Решил затестить: Создал проект, подключил библиотеки и заголовочные файлы, закинул все куда надо и написал простенькую функцию загрузки изображения (используя SDL_image), наложения его на квадратную текстуру и вывод на экран. VS2010 не ругается на функции, типа glGenTexture(...), то есть видит их, но при компиляции выводит ошибку "error LNK2019: ссылка на неразрешенный внешний символ (openGL функция) в main". Проверил наличие файлов - все есть и подключено. Как решить такую проблему?
2) Чтобы не создавать отдельную тему. SDL_mixer. Скачал, подключил, скопировал пример для теста, нашел музыку в mp3 формате. Компилирую, но прога не может подключить музыку - просто не находит файлик (хотя он есть, причем для того, чтобы убедиться, что впхнул его туда куда надо, положил его почти во все папки проекта). Странно, но по отзывам, пример работает исправно.
Буду благодарен за любую помощь... но ссылки желательно давать на русскоязычную информацию =)
Сообщение отредактировал Morfay - Понедельник, 24 Октября 2011, 02:48 |
|
| |
Morfay | Дата: Вторник, 06 Сентября 2011, 19:04 | Сообщение # 56 | Тема: проблемы с SDL_image |
почетный гость
Сейчас нет на сайте
| Да, то что нужно - теперь компилируется нормально. Ушел тестить =). Спасибо
|
|
| |
Morfay | Дата: Вторник, 06 Сентября 2011, 18:10 | Сообщение # 57 | Тема: проблемы с SDL_image |
почетный гость
Сейчас нет на сайте
| Использую SDL+OpenGl. Так как в чистом SDL можно загрузить только bmp изображение, решил использовать SDL_image. Скачал официального сайта, нашел документацию, добавил заголовочный файл... Но при использовании любой функции SDL_image возникает ошибка: unresolved external symbol Название функции(к примеру _IMG_Load) referenced in function "public...(дальше название моей функции где используется) Загуглил. Нашел на каком-то забугорном форуме тему с такой же проблемой. Там советовали проверить подключение dll. Вот тут начинается неувязка - при скачивании библиотеки (напомню, официальной, последней версии) никаких dll не было. И в документации (тоже официальной) ничего про них не нашел (там требуется только подключить SDL_image.h ... и все). Кто работал с этой библиотекой, объясните пожалуйста, как ее правильно подключить (желательно расписать как для чайника) . Заранее спасибо.
Сообщение отредактировал Morfay - Вторник, 06 Сентября 2011, 18:11 |
|
| |
Morfay | Дата: Среда, 13 Июля 2011, 01:03 | Сообщение # 58 | Тема: Работа с текстурами в OpenGL |
почетный гость
Сейчас нет на сайте
| Мда, интернет развратил мой юный ум - ведь такая книга есть и у меня... Большое спасибо за помощь. Тему можно закрывать - куда копать я понял.
|
|
| |
Morfay | Дата: Вторник, 12 Июля 2011, 03:12 | Сообщение # 59 | Тема: Работа с текстурами в OpenGL |
почетный гость
Сейчас нет на сайте
| Похоже, это то что мне нужно. Но вот русскоязычной нормальной информации не нашел, а английский не очень у меня. Может кто объяснить (или дать ссылку), как происходит блиттинг в OpenGL?
|
|
| |
Morfay | Дата: Вторник, 12 Июля 2011, 01:10 | Сообщение # 60 | Тема: Работа с текстурами в OpenGL |
почетный гость
Сейчас нет на сайте
| Или я что-то не понял, или вы. Я использую спрайты. Но мне не нравится, что каждый раз, когда нужно проиграть анимацию, она будет генерировать изображение (кусок спрайта) раз за разом. После прочтения разных мануалов и статей на форуме, выяснил, что рисование текстурами (наложение спрайта или куска на квадратную текстуру и вывод на экран) самое лучшее и менее затратное. Вот и хотел узнать, как распихать части спрайта по текстуркам, сформировать их в анимацию, а потом просто выводить сформированное на экран. В планах, загрузка всех анимашек при начале игры, чтобы в процессе не было возможных тормозов. Вот я и хочу узнать, можно ли и если можно, то как присвоить отрезанную часть спрайта новой сгенерированной текстуре (отобразить часть спрайта могу, не знаю именно как присвоить)
|
|
| |
|