On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Пост N: 22
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 07.05.11 12:14. Заголовок: Мои вопросы по Gm


Я хочу сделать A.I в Комической леталке(Вид с верху)
Что бы он не тупо летел за какимто обектом, а мог уварчиватся от пуль, убегать. Ну или хотя бы просто что бы он не резко поворачивал а медлено как настоящий самолёт (типа direction+=1 ).

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 27 [только новые]







Пост N: 404
Зарегистрирован: 04.03.09
Откуда: Россия, Ростов-на-Дону
ссылка на сообщение  Отправлено: 07.05.11 14:58. Заголовок: Сначала попробуй сде..


Сначала попробуй сделать без плавного поворота. Придумай алгоритм по которому ИИ будет работать, напиши его на русском, а затем реализуй в гамаке. Это не такая уж и простая штука, тут подумать немало нужно :)

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 23
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 09.05.11 10:46. Заголовок: Как то так У врага Е..


Как то так
У врага
Если дистанция до Игрока менее 15 и
Если direction менее 50 до point_direction(игрока) и
Если скорость больше 7
то скорость равна больше семи
direction = direction
// это бред но может получиться что враг пролетит мимо из-за невозможности быстро повернуть.
// теперь надо сделать разворот а то враг так и улетит на совсем. Хотя если у врага direction равна point_direction(игрока)
то возможно враг начнёт разворачиватся.
Ну это моя гипотеза так что не пишите что я какую то фигню написал.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1059
Зарегистрирован: 13.02.07
Откуда: Россия, Волгоград
ссылка на сообщение  Отправлено: 09.05.11 20:04. Заголовок: PERLOVKA пишет: Есл..


PERLOVKA пишет:

 цитата:
Если скорость больше 7
то скорость равна больше семи


Логично!


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 25
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 10.05.11 11:07. Заголовок: Ну да ) ..


Ну да ) я кеп
Надо скорость равна 7

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 26
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 10.05.11 18:31. Заголовок: Код будет выглядеть ..


Код будет выглядеть как то так :
if distance_to_object(o_player)<15
{
if direction<50.point_direction(x,y,o_player,x,o_player,y) //В этой строчке я не уверен может кот знает, как записать?
{
if speed>7
{
speed=7
direction=direction // Здесь тоже что то не то, надо чтобы direction не изменялась.
}
}
}

Спасибо: 0 
ПрофильЦитата Ответить
New Art Games
дизайнер, сценарист




Пост N: 2610
Зарегистрирован: 19.09.05
Откуда: Россия

Награды: Мега GameCreator со стажем!
ссылка на сообщение  Отправлено: 10.05.11 18:52. Заголовок: что значит if direct..


что значит if direction<50.point_direction ?
и что значит direction=direction?


