Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 23.01.2014, 00:21   #1
SaiLight
Форумчанин
 
Аватар для SaiLight
 
Регистрация: 10.01.2009
Сообщений: 116
Репутация: 165
Хорошо [Perfect Light] Двадцатьпяшки


Игра, в которой, как программисту, мне гордиться, конечно, нечем, но, тем не менее, думаю, заслуживающая внимания данного форума, а, тем более, новичков, решивших создать свои пятнашки и не знающих, с чего начать и чем закончить. Игра, в качестве несерьезного, простого мини-проекта, была написана нами всего за несколько вечеров, но имеет достаточно широкие для подобного типа игр возможности, а код написан максимально понятно для всех, желающих в нем разобраться. И, что самое главное, здесь впервые прошли испытание некоторые компоненты, разработанные мною для редактора системы частиц Perfect Particle 2.

Подробного описания игре здесь давать особого смысла не вижу, так как все необходимое можно найти в справочном окне, реализованном внутри самой программы. Как и заведено в подобных ситуациях, выкладываю здесь два архива - с игрой и с игровым кодом. Впрочем, должен предупредить, что проект не будет скомпилирован на стороннем компьютере из-за отсутствия тех самых графических компонентов, находящихся в закрытой библиотеке нашей команды.

P.S. В архиве с игрой, также, имеется набор картинок, созданных нашей командой именно для этой игры (кроме кота :D). Впрочем, при необходимости, есть возможность загружать и собственные изображения.

Двадцатьпяшки (exe).rar
Двадцатьпяшки (код).rar

Последний раз редактировалось SaiLight; 23.01.2014 в 00:28.
SaiLight вне форума   Ответить с цитированием
Старый 23.01.2014, 08:24   #2
phomm
personality
Профессионал
 
Аватар для phomm
 
Регистрация: 28.04.2009
Адрес: Тюмень
Сообщений: 2,855
Репутация: 1511

icq: 421049471
skype: phomm-
По умолчанию

Игра уважаемого мной автора. Хорошая, как и всегда. Хотя, если быть честным, она слишком проста для Вас, и, по сути, действительно, есть не что иное, как проба работы.
По игре нет замечаний у меня, всё сделано на высоте, разве что есть замечания по программной части. Самый главный, на мой взгляд, минус для приложения это автосоздаваемые формы, в нормальных проектах такого делать не стоит, надо делать динамически создаваемые формы. Также существенные, но уже для кода минусы - глобальные переменные в модулях форм, почти все из которых должны быть полями формы, и некоторая связность форм (в том числе из-за этих глобальных переменных). Код будет негибкий и могут быть сложности при разборе багов, т.к. нет инкапсуляции. Яркий пример – значение гейммода – оно глобальное, видно отовсюду, есть вероятность что его изменят обычным присвоением, хотя для этой операции нужен метод setgamemode – так и надо сделать это заботой компилятора – через свойство property.
Вот ещё пример, более комплексный, не очень хороший подход:
Код:

procedure TfrmArea.btnOkayClick(Sender: TObject);
begin
  vBmpAll.Assign(vBitmap);
  frmMain.pSetGameMode(cGM_PREVIEW);
  frmMain.pCutToCells();
  frmMain.pErrorMessage(cE_NICEPICK);
  Close();
end;

Ведь вызвано же через frmArea.ShowModal(); и можно просто проанализировать ModalResult и весь код отдать главной форме, не нарушая инкапсуляции данных (ну, когда они будут полями формы, ессно) и не создавая излишней связности.
На мой взгляд, тут вообще можно было бы ограничиться одной формой, добавляя компоненты – аналоги панелей с функциональностью модальных окон поверх главного окна. И весь код мог бы быть на 1 форме. Но и это ещё не всё, я бы логику именно пятнашек выделил в отдельный класс, а форма бы только занималась рисованием и направлением команд от пользователя в этот класс.
Ну и всякие мелочи – 500 просится в константы, гейммод просится быть енумом, множество просчётов (например, vsize), повторяемых в нескольких подпрограммах, можно вынести в свойства или функции.
Надеюсь, моя критика лишь только конструктивна, чтобы наперёд видеть от Вас очень качественные работы, чего Вам и желаю !
phomm вне форума   Ответить с цитированием
Старый 23.01.2014, 13:03   #3
SaiLight
Форумчанин
 
Аватар для SaiLight
 
Регистрация: 10.01.2009
Сообщений: 116
Репутация: 165
Сообщение

phomm, спасибо, ваша критика всегда очень конструктивна и полезна. Возможно, дело в самой несерьезности работы, и подход к ней изначально был как к развлечению - когда все сидят в Radmin'е, видят твой рабочий стол, и ты пишешь команды, объясняя их назначение и общую структуру игры. В любом случае, думаю, осмысливать необходимо даже такие простые проекты, тренируясь на них в структуризации своего мышления. В общем, спасибо за советы, буду и дальше работать над культурой своего кода.
SaiLight вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Perfect Particle 2 SaiLight Gamedev - cоздание игр: Unity, OpenGL, DirectX 39 12.09.2014 20:36
Clock by Perfect Light SaiLight Софт 2 28.07.2010 10:16


22:14.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru