Гонки на GM
|
|
Strateg | Дата: Вторник, 01 Марта 2011, 11:45 | Сообщение # 21 |
заслуженный участник
Сейчас нет на сайте
| Спасибо тебе большое,теперь хоть понятнее стало!когда наглядно показано!но думаю что с объектами мне будет легче и более понятнее!а по поводу карты я тоже согласен с тобой,они оба хорошие варианты.но я наверное буду делать с крутящейся,мне кажется что так будет лучше смотреться! Добавлено (01.03.2011, 11:45) --------------------------------------------- Думаю еще внедрить в игру систему прокачивания:азот,двигатели,ну и т.д.вроде суть знаю и смогу сделать!
DiamonD - мой сайт...
|
|
| |
Made_In_USSR | Дата: Вторник, 01 Марта 2011, 20:51 | Сообщение # 22 |
заслуженный участник
Сейчас нет на сайте
| Никто не учел того момента, что проверку collision_line есть смысл делать только в событии шага. При этом машина может сталкиваться с линией два а то и три шага подряд (смотря какой величины спрайт) а может быть и постоянно (если стоит). В таком случае круг накручиваемый такой проверкой будет накручиваться несколько раз. Меня одного это смущает? Добавлено (01.03.2011, 20:51) --------------------------------------------- В случае с двумя линиями ничто не мешает отъехать назад и пересечь обе линии еще раз. Придется поломать голову дольше 10-ти минут
Новичкам изучающим 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) ...Выполнять код нужно в шаге, но не просто так... Да и без кода понятно, но все равно спасибо. Жаль что такие советы не дают сразу
Новичкам изучающим 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 - мой сайт...
|
|
| |
|
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 |
заслуженный участник
Сейчас нет на сайте
| чекпоинты - те же самые "финишные линии". Только они по всей трассе стоят (на каком-то расстоянии друг от друга). Ты что, в гонки не играл никогда ? Делаешь переменную, ставишь ей значение 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 |
заслуженный участник
Сейчас нет на сайте
| Вот тут еще подумал, чекпоинты можно сделать в виде обьектов (к ним например можно прилепить какой нибудь красивый спрайт-эффект по образу гонок из гта или дравер). Есть столкновение с обьектом чекпоинта, значит чекпоинт пройден, можно переместить его в другую точку (следующий отрезок пути) или удалить и создать новый на нужном месте. Ну и если чекпоинтов больше нет и пересечена финишная линия - защитан круг. И не нужно ломать голову с колижн лайн и кучей переменных
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
Сообщение отредактировал Made_In_USSR - Среда, 02 Марта 2011, 20:07 |
|
| |
NeZnayu | Дата: Среда, 02 Марта 2011, 20:08 | Сообщение # 39 |
__танцуй!__
Сейчас нет на сайте
| Made_In_USSR, блин, о том и речь. Вы вечно все измудрите
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
Made_In_USSR | Дата: Среда, 02 Марта 2011, 20:20 | Сообщение # 40 |
заслуженный участник
Сейчас нет на сайте
| Quote (NeZnayu) Made_In_USSR, блин, о том и речь. Вы вечно все измудрите Ну тут уж раз на раз не приходится, главное что мысль то прошла
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |