Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.06;
Скачать: CL | DM;

Вниз

Сразу несколько вопросов по созданию игр.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.024 c
1-1106278856
Ната
2005-01-21 06:40
2005.02.06
Как динамически создать кнопку?


3-1104688120
mihail2209
2005-01-02 20:48
2005.02.06
Вопрос по ClientDataSet - как можно выполнить запрос SQL с ...


1-1106307685
slaga
2005-01-21 14:41
2005.02.06
Анализ работы программы ?


3-1104183652
sergik
2004-12-28 00:40
2005.02.06
BDE и Oracle


14-1106222017
}|{yk
2005-01-20 14:53
2005.02.06
Путин поздравил Ющенко