Воскресенье, 22 Декабря 2024, 15:50

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 7
  • «
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • »
Гонки на GM
StrategДата: Вторник, 01 Марта 2011, 11:45 | Сообщение # 21
заслуженный участник
Сейчас нет на сайте
Спасибо тебе большое,теперь хоть понятнее стало!когда наглядно показано!но думаю что с объектами мне будет легче и более понятнее!а по поводу карты я тоже согласен с тобой,они оба хорошие варианты.но я наверное буду делать с крутящейся,мне кажется что так будет лучше смотреться!

Добавлено (01.03.2011, 11:45)
---------------------------------------------
Думаю еще внедрить в игру систему прокачивания:азот,двигатели,ну и т.д.вроде суть знаю и смогу сделать!


DiamonD - мой сайт...
Made_In_USSRДата: Вторник, 01 Марта 2011, 20:51 | Сообщение # 22
заслуженный участник
Сейчас нет на сайте
Никто не учел того момента, что проверку collision_line есть смысл делать только в событии шага. При этом машина может сталкиваться с линией два а то и три шага подряд (смотря какой величины спрайт) а может быть и постоянно (если стоит). В таком случае круг накручиваемый такой проверкой будет накручиваться несколько раз. Меня одного это смущает? biggrin

Добавлено (01.03.2011, 20:51)
---------------------------------------------
В случае с двумя линиями ничто не мешает отъехать назад и пересечь обе линии еще раз.
Придется поломать голову дольше 10-ти минут smile


Новичкам изучающим GML кликать сюда.
Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
Dva_KotaДата: Вторник, 01 Марта 2011, 21:35 | Сообщение # 23
заслуженный участник
Сейчас нет на сайте
Quote (Strateg)
В случае с двумя линиями ничто не мешает отъехать назад и пересечь обе линии еще раз.
Придется поломать голову дольше 10-ти минут smile

Посмотри внимательно код, который я предлагаю для двух линий. Тут не получится просто отъехать назад:
Круг засчитывается только если f2=true при пересечении финишной линии. Это условие станет истиной только когда при пересечении линии перед финишем переменная f1=false. В начале f1=false, но если ты пересечешь финишную линию когда f2=false эта переменная поменяет свое значение на противоположное и круги не будут засчитываться ( f2=false при пересечении финишной линии возможно только когда ты поедешь в обратном направлении, когда опять поедешь правильно и пересечешь линию финиша - опять переменная примет свое значение)

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


Новый пример инвентаря! /20.06.2012/

Energy Wars
Made_In_USSRДата: Вторник, 01 Марта 2011, 22:14 | Сообщение # 24
заслуженный участник
Сейчас нет на сайте
Да, немного сбили с толку однотипные переменные ф1 и ф2.
Хотя меня все равно смущает присвоение ф1=!ф1. Мой мозг отказывается принимать это потому как !ф1 это переменная которая может принимать любое значение, соответственно если ф1 равно ложь это не значит что !ф1 равно правда. Или я где то не доучился и переменная с булевым значением автоматически воспринимает "не" как противоположное булевое значение?

И еще интересно где же можно еще кроме шага делать проверку через колижн_лайн (я имею ввиду конкретный случай)? Никаких других событий имеющих отношение к пересечению с линией не происходит, значит остается только степ. Может я и не прав, но других путей я пока не вижу.


Новичкам изучающим GML кликать сюда.
Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
Dva_KotaДата: Вторник, 01 Марта 2011, 22:43 | Сообщение # 25
заслуженный участник
Сейчас нет на сайте
Quote (Made_In_USSR)
Или я где то не доучился и переменная с булевым значением автоматически воспринимает "не" как противоположное булевое значение?

Quote (из справки)

!: отрицание, преображает истину в ложь и наоборот (0 в 1, 1 в 0)

Да, "!" меняет true на false и наоборот.

присвоение вида a=!a часто используется. меняет значение булевой переменной на противоположное.

Quote (Made_In_USSR)
И еще интересно где же можно еще кроме шага делать проверку через колижн_лайн

