Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизПроблема. Рисование на Canvas е Найти похожие ветки
← →
Andrey93 © (2010-05-18 15:13) [0]Здравствуйте.
Пишу игру "Морской бой".
Есть процедура, которая на канвасе формы рисует игровое поле(просто линии). Есть кнопка(Button1:TButton), которая делает авторасстановку кораблей. Для ручной расстановки есть объекты RadioGroup1 и RadioGroup2 типа TRadioGroup.
Сначала рисуется первое поле(слева). После нажатия на кнопку Button1 скрываются RadioGroup1 и RadioGroup2 (RadioGroupX.Visible:=false), на их месте рисуется второе поле. Но рисуется оно почему-то некорректно.
До нажатия на Button1:
[img]http://i026.radikal.ru/1005/68/e2fafe8f48c5.jpg[/img]
После нажатия:
[img]http://s45.radikal.ru/i107/1005/65/db78b4d18154.jpg[/img]
Получается, что второе поле рисуется на том месте, где были объекты RadioGroup, у которых даже нет своего canvas"а.
Вот код процедуры рисования поля (Переменная Game включается после расстановки или нажатия на Button1, Sea - фоновый рисунок, dx1 и dx2 - расстояние от левого края формы).
[CODE]procedure TFormGame.FormPaint(Sender: TObject);
begin
with Canvas do
begin
Draw(0,0,Sea);
pen.Color:=clBlack;
DrawField(Sender,dx1);
if Game then
DrawField(Sender,dx2);
end;
end;
[/CODE]
Процедура DrawField(Sender:TObject;dx:integer) рисует только линии, буквы и цифры.
Нужно, чтобы второе поле рисовалось корректно.
Я пробовал уничтожать объекты RadioGroup(Free или Destroy). Всё равно поле рисуется некорректно, а программа выдаёт ошибку
[img]http://s002.radikal.ru/i198/1005/b9/e95833bea95c.jpg[/img]
Что посоветуете?
← →
Jeer © (2010-05-18 15:19) [1]Как я понял - электроны и позитроны тебе не удалось подружить.
Наверное бегал на уроках физики ?
P.S.
Посоветовать можно только одно - учиться думать, учиться искать, учиться разделять сложность на простые компоненты, учиться воплощать простое из элементарного.
← →
Ega23 © (2010-05-18 15:21) [2]
> Что посоветуете?
Заранее научиться подшивать подворотничок.
← →
RWolf © (2010-05-18 15:37) [3]Рисуй не на форме, а в выделенных для этого PaintBox"ах.
← →
Andrey93 © (2010-05-18 15:43) [4]Какая разница, на чём рисовать?) С PaintBox"ом много проблем
← →
RWolf © (2010-05-18 15:52) [5]Я к тому, чтобы снабдить каждое поле своей отрисовкой.
← →
antonn © (2010-05-18 15:52) [6]разница есть. Рисуй на буферном битмапе, а его выводи на канву
← →
Ega23 © (2010-05-18 16:04) [7]
> Какая разница, на чём рисовать?) С PaintBox"ом много проблем
Всю жизнь на нём рисовал, проблем не имел.
← →
Andrey93 © (2010-05-18 16:08) [8]Ну ок, спасибо)
← →
Jeer © (2010-05-18 16:27) [9]
> С PaintBox"ом много проблем
Т.е вынести элементы управления на панели и рисовать на канве для тебя еще проще ?
И какие такие проблемы с PB ?
Это всего лишь выделение части канвы с локальными координатами.
← →
Andrey93 © (2010-05-18 16:44) [10]А переменные (x,y) в PaintBox.MouseMove считаются от начала фотмы или от начала PaintBox"а?
← →
Andrey93 © (2010-05-18 16:44) [11]А переменные (x,y) в PaintBox.MouseMove считаются от начала формы или от начала PaintBox"а?
← →
antonn © (2010-05-18 16:48) [12]
> А переменные (x,y) в PaintBox.MouseMove считаются от начала
> формы или от начала PaintBox"а?
->
> Это всего лишь выделение части канвы с локальными координатами.
локальными - значит координатами контрола
← →
Ega23 © (2010-05-18 17:05) [13]
> А переменные (x,y) в PaintBox.MouseMove считаются от начала
> фотмы или от начала PaintBox"а?
В справку заглянуть не позволяет религия?
← →
Amoeba_ (2010-05-18 17:35) [14]
> Есть процедура, которая на канвасе формы рисует игровое
> поле(просто линии).
Может в качестве игрового поля использовать DrawGrid?
А это для тех "чайников", кто программирует Морской бой:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=918
← →
Andrey93 © (2010-05-18 17:42) [15]Просто у меня почему-то в PaintBox"e никогда ничего не получалось, поэтому я старался его не использовать. А теперь всё получилось, спасибо =)
← →
Andrey93 © (2010-05-18 17:44) [16]Amoeba_, не такой у меня Морской Бой))
← →
Jeer © (2010-05-18 18:03) [17]
> не такой у меня Морской Бой))
Настоящий ? :)
← →
Плохиш © (2010-05-18 19:25) [18]
> Ega23 © (18.05.10 17:05) [13]
> В справку заглянуть не позволяет религия?
Прикалываешься?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.067 c