Marble Match-3 - ещё игра на конкурс (игра выпущена)
-
By the way, I have an idea to convert match-3 to other genre, I don't know name of this genre - instead of swapping blocks to reach column/row with 3 similar pictures, you just click on any block and it and all near similar block explodes too. It's not very hard to implement it, and if there is no same game already released for KolibriOS, maybe I will do it.Roman Shuvalov
I think it's a good idea.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
Производительность действительно стала ввше, особенно заметно на стареньком IBM.
to infinity and beyond
На самом деле просто меньше лишних отрисовок. Во время анимации взрывов производительность прежняя (но анимация длится недолго, поэтому в среднем нагрузка на ЦП упала). Будет ещё ниже, т.к. простор для оптимизации есть. Если я конечно новых ресурсоёмких фич не напридумываюpunk_joker wrote:Производительность действительно стала ввше, особенно заметно на стареньком IBM.
![Smile :)](./images/smilies/icon_smile.gif)
Roman Shuvalov
Маленький вопрос по ассемблерной вставке в Си.
А каким операндом обозначить ebp?
Code: Select all
+---+--------------------+
| r | Register(s) |
+---+--------------------+
| a | %eax, %ax, %al |
| b | %ebx, %bx, %bl |
| c | %ecx, %cx, %cl |
| d | %edx, %dx, %dl |
| S | %esi, %si |
| D | %edi, %di |
+---+--------------------+
Функция 65 - вывести изображение с палитрой в окно.
Параметры:
eax = 65 - номер функции
ebx = указатель на изображение
ecx = [размер по оси x]*65536 + [размер по оси y]
edx = [координата по оси x]*65536 + [координата по оси y]
esi = число бит на пиксель, должно быть 1, 4, 8, 15, 16, 24 или 32
edi = указатель на палитру (2 в степени esi цветов 0x00RRGGBB); игнорируется при esi > 8
ebp = байтовое смещение между концом предыдущей строки изображения и началом следующей строки
asm volatile ("int $0x40"::"a"(65), "b"(data), "c"(w*65536+h), "d"(0*65536+0), "D"(0), "S"(32), "ebp???"(0) );
Roman Shuvalov
Никак.
Обходной вариант номер 1 - https://gcc.gnu.org/onlinedocs/gcc/Loca ... l-Reg-Vars. Не сможет скомпилироваться при отсутствии опции -fomit-frame-pointer.
Обходной вариант номер 2 - заполнять его самостоятельно внутри asm-блока, не забыв сохранить и восстановить его, asm("pushl %%ebp\n\tmovl %2, %%ebp\n\tint $0x40\n\tpopl %%ebp" : "=a"(...),"=b"(...) : "rmi"(delta), ...)
Обходной вариант номер 1 - https://gcc.gnu.org/onlinedocs/gcc/Loca ... l-Reg-Vars. Не сможет скомпилироваться при отсутствии опции -fomit-frame-pointer.
Обходной вариант номер 2 - заполнять его самостоятельно внутри asm-блока, не забыв сохранить и восстановить его, asm("pushl %%ebp\n\tmovl %2, %%ebp\n\tint $0x40\n\tpopl %%ebp" : "=a"(...),"=b"(...) : "rmi"(delta), ...)
Сделаем мир лучше!
По умолчанию флаги компиляции сделаны для оптимизации по размеру. Для критических по производительности файлов можно в Tupfile.lua переключить CFLAGS = CFLAGS_OPTIMIZE_SPEED перед вызовами compile_gcc - которых может быть несколько. Вызов 7-й функции в вызов 65-й функции это, естественно, не превратит, но может быть полезно иметь в виду.
Сделаем мир лучше!
Опаньки, неожиданно. Спасибо за объяснение.
В моём случае самым правильным решением будет реализовать у себя не только 32-битные, но и 24-битные текстуры, чтобы можно было просто 7-й функцией рисовать и всё.
В моём случае самым правильным решением будет реализовать у себя не только 32-битные, но и 24-битные текстуры, чтобы можно было просто 7-й функцией рисовать и всё.
Roman Shuvalov
Обновление.
- плавные анимации
- разукрасил шарики, кристаллы не получились, пока оставлю так.
Скриншотик:
![Image](https://img-fotki.yandex.ru/get/16189/44452758.6/0_85d08_81a589c1_orig.jpg)
- плавные анимации
- разукрасил шарики, кристаллы не получились, пока оставлю так.
Скриншотик:
![Image](https://img-fotki.yandex.ru/get/16189/44452758.6/0_85d08_81a589c1_orig.jpg)
Roman Shuvalov
Гы..
Оставь так, только едкий рыжий цифровой/калькуляторный шрифт на фоне гранита как-то мне глаз режет.. ИМХО уже выглядит целостно, а фичи движка можно и позже допилить.. ИМХО игровая логика, поле и графика работают, можно сосредоточиться на контенте..
![Smile :)](./images/smilies/icon_smile.gif)
Last edited by kiv on Tue Dec 30, 2014 2:36 am, edited 1 time in total.
А, да, забыл написать, что шрифт - следующий кандидат на доработку. Ну и как писал выше, возможно, добавлю новый режим игры. Только это будет уже не матч-3. Возможно, сменю название.
Roman Shuvalov
Обновление. Сделал нормальный шрифт.
![Image](https://img-fotki.yandex.ru/get/15565/44452758.6/0_85d09_73213b4f_orig.jpg)
![Image](https://img-fotki.yandex.ru/get/15565/44452758.6/0_85d09_73213b4f_orig.jpg)
Roman Shuvalov
А можно голубые камушки сделать более голубыми, а то у меня на ноутбуке синии и голубые сливаются...часто ошибаюсь..![Smile :)](./images/smilies/icon_smile.gif)
![Smile :)](./images/smilies/icon_smile.gif)
Спасибо за отзыв. Сделал их почти бирюзовыми, залью при следующем коммите вместе с локализацией.
Roman Shuvalov
Обновление
- все строки вынесены в отдельные файлы для удобной локализации на другие языки
- мелкие косметические изменения
- все строки вынесены в отдельные файлы для удобной локализации на другие языки
- мелкие косметические изменения
Roman Shuvalov
Who is online
Users browsing this forum: No registered users and 2 guests