|
Основной форум Сюда все проблемы связанные с программированием. |
16.10.2010, 14:46
|
#1
|
Знающий
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений (для 32 пользователей)
|
Вопросы
вот делаю чтото на подобие painta сделал рисование кистью а как сделать рисование точкой пытался посмотрите что не так
program paint; const SPEED = 1; // Скорость движения var i : Integer; x, y : Integer; // позиция key : Integer; begin // Инициализация x := 32; // позиция по X y := 32; // и по Y соответственно :) i :=2;// толшина // Подготовка поля вывода SetColor(255, 255,255); FillRect(0, 0, GetWidth, GetHeight); // Отрисовка и обработка ввода repeat // Получаем код зажатой клавиши key := GetKeyPressed; // Вот что бывает, когда нет возможности использовать case ;) if key = KE_KEY6 then x := x + SPEED; if key = KE_KEY8 then y := y + SPEED; if key = KE_KEY4 then x := x - SPEED; if key = KE_KEY2 then y := y- SPEED; if key = KE_KEY5 then begin setColor(125, 125, 125); FillRect(x ,y, i,i ); end; // контролируем выход за границы экрана if x< 0 then x := 0; if y < 0 then y := 0; if x > GetWidth - i then x:= GetWidth - i; if y > GetHeight - i then y := GetHeight - i; // Рисуем новой позиции setColor(0, 0, 0); fillRect(x,y, i, i); // Вывод этого безобразия на экран и задержка на 20 мс repaint; delay(20); until GetKeyClicked = KE_KEY0; // Закрыть приложение при нажатии "0" end.
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
|
(Offline)
|
|
16.10.2010, 14:52
|
#2
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Вопросы
не увидел проблемы. у тебя i - размер кисти. (кстати, в художественном магазине рядом с моим универом кисти почему-то не квадратные)
поставь его 1 и будет рисование точкой.
|
(Offline)
|
|
16.10.2010, 14:59
|
#3
|
Знающий
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений (для 32 пользователей)
|
Ответ: Вопросы
да не я имею виду жмеш на 5 и точка отрисовывается а у меня получается я рисую и тут же она стирается
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
|
(Offline)
|
|
16.10.2010, 19:13
|
#4
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Вопросы
ну, например, делай скрин и дальше рисуй на нем
imagefromcanvas(x,y,width,height: integer):image;
вместо "подготовки поля..."
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
17.10.2010, 14:34
|
#5
|
Знающий
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений (для 32 пользователей)
|
Ответ: Вопросы
Как сделать описание процедуры для модуля
procedure cls;//Процедура отчистки экрана begin setcolor(255,255,255);//Устанавливаем белый цвет FillRect(0, 0, GetWidth, GetHeight);//рисуем закрашенный прямоугольник на весь экран setcolor(0,0,0);//возвращаем цвет end;
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
|
(Offline)
|
|
17.10.2010, 15:22
|
#6
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Вопросы
в interface ты пишешь только название и что входит.
например:
function shit(a,b:integer):string;
а потом пишешь её целиком уже в implementation:
function shit(a,b:integer):string;
begin
shit:=''+a+b;
end;
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
17.10.2010, 15:37
|
#7
|
Знающий
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений (для 32 пользователей)
|
Ответ: Вопросы
Все разобрался уже
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
|
(Offline)
|
|
17.10.2010, 15:53
|
#8
|
Знающий
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений (для 32 пользователей)
|
Ответ: Вопросы
Вот в чем косяк
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
|
(Offline)
|
|
17.10.2010, 16:57
|
#9
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Вопросы
списки параметров отличаются. сделай одинаковые
|
(Offline)
|
|
17.10.2010, 17:07
|
#10
|
Знающий
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений (для 32 пользователей)
|
Ответ: Вопросы
Я вроде все правильно сделал
unit progame;
interface
{Описание функций и процедур }
function Collision:boolean;//Процедура проверки столкновения
procedure cls(cls: integer); //Процедура отчистки экрана
implementation
{Сама реализация данных функций и процедур } function Collision:boolean;//Процедура проверки столкновения const//Обьявляем константы, это неизменяеммые значения mapsize=9;//размер карты, но так как массив карты начинается с нуля то карта равна mapsize+1 var rs:boolean; zx,zy,x,y,px,py:integer; map:array [0..mapsize,0..mapsize] of integer;//массив карты begin rs:=false; for x:=0 to mapsize do//создаем цикл for y:=0 to mapsize do//создаем ещё один цикл begin zx:=x*32;zy:=y*32; if (map[x,y]=1)and not rs then if (px+32>zx)and(px<zx+32)and(py+32>zy)and(py<zy+32) then rs:=true;//Проверяем столкновение end; Collision:=rs; end;
procedure cls;//Процедура отчистки экрана begin setcolor(255,255,255);//Устанавливаем белый цвет FillRect(0, 0, GetWidth, GetHeight);//рисуем закрашенный прямоугольник на весь экран setcolor(0,0,0);//возвращаем цвет end;
initialization
{Какая-то начальная инициализация переменных при загрузке модуля }
end.
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
|
(Offline)
|
|
17.10.2010, 18:18
|
#11
|
Знающий
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений (для 32 пользователей)
|
Ответ: Вопросы
Ппц теперь совсем белый экран посмотрите исходник пожалуста
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
|
(Offline)
|
|
17.10.2010, 20:23
|
#12
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Вопросы
Ругается на строку объявления константы. Может выкинуть эту константу вообще?
|
(Offline)
|
|
18.10.2010, 19:32
|
#13
|
Знающий
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений (для 32 пользователей)
|
Ответ: Вопросы
Это размеры карты без нее вобще даже не компилируется
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
|
(Offline)
|
|
18.10.2010, 20:42
|
#14
|
AnyKey`щик
Регистрация: 28.07.2010
Сообщений: 3
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопросы
Const Nr1 : array [1..60] of string = ('100000','010000','110000','001000', '101000','011000','111000','000100', '100100','010100','110100','001100', '101100','011100','111100','000010', '100010','010010','110010','001010', '101010','011010','111010','000110', '100110','010110','110110','001110', '101110','011110','111110','000001', '100001','010001','110001','001001', '101001','011001','111001','000101', '100101','010101','110101','001101', '101101','011101','111101','000011', '100011','010011','110011','001011', '101011','011011','111011','000111', '100111','010111','110111','001111');
По-всякому пробовал - на делфи норм, а МР не компилит...
|
(Offline)
|
|
19.10.2010, 15:22
|
#15
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Вопросы
Лучше сохрани эти значения в файле и при старте программы всё прочитай из файла и заполни так массив. И константами в MP лучше не пользоваться. Используй обычные переменные.
И в описании процедура CLS должна принимать какое-то целое число, а реально она ничего не принимает. Или исправь описание или саму процедуру.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:16.
|