Hi! I'm Joe / John / Jane / etc and I have this great idea: let's combine WOW and Quake7 into a single game! I am looking for 5 programmers, 3 modelers, 3 concept artists, 10 level designers and 4 musicians. We will create a killer, next generation MMORPG and we will split the profits (I'll get over 51%, of course)
©AUM 86
Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 27
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 11.05.11 11:04. Заголовок: if direction<50...


if direction<50.point_direction этой записью я хотел сказать что если корбль врага повёрнут от игрока больше чем не 50 градусов.
а direction=direction я точно не знаю как записать надо чтобы градус в который повёрнут объект остался а не начал изменятся из-за direction=point_direction(x,y,o_player,x,o_player,y).

Спасибо: 0 
ПрофильЦитата Ответить
New Art Games
дизайнер, сценарист




Пост N: 2611
Зарегистрирован: 19.09.05
Откуда: Россия

Награды: Мега GameCreator со стажем!
ссылка на сообщение  Отправлено: 11.05.11 11:42. Заголовок: в первой строке 50.p..


в первой строке 50.point непонятно что означает эта точка, почему там не запятая или знак доллара какойнибудь?

понимаете, то что вам нужно сделать не пишется в 2 строчки которые можно безмозгло вставить и всё будет работать.
Тут дело в том, что ИИ пишется в зависимости от игры, в кажой свои детали учитываются, нет оригинального варианта который подойдет вам.
поэтому единственный выход писать самому.

Но, вы незнаете синтаксис и пишите <50.point мну например незнаю что означает точка, вы пишите direction=direction
написать 10=10 подсилу только К.О.
А главное за просто так писать вам игру никто не будет.
Есть два выхода:
-оплачиваете работу программисту и он делает всё за вас
-изучаете сами.

второй вариант займет больше времени и придется много думать.
рекомендую ставить эксперименты, много и часто.
перед тем как чтото сделать в игре, создаете новый проект в гамаке ставите туда шарики и экспериментируете с ними начиная с самого простого
для начала сделайте чтобы он просто тупо летал и тупо стрелял.
потом сделайте чтобы он тупо летал случайным образом поворачивая и тупо стрелял также
потом обдумайте и сделайте чтобы он стрелял только тогда когда смотрит в сторону игрока.
и потихоньку-постепенно усложняйте код.

если вы не смогли разобраться в 5 строчках кода с радаром, то что уж говорить о 15-20 строчках ИИ.
начинайте с малого, самого простого и примитивного

Hi! I'm Joe / John / Jane / etc and I have this great idea: let's combine WOW and Quake7 into a single game! I am looking for 5 programmers, 3 modelers, 3 concept artists, 10 level designers and 4 musicians. We will create a killer, next generation MMORPG and we will split the profits (I'll get over 51%, of course)
©AUM 86
Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 405
Зарегистрирован: 04.03.09
Откуда: Россия, Ростов-на-Дону
ссылка на сообщение  Отправлено: 11.05.11 12:06. Заголовок: И еще небольшой сове..


И еще небольшой совет :) Все эти if можно записать в одну строчку, и код станет проще.
Все вот это
Скрытый текст

можно записать так:

 цитата:

if distance_to_object(o_player)<15 && direction<point_direction(x,y,o_player,x,o_player,y) && speed>7
{
speed=7
direction=direction
}


Вместо && можно использовать and.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 28
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 12.05.11 12:19. Заголовок: Я же сказал что это ..


Я же сказал что это моя гипотеза. И я не срисовал её откуда-нибудь а придумывал. Это как раз и есть мой "експеремент". Вот поэтому и точка, что експеремент.

Спасибо: 0 
ПрофильЦитата Ответить
New Art Games
дизайнер, сценарист




Пост N: 2612
Зарегистрирован: 19.09.05
Откуда: Россия

Награды: Мега GameCreator со стажем!
ссылка на сообщение  Отправлено: 12.05.11 16:05. Заголовок: PERLOVKA пишет: Вот..


PERLOVKA пишет:

 цитата:
Вот поэтому и точка, что експеремент.


когда ставите эксперименты надо ставить знаки $ и @ вместо точек, иначе работать небудет
а вообще повторюсь, открываете гм, создаете новый проект и пытаетесь там сделать самое простое. если не получается, делаете ещё проще выкидывая сложные детали.

Hi! I'm Joe / John / Jane / etc and I have this great idea: let's combine WOW and Quake7 into a single game! I am looking for 5 programmers, 3 modelers, 3 concept artists, 10 level designers and 4 musicians. We will create a killer, next generation MMORPG and we will split the profits (I'll get over 51%, of course)
©AUM 86
Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 29
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 14.05.11 09:47. Заголовок: На сколько я знаю ес..


На сколько я знаю если поставть @ или $ то работать точно не будет.

Спасибо: 0 
ПрофильЦитата Ответить
New Art Games
дизайнер, сценарист




Пост N: 2613
Зарегистрирован: 19.09.05
Откуда: Россия

Награды: Мега GameCreator со стажем!
ссылка на сообщение  Отправлено: 14.05.11 10:56. Заголовок: не узнаете, пока не ..


не узнаете, пока не прочтете хелп по гм. благо есть переведенный русский вариант

Hi! I'm Joe / John / Jane / etc and I have this great idea: let's combine WOW and Quake7 into a single game! I am looking for 5 programmers, 3 modelers, 3 concept artists, 10 level designers and 4 musicians. We will create a killer, next generation MMORPG and we will split the profits (I'll get over 51%, of course)
©AUM 86
Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 32
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 07.06.11 14:25. Заголовок: Я насчёт медленного ..


Я насчёт медленного поворота у врага
if direction<point_direction(x,y,o_player.x,o_player.y)
{
direction+=5
}
if direction>point_direction(x,y,o_player.x,o_player.y)
{
direction-=5
}
if direction=point_direction(x,y,o_player.x,o_player.y)
{
direction-=0 //тут можно написать +
}
Всё бы ни чего только например если у врага direction=14 а у игрока 354 то у врага direction увеличивается то есть он идёт в круговую вместо выгодново поворота. Можно устранить это так:
if direction=14 && direction>point_direction(x,y,o_player.x,o_player.y)
{
direction-=5
}
if direction=14 && direction<point_direction(x,y,o_player.x,o_player.y)
{
direction+=5
}
Но как же остальные градусы?
Не прописовать же каждый.
Надо сделать как периоды типа с 0-90 градус, с 91-180 и так далее...
Тока как прописать эти периоды?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 33
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 10.06.11 09:38. Заголовок: Да уж как я сразу н..


Да уж как я сразу не додумался

 цитата:

if direction<90 && direction<point_direction(x,y,o_player.x,o_player.y)
{
direction=+5
}
if direction>270 && direction<point_direction(x,y,o_player.x,o_player.y)
{
direction=-5
}


Теперь надо это проверить.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 34
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 10.06.11 10:24. Заголовок: Хм... Почему то не р..


Хм... Почему то не работает
Я даже сделал объект для отрисовки direction игрока и т.д.
Что бы убедится что все direction и т.д. работают.
Переменные та работоют а алгоритм нет (
Как будто я его не написал в Step'е у врага!
Может что не так.
А.I


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 1056
Зарегистрирован: 26.06.07
Откуда: Россия, Владивосток

Награды: GameCreator - Писатель!Неутомимый GameCreator!!!
ссылка на сообщение  Отправлено: 10.06.11 14:27. Заголовок: Код поворота пушки в..


Код поворота пушки в игре Jacal тот прицип что тебе нужен

 цитата:

distance=ceil(point_distance(x,y,plar.px,plar.py))
image_angle=ceil(image_angle)


if distance<dist && !collision_line(x,y,plar.x,plar.y,o_rockbord,1,1)
{
tochka=floor(point_direction(x,y,plar.px,plar.py))
}
else
{
if ch=180
{
gg=0
}

if gg=0
{
if timerr>room_speed*paus
{
tochka=floor(random(360/pov))*pov
gg=1
timerr=0
}
timerr+=1
}
}

if image_angle>tochka
{
ch=image_angle-tochka
}
if image_angle<tochka
{
ch=image_angle+(360-tochka)
}
if image_angle=tochka
{
ch=180
}

if ch>180
{
image_angle+=spd
}
if ch<180
{
image_angle-=spd
}

if image_angle<0 image_angle=359
if image_angle>359 image_angle=0



В коде реализовано так,

если игрока в радиусе distance не видно
{
то рандомом придумывать точку поворота
}
иначе точка поворота игрок

далее определяется оптимальный угол поворота

http://www.gamecreating.ru/zuko/МоиПроекты/jacal
исходники тут есть



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 35
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 22.06.11 08:50. Заголовок: Для меня это сложный..


Для меня это сложный код. Много чего не понятно, но разбираться я буду не много поже.
У меня другой вопрос. В платформере как сделать что бы враг изменял свой спрайт в зависимости куда он идёт?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 409
Зарегистрирован: 04.03.09
Откуда: Россия, Ростов-на-Дону
ссылка на сообщение  Отправлено: 22.06.11 12:41. Заголовок: Писал как-то очень х..


Писал как-то очень хитрый код на эту тему, но приведу слегка упрощенный :)
Используй draw_sprite_ext(). в нем есть такой аргумент как xscale. Это растяжение спрайта по оси x. Если его значение равно 1, то спрайт рисуется как обычно. Если присвоить значение -1, то спрайт будет рисоваться наоборот. Проверить в какую сторону движется враг можно с помощью x и xprevios. Вотъ) Если сам не поймешь как сделать, то сделаю примерчик.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 990
Зарегистрирован: 13.02.07
Откуда: Южная Африка, Глушь лесная
ссылка на сообщение  Отправлено: 03.07.11 15:13. Заголовок: Тупой вопрос, а когд..


Тупой вопрос, а когда выйдет ГМ 9?

моя скромная страница на ГЦ) Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 410
Зарегистрирован: 04.03.09
Откуда: Россия, Ростов-на-Дону
ссылка на сообщение  Отправлено: 03.07.11 17:41. Заголовок: Думаю не скоро) Еще ..


