Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
9-1099156472
lokid7
2004-10-30 21:14
2005.02.06
Сокобан


1-1106537456
Евг
2005-01-24 06:30
2005.02.06
Ошибка при закрытии книги в Excel


14-1105784443
Nous Mellon_
2005-01-15 13:20
2005.02.06
Стапудовый Хит! :)


14-1106092204
noone_____
2005-01-19 02:50
2005.02.06
inttostr in cpp


14-1105972475
Cosinus
2005-01-17 17:34
2005.02.06
Хм... Время включения заставки в NT-системах...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский