BDK писал(а): Всё верно пишешь Андрей. Но от себя скажу так - если бы я писал как вы оба то лучше бы я убился башкой об столб Но я не издеваюсь. Так - лёгкая ирония.
Я бы вообще не использовал кнопки - я обычно рисовал в BitMap. Потом я стал использовать OpenGL для графики. А сейчас я вообще написал бы так чтобы с минимальными изменениями откомпилировать хоть под винду, хоть под линукс, хоть под андроид или айос.
Идея отличная, тем более для сетевой игры, как раз необходим проект именно под андроид. Но для меня она не реализуема, я ламер в программировании. Вот если бы кто-нибудь сведущий в этом деле взялся бы за это...
BDK писал(а): Кстати хорошая идея сделать под Android - вот там распространить в массы получится 100%. И даже возможно заработать на этом.
Вам с Андреем могу предоставить все права и возможности сделать это. Могу предоставить исходники и BDK. Хотя по хорошему, лучше написать всё заново. Меня оставить только как автора идеи, а если вам на этом проекте удастся ещё и заработать, буду только рад - мне ничего не надо из денежного вознаграждения. Подумайте над этим. Беру тайм-аут. Жду ответов.
З.Ы. Вся "думалка ходов" игры находится в одной процедуре TForm1.FormMouseMove - вот оттуда можно кое-что оставить - остальное заново, чтобы было красиво и на всех системах работало.
Идея отличная, тем более для сетевой игры, как раз необходим проект именно под андроид. Но для меня она не реализуема, я ламер в программировании. Вот если бы кто-нибудь сведущий в этом деле взялся бы за это...
Не уже ли ты уже старик? Вряд ли ты старше меня. А уже решил что тебе пришла пора прекратить учиться новому? Я вот постоянно учусь тому в чем еще недавно был ламер. И не вижу в этом никакой проблемы. Давай вместе учиться - я подскажу что знаю. Может быть какие-то мои приемы пригодятся и тебе. На самом деле написать приложение под Android проще чем ты думаешь.
► Показать
И для этого даже не обязательно переходить на другой язык программирования - есть версия Delphi XE5 кажется который без проблем компилирует под Android. Но дело тут не в компиляторе и не в языке а в правильном стиле программирования. Программировать нужно так чтобы вообще не зависеть от платформы и операционной системы. Чтобы легко можно было адаптировать программу под любую платформу при этом практически не переписывая в основной программе ни строчки кода. То есть можно написать большую сложную программу, отладить её например под виндой а затем практически не теряя времени и усилий быстро сделать полностью готовую версию под Android и она сразу заработает и не будет требовать каких-то больших изменений и какой-то специальной отладки. Ну или минимум какой-то отладки.
Если тебе это интересно то скажи. Тогда я приведу несколько примеров того как я бы писал вот эту например игру шахматный бой. Я конечно не буду писать полностью потому что у меня нет на это времени. Но некоторые объясняющие примеры кода приведу - чтобы ты смог сам разобраться и написать остальное сам.
И еще кое что - дело тут даже не в разных платформах. Допустим вот захотел ты свою программу перенести в 3D или в формат VR - и что для этого нужно опять заново переписывать всю программу? Нет - при правильном подходе такой перенос можно сделать минимумом усилий, вообще не изменяя основную часть кода. Если тебе интересно про этот правильный подход то скажи и я поделюсь.
В целом суть - никогда нельзя из верхнего уровня работать напрямую с конкретными ресурсами типа кнопочки или битовые карты, или допустим треугольники и текстуры если это 3D. Верхний уровень должен работать с АБСТРАКТНЫМИ объектами вообще не имея понятия о конкретных кнопочках, пикселах или треугольниках. Например для шахматной доски в твоей программе можно создать тип TChessBoard в котором находится простой массив 8х8 где каждая ячейка содержит в себе простые свойства типа - закрыта/открыта, код фигуры находящейся в клетке и т.п. Никаких пикселов и кнопочек - только чисто абстрактная, независимая от платформы и операционной системы информация.
В общем если интересно дай знать и я продолжу уже с конкретными примерами на Delphi.
BDK писал(а): Не уже ли ты уже старик? Вряд ли ты старше меня. А уже решил что тебе пришла пора прекратить учиться новому?
Да не в том дело. Просто программирование - это не совсем моё. Я люблю иностранные языки и историю. Программировал действительно только по необходимости. Тогда была куча свободного времени и я знал, что кроме меня, эту игру не будет программировать никто. Сейчас со временем понапряжней. Да и я далеко не такой умный, как вы с Андреем. У меня уже вот от переделки кода, голова вспухла.
Хорошо бы действительно перенести игру на платформу андроид. Что скажешь Андрей, возьмемся? Но я по крайней мере ближайшую неделю программить не буду, надо отдохнуть.
Андрей, Нашел, строки которые не нравятся ХР
Button7.Glyph.Assign (nil);
Это, в принципе, я у тебя взял. Так что если будешь на работе,на ХР может придумаешь как сделать чтобы Button чистился и ХР на него не глючил.
Пока не внес не строчки в изменении исходника 1.5b2 . Так что если есть желание можешь попробовать пока улучшить код сам. У меня пока неделя отдыха от кодинга будет.
Андрей, Поиграл еще в версию 1.5b2. Молодец, что сделал подсвечивание болдом на кнопках в тех фигурах, которые уже открыты. Давно собирался это сделать, но как-то руки не доходили.
Ну у меня сейчас этой игрой заниматься времени тоже нет. Другой занимаюсь Может быть тогда Андрею мои подсказки пригодятся? Что скажешь Андрей - стоит мне писать или не стоит тратить время?
Михаил Киселев писал(а):Андрей, Нашел, строки которые не нравятся ХР
Button7.Glyph.Assign (nil);
Это, в принципе, я у тебя взял. Так что если будешь на работе,на ХР может придумаешь как сделать чтобы Button чистился и ХР на него не глючил.
Может вместо процедуры clearb (отвечает за расстановку фигур заново) игру можно как-то просто перезапускать (под ХР без расстановки фигур заново, первый раз Шахматный бой играет без глюков). Только желательно запомнить переменную "o".
begin
o:=2;
end.
переменная "о" отвечает за количество фигур с которыми предстоит играть. 2 - две фигуры, 3- три, и т.д.
Но будь с ней осторожен, эта переменная еще задействована в "думалке ходов" игры что находится в процедуре TForm1.FormMouseMove .