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

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

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

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

Ответ
 
Опции темы
Старый 17.04.2007, 23:05   #1
aureli0
ПроЭктировщик
 
Регистрация: 19.03.2007
Сообщений: 134
Написано 10 полезных сообщений
(для 20 пользователей)
столкновение со стенкой на уровне в виде клетки

как правильно проверять колизию например для такого случая
есть
герой и уроыень в виде клеток

type hero_type = record
up,down,right,left,fire,death:boolean;// виртуальная клавиатура героя
xs,ys:integer;
end;

var
hero:array [1..6] of hero_type;
num:integer //порядковый номер героя

level:array[0..19,0..19] of string;
XL,YL:integer;
shag_setki:integer;
...
begin

num:=1;
repeat
уровень грузим из текстового файла в ресурсе
111
101
000
единица - это стенка
for xl:=1 to 3 do
for yl:=1 to 3 do
begin
lf level [xl,yl]>0 then выводим стеку в положение xl*shag_setki,yl_shag_setki
end
при нажатии клавиши вверх проверяем есть ли стенка по направлению движения героя num=1,если нету то даем добро на движение

if level[hero[num].xs,hero[num].ys]<>1 then hero[num].up:=true; ***


until false

end.
Паскаль ругается на ***:
Как павильно зделать в данном случае контроль героя на столкновение со стенкой?
(Offline)
 
Ответить с цитированием
Старый 19.04.2007, 16:09   #2
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Re: столкновение со стенкой на уровне в виде клетки

я както давно писал подобную фигню на Delphi
попробуй так:
const
maph=10;//высота карты
mapw=10;//ширина карты
var
map:array[1..maph]of array[1..mapw]of boolean;
px,py:integer//текущие координаты
//карта. если true то можно стать, если false, то нельзя

procedure draw;
begin
//рисуем героя в PXY
end;

procedure initmap
var xx,yy:integer;
begin
for yy:=1 to maph do
for xx:=1 to mapw do
begin
if map[xx,yy]=false then рисуем_стену;
end;
end;


//процедуры движения
procedure up;
begin
py:=py-1;
if map[py][px]=true then //стать можно
begin
draw;
end else
py:=py+1;//стать нельзя , возвращаем координату наместо
end;

//аналогично для каждой команды
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
id клетки G.A.D 2D-программирование 38 29.01.2010 04:10
Текстовые сообщения интерфейса - в виде массива строк? Skythrone Основной форум 6 26.09.2008 00:18
Клетки! Черный Лорд Основной форум 10 01.08.2007 10:42
Как вывести чодержание текстового файла в виде, например карты??? aureli0 Основной форум 2 04.04.2007 01:40
Столкновение ЛысыЙ_Чук-Иванчук 3D-программирование 7 13.10.2006 21:11


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


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