story changes, ui fixes

This commit is contained in:
anton.gurov 2019-11-08 13:52:15 +03:00
parent 5619155fe6
commit 913110508c
9 changed files with 45 additions and 11 deletions

View File

@ -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"
} }

View File

@ -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
} }

View File

@ -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

View File

View File

@ -1,4 +1,6 @@
декодирование ввода в отдельном потоке декодирование ввода в отдельном потоке
Реализация FPS и троттлинг Реализация FPS и троттлинг

View File

@ -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) и почему это **важно**.

View File

@ -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 файл библиотеки рядом, и все будет работать!
Вторая кочка, на котрой

View File

@ -0,0 +1,10 @@
Автоматизация сборки и тестирование
===
- Почему это важно: мелочи сжирают кучу времени. Не позволяйте им это делать!
- настройка под Linux: все внешние либы собраны и включены в монорепо (дело вкуса)
- Go-специфичные вещи: glide, go mod
- Кросскомпиляция, CGO для Mac и Linux. CGO_ENABLED=1, mingw, локальная линковка библиотек
- Таргеты: Убираем бардак за собой - distclean, build
- Автоматическое тестирование, testify. Не ленитесь писать тесты!
- Деплой/публикация после сборки

View File

@ -2,8 +2,21 @@
Плюсы использования нативной системы типов Плюсы использования нативной системы типов
- Примитивы типа Rect
- Интерфейсы, type casting и переиспользования Blit
- свитчи по типам
Минусы использования нативной системы типы Минусы использования нативной системы типы
- Структура структуры (эм..) иммутабельна
ECS - меняем бойлерплейт на относительное снижение связности ECS - меняем бойлерплейт на относительное снижение связности
Минутка рекламы gogue - Делаем динамическую систему типов там и только там где нам надо
- Возможность физически впихнуть в кеш проца все актуальные данные
- Особая актуальность для Go - обработка в main thread всего что связано с Io
Минутка рекламы gogue
- Толковый туториал, неплохой код
- Пользуйтесь и продвигайте