gmpack's People
gmpack's Issues
рефакторим
- Вводим новые типа PtrTower (std::shared_ptrcore::BaseTower) и PtrUnit (std::shared_ptrcore::BaseUnit)
- Вводим UnitManager (std::map<> с методом getUnitById ) и TowerManager - синглтоны, хранящие списки PtrTower, PtrUnit, чтобы разгрузить код TDGame.
- Приводим ProcessLogger к виду LogManager.
- отдельный метод для размещения на карте башен. занятое место надо помечать как ROCK
- у каждого юнита свой список для перемещения, чтобы не было случая, когда юнита отрезали от основного пути.
- Перемещение по карте перенести в код BaseUnitManager. (void nextStep())
- Поиск следующей цели перенести в код TowerManager
- Поворот к следующему юниту перенести в код BaseTowerManager. (void rotateToTarget())
- избавляемся от core::Coord. он не нужен. вместо него Vector3d.
- В Object3d добавляем поле Vector3d orientation - ориентация "лица" объекта в пространстве.
Этап2
- перейти на векторное представление движения ( у object3d ввести атрибуты Vector3d position, Vector3d orintation)
- Движение юнитов считаем, опять же, векторами (вектор скорости каждому типу свой).
- пули (пока примитивные)
скопировать с sdl_tutor скелет
логер, Exception NonCopy из DataAcc и сабж. сделать его библиотекой (core + добавить CAppState и CAppStateManager), чтобы можно было использовать в других подпроектах. стурктур сделать такой:
utest (unit tests)
core (library)
test (executable)
CMakeLists.txt
флаги сборки должны быть с -Wall
crimsonland
сабж
Рефакторим
- Класс с настройками.
- цвета базовых элементов
- углы отклонения при атаке
Ping Pong
сабж
крестики нолики
сабж
Pocket Tanks
воксели
Уровни
- Класс загрузки каждого отдельного уровня (описание в отдельном файле.) Уровень включает в себя:
- список волн и тип врагов в каждой волне
- доступные/недоступные башни
- ограничения
Рефакторинг кода работы с картой
Объеденить с поиском пути.
Этап 3
- рассчет попаданий и показ оставшегося здоровья.
скрипты врагов
в скрипте должно быть описано:
- название и описание
- вершины одной плоскости врага (вторая плоскость и бока достраиваются автоматически
- скорость перемещения
- прозрачность и цвет
- количество жизней
Черновая реализация
- отрисовка карты
- отрисовка юнитов
- отрисовка башен. + круг действия башни по клику
- движение по точкам карт.(класс отдельный от реализации самого юнита) движение черновое, не плавное.
- клик по карте/юниту.
- поворот башни к ближайшему врагу в радиусе и удержание его пока не уйдет.
Класс ограничений
Класс который хранит ограничения в парах "ключ - значение".
Тесты!
- основные векторные операции (перемещения, поврота, расчета траектории полета).
sdl 2.0
переводим + автотесты.
Surface становится вторичным. для отрисовки используем новый класс Texture
вот статьи
https://wiki.libsdl.org/MigrationGuide
http://lazyfoo.net/tutorials/SDL/
http://habrahabr.ru/post/198600/
http://habrahabr.ru/post/200730/
http://www.willusher.io/pages/sdl2/
http://ivan4b.ru/simple-sdl-opengl-program-tutorial
http://openme.gl/opengl-4-x-example-using-sdl2-and-glm/
тетрис
сабж
сглаживание
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
// Сглаживание точек
glEnable(GL_POINT_SMOOTH);
glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
// Сглаживание линий
glEnable(GL_LINE_SMOOTH);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
// Сглаживание полигонов
glEnable(GL_POLYGON_SMOOTH);
glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.