story changes, ui fixes
This commit is contained in:
parent
5619155fe6
commit
913110508c
@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"version": "v0.0.1.4-2-g20fa78a",
|
"version": "v0.0.1.4-3-g5619155",
|
||||||
"title": "Alchemyst",
|
"title": "Alchemyst",
|
||||||
"sizeX": 100,
|
"sizeX": 100,
|
||||||
"sizeY": 47,
|
"sizeY": 47,
|
||||||
"fpsLimit": 60,
|
"fpsLimit": 60,
|
||||||
"font": ".\/resources\/fonts-ttf\/LiberationMono-Bold.ttf",
|
"font": "./resources/fonts-ttf/LiberationMono-Bold.ttf",
|
||||||
"fontSize": "8x12",
|
"fontSize": "8x12",
|
||||||
"verbosity": "debug"
|
"verbosity": "debug"
|
||||||
}
|
}
|
@ -31,7 +31,7 @@ func (ts *GameScreen) Enter() {
|
|||||||
Print(1, ts.mw.H-2, "Press [color=white]?[/color] for help")
|
Print(1, ts.mw.H-2, "Press [color=white]?[/color] for help")
|
||||||
}
|
}
|
||||||
func (ts *GameScreen) Exit() {
|
func (ts *GameScreen) Exit() {
|
||||||
ts.mw.GetLayer("base").ClearArea(1, ts.mw.H-2, 30, 1)
|
ts.mw.GetLayer("overlay").ClearArea(0, ts.mw.H-3, 30, 3)
|
||||||
//remove what we dont need
|
//remove what we dont need
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,6 +67,8 @@ func (ms *MenuScreen) HandleInput(input string) {
|
|||||||
//}
|
//}
|
||||||
|
|
||||||
switch input {
|
switch input {
|
||||||
|
case "Escape":
|
||||||
|
fallthrough
|
||||||
case "Space":
|
case "Space":
|
||||||
ms.scm.SetScreen(ms.scm.PreviousScreen)
|
ms.scm.SetScreen(ms.scm.PreviousScreen)
|
||||||
break
|
break
|
||||||
|
0
story/choose_your_pill.md
Normal file
0
story/choose_your_pill.md
Normal file
@ -1,4 +1,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
декодирование ввода в отдельном потоке
|
декодирование ввода в отдельном потоке
|
||||||
|
|
||||||
Реализация FPS и троттлинг
|
Реализация FPS и троттлинг
|
@ -1,5 +1,10 @@
|
|||||||
RLG и Golang - полезные советы
|
RLG и Golang - некоторые полезные советы
|
||||||
===
|
===
|
||||||
1. [Установка и некоторые особенности работы](./linux_go_blt.md) связки BLT + Go на Linux
|
0. [Выбираем инструменты](./choose_your_pill.md)
|
||||||
2. Реализация [некоторых возможностей](./go_chans_for_game.md) Go - chans, tickers, throttling
|
1. [Установка и некоторые особенности работы](linux_go_blt_install_quickstart.md) связки BLT + Go на Linux
|
||||||
3. [Система типов](./static_types_vs_ecs.md) - нативная или ECS?
|
2. Что [стоит и НЕ стоит](go_game_dos_and_donts.md) делать с возможностями Go - +chans, +tickers, +throttling, -closures
|
||||||
|
3. [Система типов](./static_types_vs_ecs.md) - нативная или ECS? На самом деле и то, и то
|
||||||
|
|
||||||
|
#####Дополнения
|
||||||
|
|
||||||
|
1. Как [не делать лишнюю работу](./makefile_and_crosscompiling.md) и почему это **важно**.
|
@ -1,9 +1,9 @@
|
|||||||
Установка и работа с BLT на Linux
|
Установка и работа с BLT на Linux
|
||||||
==
|
==
|
||||||
|
|
||||||
Для Windows и Mac проблем с Go + BLT, насколько мне известно нет.
|
Про Windows и Mac в контексте связки Go + BLT, я говорить не буду, поскольку не ел устриц.
|
||||||
С Linux, которая моя основная рабочая ось - другая история, здесь вносят свой шарм особенности работы линкера.
|
С Linux, которая моя основная рабочая ось - другая история, здесь вносят свой шарм особенности работы линкера.
|
||||||
Дело в том, что в составе BLT есть готовые биндинги для Go, НО! В Terminal/Include/Go по умолчанию
|
Дело в том, что BLT написана на C. Но! есть готовые биндинги для Go, НО! В Terminal/Include/Go по умолчанию
|
||||||
указаны такие флаги линкера CGO (стр 25)
|
указаны такие флаги линкера CGO (стр 25)
|
||||||
```go
|
```go
|
||||||
// #cgo LDFLAGS: -lBearLibTerminal
|
// #cgo LDFLAGS: -lBearLibTerminal
|
||||||
@ -44,4 +44,6 @@ RPATH ./
|
|||||||
Ура! Теперь кладем libBearLibTerminal.so прямо в папку с main.go и запускам go run (или скомпилированный бинарник) прям
|
Ура! Теперь кладем libBearLibTerminal.so прямо в папку с main.go и запускам go run (или скомпилированный бинарник) прям
|
||||||
оттуда. Собранные таким образом бинарники будут искать библиотеку в той же папке, где находятся они сами.
|
оттуда. Собранные таким образом бинарники будут искать библиотеку в той же папке, где находятся они сами.
|
||||||
|
|
||||||
Теперь при дистрибуции приложения можно просто положить .so файл библиотеки рядом, и все будет работать!
|
Теперь при дистрибуции приложения можно просто положить .so файл библиотеки рядом, и все будет работать!
|
||||||
|
|
||||||
|
Вторая кочка, на котрой
|
10
story/makefile_and_crosscompiling.md
Normal file
10
story/makefile_and_crosscompiling.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
Автоматизация сборки и тестирование
|
||||||
|
===
|
||||||
|
|
||||||
|
- Почему это важно: мелочи сжирают кучу времени. Не позволяйте им это делать!
|
||||||
|
- настройка под Linux: все внешние либы собраны и включены в монорепо (дело вкуса)
|
||||||
|
- Go-специфичные вещи: glide, go mod
|
||||||
|
- Кросскомпиляция, CGO для Mac и Linux. CGO_ENABLED=1, mingw, локальная линковка библиотек
|
||||||
|
- Таргеты: Убираем бардак за собой - distclean, build
|
||||||
|
- Автоматическое тестирование, testify. Не ленитесь писать тесты!
|
||||||
|
- Деплой/публикация после сборки
|
@ -2,8 +2,21 @@
|
|||||||
|
|
||||||
Плюсы использования нативной системы типов
|
Плюсы использования нативной системы типов
|
||||||
|
|
||||||
|
- Примитивы типа Rect
|
||||||
|
- Интерфейсы, type casting и переиспользования Blit
|
||||||
|
- свитчи по типам
|
||||||
|
|
||||||
Минусы использования нативной системы типы
|
Минусы использования нативной системы типы
|
||||||
|
|
||||||
|
- Структура структуры (эм..) иммутабельна
|
||||||
|
|
||||||
ECS - меняем бойлерплейт на относительное снижение связности
|
ECS - меняем бойлерплейт на относительное снижение связности
|
||||||
|
|
||||||
Минутка рекламы gogue
|
- Делаем динамическую систему типов там и только там где нам надо
|
||||||
|
- Возможность физически впихнуть в кеш проца все актуальные данные
|
||||||
|
- Особая актуальность для Go - обработка в main thread всего что связано с Io
|
||||||
|
|
||||||
|
Минутка рекламы gogue
|
||||||
|
|
||||||
|
- Толковый туториал, неплохой код
|
||||||
|
- Пользуйтесь и продвигайте
|
Loading…
x
Reference in New Issue
Block a user