LaserTank на VS 2013 C++ (игра на конкурс)

Entertainment for 5 minutes, hours, days
  • глянь
    http://wiki.kolibrios.org/wiki/C/C%2B%2B_programming

    case 2:
    // key pressed, read it and ignore
    _msys_get_key();
    break;
  • Думаю он спрашивал не про нажатие кнопок, а про то накапливает ли KOS запросы на отрисовку GUI и если да, то как заставить её отрисовать всё сразу.
    Spoiler:Я тут не специалист и зарегистрировался только недавно, поэтому могу только предполагать. попробуй, прокатит ли такой трюк с аналогом Функции 12:

    Code: Select all

    kos_WindowRedrawStatus(2), kos_WindowRedrawStatus(1);
    // удаляет все определённые (функцией 8) кнопки,
    // их можно определить повторно.
    // Для этого удобно использовать отдельную функцию,
    // чтобы не писать список кнопок заново.
    
    Last edited by kiv on Tue Dec 30, 2014 3:56 am, edited 5 times in total.
  • я пытался делать через http://wiki.kolibrios.org/wiki/SysFn11/ru, но тут бесконечный цикл получается, по теории правильно.

    Code: Select all

    void ProcessMessages()
    {
    	for(;;)
    	{
    		switch (kos_CheckForEvent())
    		{
    		case 0:
    			return;
    		case 1:
    			draw_window();
    			break;
    		case 3:
    			kos_ExitApp();
    			break;
    		}
    	}
    }
    kos_CheckForEvent:

    Code: Select all

    Dword kos_CheckForEvent()
    {
    	__asm{
    		push 11
    		pop eax
    		int 0x40
    	}
    }
  • 1. определяешь кнопку в следствии чего начинается очередная перерисовка
    2. срабатывает case 1
    3. в котором начинается очередная перерисовка
    Так?


    добавь запись в лог перед break и всё станет ясно
    Last edited by kiv on Tue Dec 30, 2014 2:59 am, edited 3 times in total.
  • Если событие нажатия на клавишу было в очереди, то оно оттуда не уйдёт, пока не будет считано функцией 2. Если оно не нужно, можно его замаскировать функцией 40.
    Сделаем мир лучше!
  • После коммита авто-сборщик выдает ошибку. Почему может не создаваться "func.obj"? (исходники)

    Code: Select all

    *  10% 1) [0.003s] build-rus/programs/games/LaserTank/trunk
    tup error: Unable to create output file 'func.obj' because it is already owned by command 171664.
     - [171664] build-rus/programs/games/LaserTank/trunk/[[34mcl /c /O2 /Os /Oy /GF /GS- /GR- /EHs-c- /fp:fast /GL /QIfist /Gr /arch:IA32 /DAUTOBUILD /DLANG=RUS /Fofunc.obj smalllibc/func.cpp >&2[0m]
    tup error [string "builtin"]:233: Failed to define rule.
    stack traceback:
    	[C]: in function 'definerule'
    	[string "builtin"]:233: in function 'frule'
    	[string "builtin"]:309: in function 'foreach_rule'
    	[string "../../../use_msvc.lua"]:10: in function 'compile_msvc'
    	[string "Tupfile.lua"]:12: in main chunk
     *** tup: 1 job failed.
  • ZblCoder wrote:После коммита авто-сборщик выдает ошибку. Почему может не создаваться "func.obj"?
    Я вижу минимум 2 проблемы (возможно, есть что-то ещё, но это то, что я заметил, просто глянув на файлы):
    1. Несоответствие названия файла ...smalllibc/mcsmemm.h подключаемому в ...smalllibc/func.h

      Code: Select all

      #include "MCSMEMM.H"
      Linux различает верхний и нижний регистр - для него MCSMEMM.H и mcsmemm.h - это 2 разных файла. Так что нужно либо файл переименовать на верхний регистр, либо в #include использовать нижний.
    2. В других примерах сборки MSVC на SVN я вижу в tupfile.lua в строчке "compile_msvc" включение только .cpp-файлов, тогда как ты включил и .h
  • 1. Поменял в файле на нижний регистр, но ошибка та же (проверил в се файлы, больше мест нет).
    2. Если без *.h файлов, то ошибок вообще тонна http://builds.kolibrios.org/logs/svn5280-err.txt
  • ZblCoder wrote:1. Поменял в файле на нижний регистр, но ошибка та же (проверил в се файлы, больше мест нет).
    2. Если без *.h файлов, то ошибок вообще тонна http://builds.kolibrios.org/logs/svn5280-err.txt
    В include-ах относительный путь должен быть правильным, если это не системная библиотека вроде #include <stdarg.h>.
    Например, в файле ...games/LaserTank/trunk/image.cpp, вместо

    Code: Select all

    #include "kosSyst.h"
    должно быть

    Code: Select all

    #include "smalllibc/kosSyst.h"
  • ууууу, стал еще более жестокий ужас, но все *.obj собрал.
    http://builds.kolibrios.org/logs/svn5281-err.txt
  • Также для отчета выкладываю видео последней собранной версии.
  • .
    Last edited by Mario_r4 on Sun Jan 04, 2015 9:56 pm, edited 1 time in total.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Mario_r4 wrote:ZblCoder
    Чем видео захватывал?
    Open Broadcaster Software, через нее еще стримлю.
  • .
    Last edited by Mario_r4 on Sun Jan 04, 2015 9:56 pm, edited 1 time in total.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Who is online

    Users browsing this forum: No registered users and 6 guests