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 должна принимать какое-то целое число, а реально она ничего не принимает. Или исправь описание или саму процедуру.

psih1 19.10.2010 15:29

Ответ: Вопросы
 
а причем тут делфи

psih1 22.10.2010 09:45

Ответ: Вопросы
 
Как сделать обект который появляется раз ну например в 5минут на карте?

JACUK 22.10.2010 09:58

Ответ: Вопросы
 
Если карта в масиве, то попробуй в отделльнй поток вынести таймер на 5 мин. и после их прошествия меняй соответстсвующую координату на цыфру, что отвечает за тот обьект ивсе это помести в цыкл отрисовки карты!

psih1 22.10.2010 11:51

Ответ: Вопросы
 
а как сделать отдельный поток?

JACUK 22.10.2010 12:01

Ответ: Вопросы
 
Lib_thread тебе в помощь!!!

psih1 23.10.2010 17:25

Ответ: Вопросы
 
Вложений: 1
Начал делать изометрическую графику как сдеть чтоб коробль двигался под 60 градусов

cherepets 24.10.2010 21:18

Ответ: Вопросы
 
x:=x-2;
y:=y-1;
(по направлению как на картинке)

а вообще это угол не 60 градусов, а ~64

psih1 26.10.2010 07:48

Ответ: Вопросы
 
а под каким углом должна быть расположена изометрическая графика?120 и 60?

Reks888 26.10.2010 10:37

Ответ: Вопросы
 
На blitzetc.blitzmax.ru была статья про создание изометрической игры в Blitzmax.(Blitzmax->Статьи). Про Blitzmax там ничего нет, только формулы прорисовки изометрических картинок.
Прямую ссылку не могу дать т.к. не работает у них сервер

psih1 26.10.2010 16:45

Ответ: Вопросы
 
Спасибо

psih1 28.10.2010 21:21

Ответ: Вопросы
 
Как проверить столкновение курсора и обекта?дайте пожалуйсто теорию

baton4ik 30.10.2010 13:24

Ответ: Вопросы
 
Курсор - это картинка. Проверяй пересечение по координатам.

psih1 30.10.2010 19:29

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

JACUK 30.10.2010 19:36

Ответ: Вопросы
 
(x+Im_Width) <= x1 then...

psih1 31.10.2010 15:17

Ответ: Вопросы
 
Так?чет не понимаю
PHP код:

procedure DrawKursor;{Прорисовка курсора}
var 
li integer;
begin
RedrawMap
(a,b);
DrawImage(kursor.img,kursor.x,kursor.y);
if 
kursor.x+getImageWidth and kursor.y+getImageHeight  <= posX and posY  then
begin
DrawImage
(kursor1.img,kursor.x,kursor.y);
delay(50);
repaint;
end;
delay(50);
repaint;
end


JACUK 31.10.2010 15:46

Ответ: Вопросы
 
у меня чёт опера из телефона глючит, а с компа не скоро зайду! но попробуй вместо and в if поставитьь or

psih1 06.11.2010 19:48

Ответ: Вопросы
 
как сделать нижний софт бар?? координаты

cherepets 06.11.2010 22:45

Ответ: Вопросы
 
??
убрать midp2.0 fullscreen?

psih1 07.11.2010 09:24

Ответ: Вопросы
 
да не я имею ввиду графически

GRAY_WOLF 07.11.2010 10:00

Ответ: Вопросы
 
В канвасе не работают команды формы... Выход один рисовать самому и отлавливать нажатия кнопок.

psih1 07.11.2010 10:12

Ответ: Вопросы
 
все я сам справился:-D
PHP код:

fillRect(0,getHeight-19,getWidth,19); 


im_zorg 08.11.2010 20:00

Ответ: Вопросы
 
псих го icq я те скину свой паинт от команды сайта mpc там все инструменты + для линий кружков пунктир/сплошная и ещё есть сохранение в image того, что нарисовал, а это значит, сохранение/загрузку моно добавить


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

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