Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 16.10.2010, 14:46   #1
psih1
Знающий
 
Аватар для psih1
 
Регистрация: 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
cherepets
Бывалый
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Вопросы

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

поставь его 1 и будет рисование точкой.
(Offline)
 
Ответить с цитированием
Старый 16.10.2010, 14:59   #3
psih1
Знающий
 
Аватар для psih1
 
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений
(для 32 пользователей)
Ответ: Вопросы

да не я имею виду жмеш на 5 и точка отрисовывается а у меня получается я рисую и тут же она стирается
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
(Offline)
 
Ответить с цитированием
Старый 16.10.2010, 19:13   #4
cherepets
Бывалый
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Вопросы

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

вместо "подготовки поля..."
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
psih1 (16.10.2010)
Старый 17.10.2010, 14:34   #5
psih1
Знающий
 
Аватар для psih1
 
Регистрация: 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
cherepets
Бывалый
 
Регистрация: 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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
psih1 (17.10.2010)
Старый 17.10.2010, 15:37   #7
psih1
Знающий
 
Аватар для psih1
 
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений
(для 32 пользователей)
Ответ: Вопросы

Все разобрался уже
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
(Offline)
 
Ответить с цитированием
Старый 17.10.2010, 15:53   #8
psih1
Знающий
 
Аватар для psih1
 
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений
(для 32 пользователей)
Ответ: Вопросы

Вот в чем косяк
Изображения
Тип файла: bmp Безымянный.bmp (286.0 Кб, 896 просмотров)
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
(Offline)
 
Ответить с цитированием
Старый 17.10.2010, 16:57   #9
cherepets
Бывалый
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Вопросы

списки параметров отличаются. сделай одинаковые
(Offline)
 
Ответить с цитированием
Старый 17.10.2010, 17:07   #10
psih1
Знающий
 
Аватар для psih1
 
Регистрация: 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
psih1
Знающий
 
Аватар для psih1
 
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений
(для 32 пользователей)
Ответ: Вопросы

Ппц теперь совсем белый экран посмотрите исходник пожалуста
Вложения
Тип файла: zip Архив ZIP - WinRAR (2).zip (19.4 Кб, 606 просмотров)
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
(Offline)
 
Ответить с цитированием
Старый 17.10.2010, 20:23   #12
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Вопросы

Ругается на строку объявления константы. Может выкинуть эту константу вообще?
(Offline)
 
Ответить с цитированием
Старый 18.10.2010, 19:32   #13
psih1
Знающий
 
Аватар для psih1
 
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений
(для 32 пользователей)
Ответ: Вопросы

Это размеры карты без нее вобще даже не компилируется
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
(Offline)
 
Ответить с цитированием
Старый 18.10.2010, 20:42   #14
RoboMiha
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
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Вопросы

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

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


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com