Думаю не скоро) Еще не все баги в 8.1 исправили, так что..

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 36
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 03.07.11 18:47. Заголовок: sanchez пишет: Тупо..


sanchez пишет:

 цитата:
Тупой вопрос


Ну тупой не тупой я всё же новичок )

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 992
Зарегистрирован: 13.02.07
Откуда: Южная Африка, Глушь лесная
ссылка на сообщение  Отправлено: 03.07.11 21:34. Заголовок: PERLOVKA да я не про..


PERLOVKA да я не про твой вопрос говорю) не подумай)

моя скромная страница на ГЦ) Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 37
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 04.07.11 13:06. Заголовок: А это про Gm 9, ну т..


А это про Gm 9, ну тогда понятно )

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 39
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 26.07.11 12:35. Заголовок: Вобще я нарисовал дв..


Вобще я нарисовал два спрайта. И решил эту проблему так.
Если A.I. у врага вот такой:

if distance_to_object(o_player)<300
{
direction=point_direction(x,y,o_player.x,o_player.y)
speed=3
vspeed=0
}
то ниже надо прописать:
if direction>90
{
sprite_index=s_enemy_1_1
}
if direction<90
{
sprite_index=s_enemy_1_2
}
И всё заработало


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 415
Зарегистрирован: 04.03.09
Откуда: Россия, Ростов-на-Дону
ссылка на сообщение  Отправлено: 26.07.11 20:57. Заголовок: Проверь ситуацию, ко..


Проверь ситуацию, когда игрок справа-снизу от врага. По-моему, в этом случае враг будет не в ту сторону смотреть :)

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 40
Зарегистрирован: 15.01.11
Откуда: Россия, Томск
ссылка на сообщение  Отправлено: 02.08.11 09:43. Заголовок: А ну тогда код полно..


А ну тогда код полностью будет такой:

if distance_to_object(o_player)<300
{
direction=point_direction(x,y,o_player.x,o_player.y)
speed=3
vspeed=0
}
if direction>90 && direction<270
{
sprite_index=s_enemy_1_1
}
if direction<90
{
sprite_index=s_enemy_1_2
}
if direction>270
{
sprite_index=s_enemy_1_2
}

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 4
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет