Форум: "Игры";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
ВнизСразу несколько вопросов по созданию игр. Найти похожие ветки
← →
Wish © (2004-10-30 14:08) [0]Здравствуйте, я создаю игру с видом сверху как в GTA 1 или 2. Возникло несколько вопросов:
1. У меня есть переменные yspeed и xspeed для кадой пули, которые отпределяют куда полетит пуля, как мне найти эти величины из позиции игрока(x и y) и положения мышки?
2. Понимаю что вопрос глупый, но как преобразовать double в integer и наоборот.
3. Можно ли использовать в DelphiX сразу два TDXInput?
Прошу вас с пониманием отнестить ко мне с моими вопросами, я в создании игр на Delphi новичек, только прочитал пару статей и знаю основы, помогите пожалуйста.
← →
Wish © (2004-10-30 14:32) [1]И еще вопросик, как крутить спрайти, ответьте пожалуйста.
← →
П7 (2004-10-30 14:39) [2]1. При помощи тригонометрии. Синусов, там, и косинусов. Скачай с сайта http://code.rpro.ru конкурсные исходники игры ПараТрупов (: Там всё это есть
2. double->integer - можешь юзать обычный round, округление, integer->double по идеи должен сам конвертнуться, но можно и так double( integer_var )
3. А зачем тебе это нужно?
И ещё, уверен, что основы ты не знаешь, раз присутствуют вопросы типа 3. Понимаю сам таким был, а кое где и есть. (:
← →
Wish © (2004-10-30 14:46) [3]
> 3. А зачем тебе это нужно?
Ну просто я использую и мышку и клаву, когда я пишу isup то работает и клава и мышка, а мне нужно чтобы работала только клава а мышка только на действие isbutton1
← →
Wish © (2004-10-30 14:46) [4]ЗЫ. Спасиба огромное за ответы, буду пробывать.
← →
Wish © (2004-10-30 16:01) [5]Я не смог выдрать решения вопроса 1 из примеров, там ваще на DelphiX не ничего, можеш мне показать?
← →
Поручик © (2004-10-30 16:39) [6]А ты сам сообрази, теорема Пифагора, всякие правила, типа катет равен произведению гипотенузы на cos прилежащего или sin противолежащего угла и тд.
← →
Wish © (2004-10-30 16:50) [7]А если я еще не проходил эту теорему? ^_^
← →
wiz © (2004-10-30 16:59) [8]2 Wish [7]: тогда зачем в анкете писать "Образование: высшее" ???
← →
Wish © (2004-10-30 17:07) [9]опа... случайно поставил... =)
ну ответьте пожалйста, у меня инета кончился почти =(, мне нужно щас узнать а потом в офлайне все реальзововать.
← →
Wish © (2004-10-30 18:13) [10]Отзовитесь пожалуйста, у меня пол мега на счету осталось!!!
← →
Поручик © (2004-10-30 19:51) [11]Иди, у друзей поищи учебник геометрии за 8 класс
← →
Wish © (2004-10-30 19:55) [12]Я щас в 8 классе. Нужна посмотреть...
← →
Wish © (2004-10-30 21:27) [13]Черт, нифига не понятно, подскажите пожалутса!!!!
← →
Servelat © (2004-10-30 22:40) [14]Объясняю :).
Из подобия треугольников:
dx/dy=(x0-x)/(y0-y)
x,y - координаты, откуда выстрел, x0, y0 - координаты мыша.
Также тебе дана скорость пули (например 5 пикселей, то есть на сколько будет сдвигаться пуля за каждый промежуток времени, между действиями: PulaX:=PulaX+dx; PulaY:=PulaY+dy). Чем больше скорость, тем быстрее летит пуля (это может зависеть от типа ружья или просто быть константой). Дак вот, если скорость пули speed, то:
dx*dx+dy*dy=speed*speed
(теорема Пифагора)
Получается 2 уравнения с двумя неизвестными. Системы уравнений вас решать уже научили, надеюсь?
← →
Wish © (2004-10-31 19:26) [15]2 Servelat
Спасиба, буду думать.
← →
Wish © (2004-10-31 19:42) [16]А как программно решить систему уровнений?
← →
Поручик © (2004-10-31 19:46) [17]Можно в AutoCad"е
← →
wiz © (2004-10-31 20:41) [18]2 Поручик: MatLab рулит!!!! ну или в крайнем случае - Excel... :)))))))
← →
Wish © (2004-10-31 21:11) [19]Блин, как выполнять действия с Integer и Double, напишите пример, мне ответили double(). Только ничего не понятно, все равно, можите пример показать?
← →
Kind (2004-10-31 21:29) [20]Учиться на примерах полезно, но надо ещё и настольное руководство иметь, для начала просто по Delphi.
var
a,b: double;
c,d: integer;
begin
c := 123;
a := 456.123;
b := c + a; // Integer c Double
d := Round(b); // Double в Integer
← →
Servelat © (2004-10-31 21:45) [21]
> А как программно решить систему уровнений?
Ты реши на бумажке, а в программу только окончательную формулу сунь. Я бы мог сам тебе посчитать, но 1)тебе полезно напрягать мозги 2)мне лень :).
← →
Zer0 © (2004-10-31 22:23) [22]продолжая идею Servelat:
dx=(x0-x); dy=(y0-y);
далее находим длинну вектора (dx;dy)
d=sqrt(dx*dx+dy*dy);
далее если поделить каждую из составляющих на его длинну то вертор нормализуется (его длинна будет равна 1)
значит
xspeed=dx*speed/d
yspeed=dy*speed/d
где speed - скорость пульки.
а вообще надо находить угол поворота перса, в руках у которого пушка. а потом уже синусами и косинусами напраление полета считать.
учите матчасть(c)
---
skl-4ever
← →
Wish © (2004-10-31 22:43) [23]Ок, все работает, а как сделать чтобы isup, isleft и т.д. не распространялось на мышку, а только на клаву?
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.04 c