forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Вопросы (http://forum.boolean.name/showthread.php?t=13507)

psih1 16.10.2010 14:46

Вопросы
 
вот делаю чтото на подобие painta сделал рисование кистью а как сделать рисование точкой пытался посмотрите что не так
PHP код:

program paint;
const
  
SPEED 1// Скорость движения
var
  
i    Integer;
  
xInteger// позиция
  
key  Integer;
  
begin
// Инициализация
  
x   := 32// позиция  по X
  
y   := 32// и по Y соответственно :)
  
i     :=2;// толшина
// Подготовка поля вывода
  
SetColor(255255,255);
  
FillRect(00GetWidthGetHeight);
  
  
// Отрисовка и обработка ввода
  
repeat
  
// Получаем код зажатой клавиши
    
key := GetKeyPressed;
  
// Вот что бывает, когда нет возможности использовать case ;)
    
if key KE_KEY6 then  x   := SPEED;
    if 
key KE_KEY8 then  y  := SPEED;
    if 
key KE_KEY4 then x   := SPEED;
    if 
key KE_KEY2 then y   := ySPEED;
    if 
key KE_KEY5 then 
    begin
    setColor
(125125125); 
    
FillRect(,yi,);
  
end;
  
// контролируем выход за границы экрана
    
if x0 then x := 0;
    if 
0 then y := 0;
    if 
GetWidth  i then x:= GetWidth  i;
    if 
GetHeight i then y := GetHeight i;
  
// Рисуем новой позиции
setColor(000); 
fillRect(x,yii); 
  
// Вывод этого безобразия на экран и задержка на 20 мс  
    
repaint;  
    
delay(20);
  
until GetKeyClicked KE_KEY0// Закрыть приложение при нажатии "0"
end


cherepets 16.10.2010 14:52

Ответ: Вопросы
 
не увидел проблемы. у тебя i - размер кисти. (кстати, в художественном магазине рядом с моим универом кисти почему-то не квадратные)

поставь его 1 и будет рисование точкой.

psih1 16.10.2010 14:59

Ответ: Вопросы
 
да не я имею виду жмеш на 5 и точка отрисовывается а у меня получается я рисую и тут же она стирается

cherepets 16.10.2010 19:13

Ответ: Вопросы
 
ну, например, делай скрин и дальше рисуй на нем
imagefromcanvas(x,y,width,height: integer):image;

вместо "подготовки поля..."

psih1 17.10.2010 14:34

Ответ: Вопросы
 
Как сделать описание процедуры для модуля
PHP код:

procedure cls;//Процедура отчистки экрана
begin
setcolor
(255,255,255);//Устанавливаем белый цвет
FillRect(00GetWidthGetHeight);//рисуем закрашенный прямоугольник на весь экран
setcolor(0,0,0);//возвращаем цвет
end


cherepets 17.10.2010 15:22

Ответ: Вопросы
 
в interface ты пишешь только название и что входит.
например:

function shit(a,b:integer):string;

а потом пишешь её целиком уже в implementation:

function shit(a,b:integer):string;
begin
shit:=''+a+b;
end;

psih1 17.10.2010 15:37

Ответ: Вопросы
 
Все разобрался уже

psih1 17.10.2010 15:53

Ответ: Вопросы
 
Вложений: 1
Вот в чем косяк

cherepets 17.10.2010 16:57

Ответ: Вопросы
 
списки параметров отличаются. сделай одинаковые

psih1 17.10.2010 17:07

Ответ: Вопросы
 
Я вроде все правильно сделал
PHP код:

unit progame;

interface

    {
Описание функций и процедур }

function 
Collision:boolean;//Процедура проверки столкновения

procedure cls(clsinteger); //Процедура отчистки экрана



implementation

    
{Сама реализация данных функций и процедур }
function 
Collision:boolean;//Процедура проверки столкновения
const//Обьявляем константы, это неизменяеммые значения
mapsize=9;//размер карты, но так как массив карты начинается с нуля то карта равна mapsize+1
var
rs:boolean;
zx,zy,x,y,px,py:integer;
map:array [0..mapsize,0..mapsizeof 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+32then rs:=true;//Проверяем столкновение
end;
Collision:=rs;
end;



procedure cls;//Процедура отчистки экрана
begin
setcolor
(255,255,255);//Устанавливаем белый цвет
FillRect(00GetWidthGetHeight);//рисуем закрашенный прямоугольник на весь экран
setcolor(0,0,0);//возвращаем цвет
end;




initialization

    
{Какая-то начальная инициализация переменных при загрузке модуля }

end


psih1 17.10.2010 18:18

Ответ: Вопросы
 
Вложений: 1
Ппц теперь совсем белый экран посмотрите исходник пожалуста

odd 17.10.2010 20:23

Ответ: Вопросы
 
Ругается на строку объявления константы. Может выкинуть эту константу вообще?

psih1 18.10.2010 19:32

Ответ: Вопросы
 
Это размеры карты без нее вобще даже не компилируется

RoboMiha 18.10.2010 20:42

Ответ: Вопросы
 
PHP код:

Const
Nr1 : array [1..60of 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'); 

По-всякому пробовал - на делфи норм, а МР не компилит... :dontknow:

odd 19.10.2010 15:22

Ответ: Вопросы
 
Лучше сохрани эти значения в файле и при старте программы всё прочитай из файла и заполни так массив. И константами в MP лучше не пользоваться. Используй обычные переменные.

И в описании процедура CLS должна принимать какое-то целое число, а реально она ничего не принимает. Или исправь описание или саму процедуру.


Часовой пояс GMT +4, время: 22:36.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot