Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2008, 14:36   #1
AngelOfDeath
Delphi/C++/Asm
Форумчанин Подтвердите свой е-майл
 
Аватар для AngelOfDeath
 
Регистрация: 28.03.2008
Сообщений: 358
Вопрос Помогите ограничить уровень

Получилось построить уровень для игры
Но не могу понять как сделать чтоб персонаж не выходил за границы уровня
В общем в игре главный персонаж 2
Места куда можно ходить это 1 (почему то ноли не пишет)
А стены это 1
Немного глупо, ноя просто строил уровень))
И ещё не делал игру
Вопрос понятен как сделать так чтоб персонаж не выходил за уровень
Заранее спс
Вот исходник и ехе:
Вложения
Тип файла: rar MyGameLevel.rar (6.3 Кб, 13 просмотров)
Тип файла: rar exe.rar (167.4 Кб, 17 просмотров)
AngelOfDeath вне форума Ответить с цитированием
Старый 03.10.2008, 15:04   #2
AngelOfDeath
Delphi/C++/Asm
Форумчанин Подтвердите свой е-майл
 
Аватар для AngelOfDeath
 
Регистрация: 28.03.2008
Сообщений: 358
По умолчанию

Всё нашёл ответ:

Код:
procedure TForm1.GoDown;
begin
 if mapXY[charX,CharY+1]=1 then
exit
else
begin
if chary+1<=10 then
begin
CharOldX:=charX;
CharOldY:=CharY;
mapXY[charX, CharY+1]:=2;
mapXY[CharOldX, CharOldY]:=0;
end;
end;
end;

procedure TForm1.GoLeft;
begin
if mapXY[charX-1,CharY]=1 then
exit
else
begin
if charX-1>=0 then
begin
CharOldX:=charX;
CharOldY:=CharY;
mapXY[charX-1, CharY]:=2;
mapXY[CharOldX, CharOldY]:=0;
end;
end;
end;

procedure TForm1.GoRight;
begin
 if (mapXY[charX+1,CharY]=1) then


exit
else
begin
if charX+1<=10 then
begin
CharOldX:=charX;
CharOldY:=CharY;
mapXY[charX+1, CharY]:=2;
mapXY[CharOldX, CharOldY]:=0;
end;
end;
end;

procedure TForm1.GoUp;
begin
 if mapXY[charX,CharY-1]=1 then
exit
else
begin
if chary-1>=0 then
begin
CharOldX:=charX;
CharOldY:=CharY;
mapXY[charX, CharY-1]:=2;
mapXY[CharOldX, CharOldY]:=0;
end;
end;
end;
Цитата:
OFF: Ответ оказался в вашей подписи
Я когда придумал ответ, о том же подумал

p.s. Модераторы можете закрывать тему

Последний раз редактировалось AngelOfDeath; 03.10.2008 в 15:31.
AngelOfDeath вне форума Ответить с цитированием
Старый 03.10.2008, 15:11   #3
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

OFF: Ответ оказался в вашей подписи

Со временем уровень у вас станет болше экрана, тогда заранее советую ввести две переменные которые будут хранить границы экрана, при перемещении персонажа эти границы аналогично будут изменяться, а динамичность сравнения отвяжет вас от статических значений типа charX+1<=10.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 05.10.2008, 07:25   #4
AngelOfDeath
Delphi/C++/Asm
Форумчанин Подтвердите свой е-майл
 
Аватар для AngelOfDeath
 
Регистрация: 28.03.2008
Сообщений: 358
По умолчанию

Ну это пока в будущем
А щас простенький Packman
AngelOfDeath вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по паскалю. 3 уровень. Сергей1 Помощь студентам 4 20.11.2007 11:20
Задача по Паскалю. 1 уровень сложности. Сергей1 Помощь студентам 2 19.11.2007 22:45
Текущий уровень звука ! XuMuK Win Api 3 11.10.2007 10:25
Уровень значимости Assembler'а сегодня [Kaiser] Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 15 07.09.2007 09:05
Как ограничить ввод? alsq Общие вопросы Delphi 8 24.03.2007 14:30