|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.07.2009, 00:33 | #1 |
Форумчанин
Регистрация: 25.02.2009
Сообщений: 113
|
Игровое поле в C++ Builder.
Вот тут начал смотреть игрострой билдеровский относительно простые игры типа Филлер, Шашки, если сам игровой процесс мне понятен (по коду), то некоторые технические моменты напрягают:
1) Например у меня есть фаил с изображением шашечной доски, как мне сделать разметку(координаты) поля таким образом чтобы нажимаешь на опр. квадрат и тут какое то действие пошло. 2) как создать игровое поле (точнее нарисовать) ну например 10 на 10 квадратиками с рандомным заполнением цветов) Кароч если кто понял мои проблемы или отпишите если что дельное знаете или дайте книгу только не сильно мутную и ещё про канву че нить дельное подкинет мож кто Заранее благодарен)) Думаю в период каникул особо придираться никто не будет к темам PS: мож у кого есть какая нибудь 2d игра с хорошим и понятным комментарием кода? |
15.07.2009, 08:09 | #2 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Цитата:
Код:
x, y - параметрами передаются и означают координаты, в которую ткнули мышой size_x, size_y - размер ячейки. Для квадрата соответственно Одинаковы их значения будут Я в свое время для шашек использовал TDrawGrid. С ячейками уже заморачиваться не надо, механизмы клика по определенной ячейке и всё необходимое уже есть в этом контроле. Нужно только прорисовку нарисовать (если не изменяет память, то событие OnDrawCell должно быть для этого), а там хоть случайным цветом заливайте, хоть картинку рисуйте. |
|
15.07.2009, 18:31 | #3 |
Пользователь
Регистрация: 10.07.2009
Сообщений: 29
|
в главном формуляре нужно добавить
#include <algorithm.h> он нужен для рандомной функции randomize();//такого вида которая запускает генератор случайных чисел с каким-нибудь значением системного времени. у вас есть массив наверно Pole[100]; тоесть вспомогательная переменная для покрытия поля random_shuffle(Pole,Pole+100); функция ожидающая как параметр верхнее и нежнее значение массива Pole,Pole+100 почему именно так я точно не знаю затем смешанные значения поля распределить по самому полю через цикл for (int i=0; i<10; i++) for (int j=0; j<10; j++) InitArray[i][j]=Pole[j*10+i];// передаем значения в массив где сохранены //все картинки и передвигаемся по полю каждый раз на одну клетку //дальше. } примерно так я думаю...
Благими намерениями вымощена дорога в ад
Последний раз редактировалось mazak; 15.07.2009 в 22:12. |
15.07.2009, 22:13 | #4 |
Форумчанин
Регистрация: 25.02.2009
Сообщений: 113
|
спасибо за ответы) а StringGrid я так понял тоже для этих целей?
|
15.07.2009, 22:31 | #5 |
Пользователь
Регистрация: 10.07.2009
Сообщений: 29
|
я взял для своих целей DrawGrid
кстати для меня стоило труда разобраться в передвижении по сетке: по формуле j*10+i 0*10+0 =0 первая клетка 0*10+1 =1 вторая клетка 0*10+2 =2 третья клетка и т.д.
Благими намерениями вымощена дорога в ад
|
15.07.2009, 22:57 | #6 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
StringGrid - это DrawGrid + заточка под отображение строк в ячейках. Тут строки отображать не нужно, а потому ДравГрид лучше подходит. СтрингГрид больше для отображения каких-то табличных данных подходит.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
уменьшить на 1 в по поле | gred | Microsoft Office Access | 0 | 19.06.2009 22:37 |
После ввода в поле по Enter нужно перейти на другое поле! | •ScReam•™ | Помощь студентам | 2 | 16.06.2009 08:47 |
Вычисляемое поле | goodwinrock | БД в Delphi | 5 | 30.01.2009 15:27 |
Игровое поле с шестиугольной "клеткой" | Кронос | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 1 | 21.11.2007 18:14 |
Поле | Luciferium | БД в Delphi | 3 | 26.07.2007 14:23 |