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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2009, 17:28   #61
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Спасибо! Я в игре реализовал управление следующим образом:ты тыкаешь на танк левой кнопой мыши и он выделяется. Управляешь им на стрелочках. Правой снимаешь выделение. Выделять можно все танки =)!
Осталось написать АИ и сделать менюшки!
Shadow_1329 вне форума Ответить с цитированием
Старый 30.05.2009, 17:33   #62
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Вот я сделал так:
Код:
function Collision(c:char): boolean;// проверка столкновения танка с непроходимой ячейкой
begin
For i:=1 to MaxRusTanks do
  Result:=False;
  if ((map[Rt[i].Ux+50,Rt[i].Uy+50]='c') or (map[Rt[i].Ux,Rt[i].Uy]='c')) then // это я и сам не понимаю
     Result:=True;
end;
И передвижение
Код:
for i:=1 to MaxRusTanks do
 begin
 if Rt[i].Up=true and ((Collision('1') or (Collision('3')))) then // это если код ячейки равен 1 или 3 то можно проезжать
  begin
  Rt[i].Utexture.LoadFromFile('../Images/Tanks/Russian/RussianTankUp1.bmp');
  Rt[i].Uy:=Rt[i].Uy-1;
  end;
 end;
Но после этого он у меня вообще вверх не едет!

Последний раз редактировалось Beermonza; 02.06.2009 в 16:35.
Shadow_1329 вне форума Ответить с цитированием
Старый 30.05.2009, 17:47   #63
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Rt[i].Utexture.LoadFromFile('../Images/Tanks/Russian/RussianTankUp1.bmp');
Сколько можно повторять?Операции загрузки должны быть только в FormCreate.
Может сейчас у тебя все и работает, но когда код будет сложнее, врагов больше а спрайтов сотни то ты потонешь в ошибках, тормозах и проблемах с памятью. Из-за постоянной загрузки во время игры доступной памяти становится меньше и меньше.Через определенное время игра вылетает.

Цитата:
Но после этого он у меня вообще вверх не едет!
Научись делать комментарии (//).Может тебе код и понятен, но когда возникают вопросы и ошибки другие его могут и не понять.
Вадим Буренков вне форума Ответить с цитированием
Старый 30.05.2009, 17:55   #64
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Я исправил посмотри вверху
Shadow_1329 вне форума Ответить с цитированием
Старый 31.05.2009, 14:37   #65
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

А можно создать звуковую переменную например Grass:Tbitmap только не
Tbitmap а звук?
Shadow_1329 вне форума Ответить с цитированием
Старый 31.05.2009, 14:52   #66
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Что конкретно тебе нужно? Ты хочешь воспроизводить звук при взаимодействии с определенной поверхностью?
Вадим Буренков вне форума Ответить с цитированием
Старый 31.05.2009, 14:58   #67
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Ну, да, только я не хочу загружать из файла во время игра а сразу хочу его загрузить в переменную и потом ее воспроизводить, а то при загрузки во время игры тормозит сильно(испытал уже это)! С моментом воспроизведения все сделал, вот только из файла воспроизводить не хочу!
Shadow_1329 вне форума Ответить с цитированием
Старый 31.05.2009, 15:05   #68
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Посмотри свою-же тему про воспроизведение звуков,мой пост под номером 20. Там понятно обьяснено и пример есть.
Вадим Буренков вне форума Ответить с цитированием
Старый 31.05.2009, 16:10   #69
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Спасибо! Сейчас попробую!
Shadow_1329 вне форума Ответить с цитированием
Старый 02.06.2009, 13:20   #70
Shadow_1329
Форумчанин
 
Аватар для Shadow_1329
 
Регистрация: 23.02.2009
Сообщений: 237
По умолчанию

Код:
type RusTanks = packed record
Ux:integer;
Uy:integer;
UWidth:integer;
Uheight:integer;
Utexture:Tbitmap;
Selected:boolean;
Up,Down,Left,Right:boolean;
UBorn:boolean;
end;

var
  Form1: TForm1;
  map:array[1..32,1..24] of char;// скелет карты
  mp:array[1..32,1..24] of MPBit;// массив текстур карты
  gx,gy,x,y,sx,sy:integer;//положение камеры по х и у, переменные для мыши, скорость по х и у
  buf:Tbitmap;// буфер
  m,n,i,k:integer;// переменные для масивов
  Grass:TBitmap;// текстура травы(под штаб)
  MaxRusTanks:integer;//Текущее кол-во танков у русских
  MaxGermTanks:integer;//Текущее кол-во танков у немцев
  RT:array[1..20] of RusTanks;//Массив танков русских
  GT:array[1..20] of GermTanks;//Массив танков немцев
  Ugo:boolean;\\ ходить или не ходить


for i:=1 to MaxRusTanks do
if Rt[i].Selected = true then
if (map[round(Rt[i].Ux+sx)div 50,round(Rt[i].Uy+sy)div 50]='2')or
     (map[round(Rt[i].Ux+sx)div 50,round(Rt[i].Uy+sy+50)div 50]='2')or
     (map[round(Rt[i].Ux+sx+50)div 50,round(Rt[i].Uy+sy)div 50]='2')or
     (map[round(Rt[i].Ux+sx+50)div 50,round(Rt[i].Uy+sy+50)div 50]='2')then
     begin
    sx:=0;
    sy:=0;
    Ugo:=false;
    end;
Вот что у меня за фигня! Танк обрабатывает только для клеток с деревьями('2') на расстоянии Х+50 и У+50 от каждого дерева. Разобаться не могу с этим! Гирина и длина танка 50х50, скорость 5,

Последний раз редактировалось Beermonza; 02.06.2009 в 16:36.
Shadow_1329 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создаю "тестирующую систему" для проверки задач. Программисты, нужна ваша помощь! alexfmf Помощь студентам 12 30.04.2009 20:19
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49