LINUX.ORG.RU

Сообщения FinnTheHuman

 

Cube World

Форум — Games

Очень хочется поиграть. И так, что имеем? Для начала я ставил игру через CrossOver. Установилась, запустилась, однако тормоза жуткие, FPS не больше 3-5. Попытался запустить crossover от optirun, в итоге Cube World начал ругаться на то, что у меня не инициализирован DirectX. Правка ключей в реестре useGLSL=enabled ничего не дала. Закидывание d3d9.dll из SwiftShader тоже. Попробовал все сделать через вайн. Ставлю DirectX End-User, Net 2.0, XNA. Но при попытке запустить вылетает вайновская ошибка, мол, извини, но не получилось запустить Cube.exe Пробовал через VBox... тормозит. Что делать?

 , ,

FinnTheHuman
()

Захват видео с записью звука НЕ с микрофона.

Форум — Multimedia

RecordMyDesctop, ffmpeg, vlc. Ни один из них не записывает звук с рабочего стола. Ковыряние в настройках ничего не дает, ну или записывает звук с микрофона.

FinnTheHuman
()

SDL2 и события.

Форум — Development

Нашел на форуме пример «нормальной» обработки клавиатурных событий. http://www.gamedev.net/topic/452938-sdl-multiple-key-press-events/

#include <stdio.h>
#include <stdlib.h>
#include <SDL2/SDL.h>
SDL_Event event;
SDL_Window *win;
int app_running;
int key[500];
//Прототипы функций
void test_func(void);
void test_func2(void);
void test_func3(void);
void key_press(int key, void (*ptr)(void));
void key_listing(void);
//Листаем события
void key_listing()
{
  if (SDL_PollEvent(&event))
     {
        //Выход по крестику
        if (event.type == SDL_QUIT) app_running=0;
        //"Нажатие" клавиши
        if (event.type == SDL_KEYDOWN) key[event.key.keysym.sym]=1; //Статус "Нажато"
        //"Поднятие" клавиши
        if (event.type == SDL_KEYUP) key[event.key.keysym.sum]=0; //Статус "НЕ нажато"
     }
}
//Передаем в функцию код клавиши (keyi) и адрес на функцию
void key_press(int keyi, void (*ptr)(void))
{
  
  if (key[keyi]) ptr; //Точно не помню, верно ли это, но, если зажатая клавиша имеет состояние 1, то выполняется функция ptr
}
//Тестовые функции, меняем заголовок окна
void test_func()
{
  SDL_SetWindowTitle(win, ".");
}
void test_func2()
{
  SDL_SetWindowTitle(win, "..");
}
void test_func3()
{
  SDL_SetWindowTitle(win, "...");
} 
int main(int argc, char **argv)
{
  app_running = 1;
  win = SDL_CreateWindow("Window",SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 380, 0);
  while(__app_running)
  {
    key_liting();
    //Передаем функции "код" клавиши и адрес функции, которую необходимо выполнить
    key_press(SDLK_q, &test_func);
    key_press(SDLK_w, &test_func2);
    key_press(SDLK_e, &test_func3);
  }
}
Пишу не с домашнего ноута, скомпилировать сейчас не могу, но примерно все так и было описано. Здесь могут быть какие-либо ошибки (без компиляции не поймешь же ведь), но прошу на них сейчас не обращать внимания. И так, в чем вопрос? А в том, что это работает, и работает как надо, за исключением одного «но». Нет, даже двух «но». Первое - при нажатии и удерживание клавиши, которую мы определили в key_press, крестик, по которому можно кликнуть становится не доступным, т.е тупо не подсвечивается, и нажатие на него дает эффект. Становится он доступным после того, как цикл отработает весь стек запиханных в него событий (поясните, если не так). А второе - при нажатии, например, UP, DOWN, LEFT, RIGHT, а так же кнопок F1-F12, да и вообще, всех кнопок, где в SDK_keycode.h происходит *макроподстановка*(???), например
SDLK_F1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F1),
При нажатии клавиши, где присутствует вот такая хрень, приложение вылетает. Т.е две проблемы: 1. Как я понял, забитие событийного стека 2. Неумение обработки всех клавиш. Мб есть другие способы решения поставленной задачи? Не важно, как, главное, чтобы в функцию можно было передавать код клавиши и адрес функции, которую нужно выполнить, если та или иная функция выполнена. Причем без использования С++ конструкций вообще.

 , , ,

FinnTheHuman
()

Terraria 1.2, артефакты в отображении.

Форум — Games

http://s6.uploads.ru/t/6xYPM.png

http://s6.uploads.ru/KQn7y.png

При нажатии F9 (изменении типа освещения) чернота чуть меняется (становится больше/меньше).

Запускал через виртуальную машину (VBox) - такой же результат. Вот, запустил через вайн - ничего не изменилось. Запуск, конечно же через optirun.

Машина: Asus K55V, Core I5-3210M, 2,5G

Видюха: NVIDIA GeForce 610M 2GB.

Дистр: ArchLinux

Еще одна проблема - звук есть только при первом запуске после перезагрузки ПК. Если игру перезагрузить, то звук пропадает, а в консоль ругается:

ALSA lib dlmisc.c:252:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so
ALSA lib dlmisc.c:252:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so
Причем ругается она и при первом запуске точно так же.

FinnTheHuman
()

Установка linux на компьютер с UEFI.

Форум — Linux-install

Купил себе ноут - Asus K55V. На нем имеется установленная производителем(?) Windows 8. Естественно, меня это дело не устраивает. И так, решил я поставить арч, что сразу было обречено на ошибку - он ругался на GPT что-то там (я уже не вспомню). Хорошо. Записал убунту на флешку - пожалуй, единственное, что установилось, однако меня это не устраивает (ну, в конструкторы не наигрался я). У меня отсутствует графическое меню UEFI (ну, вы поняли впринципе), а так же отсутсвует UEFI Shell (тобишь при нажатии «Launch EFI Shell from file system device» пишет «Not Found»). Что делать - не знаю.

 , , ,

FinnTheHuman
()

RSS подписка на новые темы