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

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

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

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

Ответ
 
Опции темы
Старый 26.07.2007, 15:17   #1
Черный Лорд
Оператор ЭВМ
 
Регистрация: 26.07.2007
Сообщений: 29
Написано 0 полезных сообщений
(для 0 пользователей)
Смех Клетки!

Как нарисовать клетки типа таких которые в игре сапере сапере. А так же сделать курсор который будет переходить с одной клетки на другую.
(Offline)
 
Ответить с цитированием
Старый 26.07.2007, 23:44   #2
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Re: Клетки!

Можно так:
program NewProject;
var
x,y:integer;
ix,iy,oix,oiy:integer;
key:integer;

procedure drawbutton(x,y,w,h:integer;pressed:boolean);
begin
setcolor(128,128,128);
fillrect(x,y,w,h);
if pressed then
begin
setcolor(0,0,0);
drawline(x,y,x+w,y);
drawline(x,y,x,y+h);
setcolor(255,255,255);
drawline(x+w,y+h,x+w,y);
drawline(x+w,y+h,x,y+h);
end;

if not pressed then
begin
setcolor(255,255,255);
drawline(x,y,x+w,y);
drawline(x,y,x,y+h);
setcolor(0,0,0);
drawline(x+w,y+h,x+w,y);
drawline(x+w,y+h,x,y+h);
end;
end;


begin
iy:=1;
ix:=1;
oix:=1;
oiy:=1;
for y:= 1 to 10 do
for x:= 1 to 10 do
begin
drawbutton(x*10,y*10,9,9,false);
end;
repaint;
repeat

key:=getkeyclicked;
if key=ke_key6 then ix:=ix+1;
if key=ke_key4 then ix:=ix-1;
if key=ke_key2 then iy:=iy-1;
if key=ke_key8 then iy:=iy+1;
if key<>ke_none then
begin
drawbutton(ix*10,iy*10,9,9,true);
drawbutton(oix*10,oiy*10,9,9,false);
oix:=ix;
oiy:=iy;
repaint;
end;
delay(200);
key:=ke_none;
until key=ke_key0;

repaint;	
delay(20000);
end.
(Offline)
 
Ответить с цитированием
Старый 27.07.2007, 18:58   #3
Черный Лорд
Оператор ЭВМ
 
Регистрация: 26.07.2007
Сообщений: 29
Написано 0 полезных сообщений
(для 0 пользователей)
Смех Re: Клетки!

мне нужно создания клеток не в самой игре и такого курсора, а также
напиши как изменять рисунок ее ( этой клетки). За ранее благодарю.
(Offline)
 
Ответить с цитированием
Старый 28.07.2007, 02:01   #4
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Re: Клетки!

Я не совсем понял, ты хочешь рисовать клетки динамически или выводить готовые изображеня?
(Offline)
 
Ответить с цитированием
Старый 28.07.2007, 10:47   #5
Черный Лорд
Оператор ЭВМ
 
Регистрация: 26.07.2007
Сообщений: 29
Написано 0 полезных сообщений
(для 0 пользователей)
Радость Re: Клетки!

Когда заходишь в телефоного сапера то там уже нарисованы клетки и по ним можно передвигать курсор. Я понял как он работает. Ты мне напеши мне код, чтобы эти клетки были нарисованы и код, чтобы менять на этих кнопках рисунки.
(Offline)
 
Ответить с цитированием
Старый 28.07.2007, 16:41   #6
IVenoMI
Знающий
 
Регистрация: 10.08.2006
Сообщений: 254
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Клетки!

Ничего не понятно, сформуоируй просьбу более точно...
(Offline)
 
Ответить с цитированием
Старый 29.07.2007, 10:22   #7
Черный Лорд
Оператор ЭВМ
 
Регистрация: 26.07.2007
Сообщений: 29
Написано 0 полезных сообщений
(для 0 пользователей)
Смех Re: Клетки!

Как нарисовать клетки (такиеже как в сапере). А в самой игре если ты нажал например на 5 клетку по горизонтале и вторую по вертикале, то загружается каойнибудь рисунок.
(Offline)
 
Ответить с цитированием
Старый 30.07.2007, 00:10   #8
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Re: Клетки!

Если рисунок должен выводиться на клетку, то можно так:
program NewProject;
var
x,y:integer;
ix,iy,oix,oiy:integer;
key:integer;

procedure drawbutton(x,y,w,h:integer;pressed:boolean);
begin
setcolor(128,128,128);
fillrect(x,y,w,h);
if pressed then
begin
setcolor(0,0,0);
drawline(x,y,x+w,y);
drawline(x,y,x,y+h);
setcolor(255,255,255);
drawline(x+w,y+h,x+w,y);
drawline(x+w,y+h,x,y+h);
end;

if not pressed then
begin
setcolor(255,255,255);
drawline(x,y,x+w,y);
drawline(x,y,x,y+h);
setcolor(0,0,0);
drawline(x+w,y+h,x+w,y);
drawline(x+w,y+h,x,y+h);
end;
end;


begin
iy:=1;
ix:=1;
oix:=1;
oiy:=1;
for y:= 1 to 10 do
for x:= 1 to 10 do
begin
drawbutton(x*10,y*10,9,9,false);
end;
repaint;
repeat

key:=getkeyclicked;
if key=ke_key6 then ix:=ix+1;
if key=ke_key4 then ix:=ix-1;
if key=ke_key2 then iy:=iy-1;
if key=ke_key8 then iy:=iy+1;

if key<>ke_none then
begin
drawbutton(ix*10,iy*10,9,9,true);
drawbutton(oix*10,oiy*10,9,9,false);
oix:=ix;
oiy:=iy;
repaint;
end;

if key=ke_key5 then
begin
drawimage(loadimage('/mine.png'),ix*10+1,iy*10+1);
repaint;
end;

delay(200);
key:=ke_none;
until key=ke_key0;

repaint;	
delay(20000);
end.
(Offline)
 
Ответить с цитированием
Старый 30.07.2007, 10:38   #9
fads
Оператор ЭВМ
 
Регистрация: 08.03.2007
Сообщений: 20
Написано одно полезное сообщение
Re: Клетки!

А нельзя представить поле с клетками как двумерный массив? Я думаю так будет проще
(Offline)
 
Ответить с цитированием
Старый 30.07.2007, 13:39   #10
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Re: Клетки!

Можно, а зачем? Если каждая клетка имеет какие-то свойства, то так и надо, а если просто выводить клетки то проще по координатам, как в моем коде.
(Offline)
 
Ответить с цитированием
Старый 01.08.2007, 10:42   #11
Черный Лорд
Оператор ЭВМ
 
Регистрация: 26.07.2007
Сообщений: 29
Написано 0 полезных сообщений
(для 0 пользователей)
Смех Re: Клетки!

Я наверное плохо объясняю. Ладно объясню более подробно.
Заходим в игру и видим уже нарисованное поле. Ну например 10 на 10, то есть 100 клеток. В верхнем левом углу находится например красный квадрат(это будет наш курсор) нажимаем кнопку в право и он передвигается на следующею клетку которая находится с права. Нажимаем предположим 5 и высвечивается окно в котором нас просят выбрать картинку из предложенных. И та картинка которую мы выбрали появляться на том месте где у нас курсор. Вот и все чего я хочу. Надеюсь так понятнее.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
id клетки G.A.D 2D-программирование 38 29.01.2010 04:10
столкновение со стенкой на уровне в виде клетки aureli0 Основной форум 1 19.04.2007 16:09


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


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