Я не много не правильно выразился. Выполнять код нужно в шаге, но не просто так. а предварительно проверяя, столкновение только что произошло (в этом шаге) или происходит уже не первый шаг подряд. Для этого можно ввести еще одну переменную, в начале присвоить ей значение false (Столкновения нет). Например будет это переменная col=false. В шаге проверяем столкновение если оно произошло - проверяем переменную, если она равна false выполняем наш код и меняем переменную на true. А когда столкновение перестанет происходить - меняем переменную обратно на false. Таким образом код будет выполняться только в момент столкновения, а не каждый шаг. Думаю кодом будет понятнее чем словами:
Code

if (collision_line(x1,y1,x2,y2,igrok,0,0))
     {
     if (!col)
         {
         if (f2=true)
             {
             f2=false;
             круг+=1;
             }
         else
             {
             f1=!f1;
             }
         }
     col=true;
     }
else
     {
     col=false;
     }


Новый пример инвентаря! /20.06.2012/

Energy Wars
Made_In_USSRДата: Вторник, 01 Марта 2011, 22:50 | Сообщение # 26
заслуженный участник
Сейчас нет на сайте
Quote (Dva_Kota)
Да, "!" меняет true на false и наоборот.

присвоение вида a=!a часто используется. меняет значение булевой переменной на противоположное.


Теперь все становится на свои места. Просто я всегда в уме считал булевые значения как 1 и 0. А следуя логике если n равно нулю то !n равно не нулю, тоесть остальному множеству чисел. Спасибо за подсказку.
Quote (Dva_Kota)
...Выполнять код нужно в шаге, но не просто так...

Да и без кода понятно, но все равно спасибо. Жаль что такие советы не дают сразу smile


Новичкам изучающим GML кликать сюда.
Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
NeZnayuДата: Среда, 02 Марта 2011, 11:58 | Сообщение # 27
__танцуй!__
Сейчас нет на сайте
Почему просто не сделать объект, пускающий машины только в одну сторону?

CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу


Сообщение отредактировал NeZnayu - Среда, 02 Марта 2011, 11:58
StrategДата: Среда, 02 Марта 2011, 12:38 | Сообщение # 28
заслуженный участник
Сейчас нет на сайте
NeZnayu, я хочу сделать свободное перемещение на трассе, а не только чтоб машина ехала вперёд!

Добавлено (02.03.2011, 12:38)
---------------------------------------------
может проще всего сделать 2 объекта! И при столкновении 1 объекта с машиной появиться 2 объект! А при столкновении машины со 2 объектом будет засчитан круг!?


DiamonD - мой сайт...
NeZnayuДата: Среда, 02 Марта 2011, 12:42 | Сообщение # 29
__танцуй!__
Сейчас нет на сайте
Да, тоже вариант.

CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
Dva_KotaДата: Среда, 02 Марта 2011, 13:17 | Сообщение # 30
заслуженный участник
Сейчас нет на сайте
Нет, это не вариант: то же самое о чем говорили выше - можно будет ездить туда-сюда и будут постоянно засчитываться круги. Хотя можно поставить один объект там где финиш, а второй ровно на середине круга

Новый пример инвентаря! /20.06.2012/

Energy Wars
StrategДата: Среда, 02 Марта 2011, 15:30 | Сообщение # 31
заслуженный участник
Сейчас нет на сайте
Ну в принципе я так и имел ввиду!это будет проще всего.

Добавлено (02.03.2011, 15:30)
---------------------------------------------
и еще хотел попросить модераторов переменнавть тему,так как в данной теме уже не только про спидометр и коробку передачь!заранее спасибо.


DiamonD - мой сайт...
NeZnayuДата: Среда, 02 Марта 2011, 15:34 | Сообщение # 32
__танцуй!__
Сейчас нет на сайте
Народ, вы несете бред. Понятно что сколько раз через финиш проедешь - столько кругов и защитает. Главная задача финиша - засчитывать круги только в одну сторону. Чтобы убедиться что игрок прошел всю трассу - нужно ставить чекпоинты.

CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
Dva_KotaДата: Среда, 02 Марта 2011, 15:51 | Сообщение # 33
заслуженный участник
Сейчас нет на сайте
Или чекпоинты или код который я предложил или еще что-нибудь. Ставить кучу чекпоинтов тоже не всегда рационально, но если в игре можно съезжать с трассы то, думаю, без них не обойтись.

Новый пример инвентаря! /20.06.2012/

Energy Wars
GameMixДата: Среда, 02 Марта 2011, 16:47 | Сообщение # 34
старожил
Сейчас нет на сайте
Quote (Strateg)
и еще хотел попросить модераторов переменнавть тему,так как в данной теме уже не только про спидометр и коробку передачь!заранее спасибо.

Перейди на первую страницу этой темы. Найди там свое первое сообщение и нажми "Редактировать". Так можно поменять название темы и ее описание.


Steel Standoff - 2D аркада.
Мои статьи
StrategДата: Среда, 02 Марта 2011, 17:20 | Сообщение # 35
заслуженный участник
Сейчас нет на сайте
NeZnayu, а как сделать то эти чекпоинты? И что это такое то?

DiamonD - мой сайт...
Dva_KotaДата: Среда, 02 Марта 2011, 17:29 | Сообщение # 36
заслуженный участник
Сейчас нет на сайте
чекпоинты - те же самые "финишные линии". Только они по всей трассе стоят (на каком-то расстоянии друг от друга). Ты что, в гонки не играл никогда biggrin ?
Делаешь переменную, ставишь ей значение 0. Допустим у тебя 3 чекпоинта, один из которых является финишной линией (который под номером 3). При пересечении первого чекпоинта проверяешь равна ли переменная 0. Если равна - ставишь ей значение 1. У второго проверяешь равна ли переменная 1. Если равна 1 то присваиваешь ей значение 2. у третьего чекпоинта проверяешь равна ли переменная 2. Если равна 2 то увеличиваешь количество кругов на 1 и присваиваешь переменной значение 0.

Добавлено (02.03.2011, 17:29)
---------------------------------------------
Получается что ты должен будешь обязательно для завершения круга пройти через все чекпоинты в определенной последовательности.


Новый пример инвентаря! /20.06.2012/

Energy Wars
StrategДата: Среда, 02 Марта 2011, 19:36 | Сообщение # 37
заслуженный участник
Сейчас нет на сайте
Да нет, в гонки то играл! (ВО ВСЕ, ПРАКТИЧЕСКИ). Нет я думал это что то другое!Всё равно спасибо)))

DiamonD - мой сайт...
Made_In_USSRДата: Среда, 02 Марта 2011, 20:06 | Сообщение # 38
заслуженный участник
Сейчас нет на сайте
Вот тут еще подумал, чекпоинты можно сделать в виде обьектов (к ним например можно прилепить какой нибудь красивый спрайт-эффект по образу гонок из гта или дравер). Есть столкновение с обьектом чекпоинта, значит чекпоинт пройден, можно переместить его в другую точку (следующий отрезок пути) или удалить и создать новый на нужном месте. Ну и если чекпоинтов больше нет и пересечена финишная линия - защитан круг. И не нужно ломать голову с колижн лайн и кучей переменных biggrin

Новичкам изучающим GML кликать сюда.
Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)


Сообщение отредактировал Made_In_USSR - Среда, 02 Марта 2011, 20:07
NeZnayuДата: Среда, 02 Марта 2011, 20:08 | Сообщение # 39
__танцуй!__
Сейчас нет на сайте
Made_In_USSR, блин, о том и речь. Вы вечно все измудрите smile

CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
Made_In_USSRДата: Среда, 02 Марта 2011, 20:20 | Сообщение # 40
заслуженный участник
Сейчас нет на сайте
Quote (NeZnayu)
Made_In_USSR, блин, о том и речь. Вы вечно все измудрите

Ну тут уж раз на раз не приходится, главное что мысль то прошла smile


Новичкам изучающим GML кликать сюда.
Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
  • Страница 2 из 7
  • «
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг