Вопрос - Ответ (Game Maker)
| |
LordZick | Дата: Суббота, 22 Января 2011, 20:27 | Сообщение # 661 |
участник
Сейчас нет на сайте
| Спасибо! Я уменьшил и всё!
|
|
| |
TheApKoT | Дата: Суббота, 22 Января 2011, 20:58 | Сообщение # 662 |
GML ProgrammeR
Сейчас нет на сайте
| LordZick, удачи в игрострое! Рад помочь).
Посоветуйте, где скачать VB6 :C
|
|
| |
TheApKoT | Дата: Суббота, 22 Января 2011, 21:24 | Сообщение # 663 |
GML ProgrammeR
Сейчас нет на сайте
| Теперь мой вопрос: как сделать проверку, свободно ли расстояние над объектом? Не над центром, а именно над объектом?
Посоветуйте, где скачать VB6 :C
|
|
| |
Dva_Kota | Дата: Понедельник, 24 Января 2011, 10:25 | Сообщение # 664 |
заслуженный участник
Сейчас нет на сайте
| Не совсем понятно что значит "расстояние над объектом"... Наверное тебе нужно это: Quote place_empty(x,y) Возвращает истину, если с экземпляром объекта, помещённым в точку с координатами (x,y) не происходит вообще никаких столкновений.
Новый пример инвентаря! /20.06.2012/
Energy Wars
|
|
| |
GameMix | Дата: Понедельник, 24 Января 2011, 10:43 | Сообщение # 665 |
старожил
Сейчас нет на сайте
| Dva_Kota, наверное, Apelsinoviy_kot "расстояние над объектом" имел ввиду, чтобы проверялось не только столкновение с центром спрайта объекта, но и с любой частью его маски.
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
TheApKoT | Дата: Понедельник, 24 Января 2011, 11:01 | Сообщение # 666 |
GML ProgrammeR
Сейчас нет на сайте
| аТнОтХоАн, нет. Ну, допустим, есть квадратик, 32х32. Расположенный в 50х50. И нужно проверить, есть ли над ним объект, пускай даже край того объекта находится в Хх60. Надеюсь, понятно?
Посоветуйте, где скачать VB6 :C
|
|
| |
GameMix | Дата: Понедельник, 24 Января 2011, 12:41 | Сообщение # 667 |
старожил
Сейчас нет на сайте
| place_meeting не пойдет?
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
TheApKoT | Дата: Понедельник, 24 Января 2011, 13:00 | Сообщение # 668 |
GML ProgrammeR
Сейчас нет на сайте
| аТнОтХоАн, не, оно проверяет на определенный объект.
Посоветуйте, где скачать VB6 :C
Сообщение отредактировал Apelsinoviy_kot - Понедельник, 24 Января 2011, 13:01 |
|
| |
Dva_Kota | Дата: Понедельник, 24 Января 2011, 13:08 | Сообщение # 669 |
заслуженный участник
Сейчас нет на сайте
| Все равно ничего не понятно... Тебе нужно проверить столкновение, но только если второй объект имеет меньшую глубину? Или глубина здесь не при чем?
Новый пример инвентаря! /20.06.2012/
Energy Wars
|
|
| |
TheApKoT | Дата: Понедельник, 24 Января 2011, 13:11 | Сообщение # 670 |
GML ProgrammeR
Сейчас нет на сайте
| Короче говоря... Допустим, из центра первого объекта вверх идет линия. И если второй объект линию пересечет, то она должна остановиться на втором. Если по другому, то нужна проверка столкновения с линией.
Посоветуйте, где скачать VB6 :C
|
|
| |
Lord_F | Дата: Понедельник, 24 Января 2011, 13:21 | Сообщение # 671 |
Любопытный Игродел
Сейчас нет на сайте
| ну тогда collision_line тебе в помощь! Блин, как я не догадался сам про линию(( Добавлено (24.01.2011, 13:21) --------------------------------------------- Помоему пишется collision_line(x1,y1,x2,y2)
[quote]Ничто не истина, всё дозволено[/quote]
|
|
| |
TheApKoT | Дата: Понедельник, 24 Января 2011, 13:25 | Сообщение # 672 |
GML ProgrammeR
Сейчас нет на сайте
| Lord_F, и что это такое? Я просто раньше с линиями не сталкивался.
Посоветуйте, где скачать VB6 :C
|
|
| |
GameMix | Дата: Понедельник, 24 Января 2011, 13:32 | Сообщение # 673 |
старожил
Сейчас нет на сайте
| У меня collision_line(x1,y1,x2,y2) глючит - при столкновении гг с линией даже на маленькой скорости, проверка происходит с запозданием <_<. То есть, гг успевает проскочить ее на 10 пикселей.
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
Dva_Kota | Дата: Понедельник, 24 Января 2011, 13:58 | Сообщение # 674 |
заслуженный участник
Сейчас нет на сайте
| аТнОтХоАн, нужно проверять в end step p.s.: я, почему-то подумал что это TDS, из-за этого не сразу понял что значит "над объектом". Добавлено (24.01.2011, 13:55) --------------------------------------------- А вообще можно сделать так: Проверять столкновение через place_meeting(x,y,obj) вот таким образом в шаге врага (проверять есть ли под ним игрок): Code if (place_meeting(x,obj_игрок.y,obj_игрок)) { //что делать если под врагом игрок? } Добавлено (24.01.2011, 13:58) --------------------------------------------- но здесь условие будет выполняться и если второй объект находится под первым. Если это имеет значение, добавь еще одну проверку: сравнивай игрики:
Новый пример инвентаря! /20.06.2012/
Energy Wars
Сообщение отредактировал Dva_Kota - Понедельник, 24 Января 2011, 13:56 |
|
| |
Lord_F | Дата: Понедельник, 24 Января 2011, 15:10 | Сообщение # 675 |
Любопытный Игродел
Сейчас нет на сайте
| Quote (Apelsinoviy_kot) Lord_F, и что это такое? Я просто раньше с линиями не сталкивался. collision_line - это проверка на столкновение какого-то объекта с отрезком, концы которого находятся в указанных точках. Больше инфы - F1.
[quote]Ничто не истина, всё дозволено[/quote]
|
|
| |
TheApKoT | Дата: Понедельник, 24 Января 2011, 20:41 | Сообщение # 676 |
GML ProgrammeR
Сейчас нет на сайте
| Lord_F, а подробнее? Как применять?
Посоветуйте, где скачать VB6 :C
|
|
| |
Dva_Kota | Дата: Вторник, 25 Января 2011, 09:11 | Сообщение # 677 |
заслуженный участник
Сейчас нет на сайте
| Функция выглядит так: collision_line(x1,y1,x2,y2,obj,prec,notme) Тебе нужно Code collision_line(x,y,x,0,obj_который_должен_быть_над_данным_объектом,true,true) Но, я думаю, это не та функция, которая тебе нужна - здесь проверка выполнится только в том случае, если второй объект будет над центром первого (хотя бы часть объекта будет над центром первого). Т.е. если небольшая часть второго объекта, будет над "краем" первого - будет считаться что он еще не над ним. Хотя можно и с помощью этой функции сделать проверку, но нужно проверять два раза - одна линия слева от объекта, другая - справа. Но если второй объект значительно меньше первого этот способ не подойдет - второй объект при движении может "проскочить" линию и функция не сработает. делать нужно так (если центр спрайта первого объекта находится в центре): Code collision_line(x-ширина_оъекта/2,y,x-ширина_оъекта/2,0,obj_который_должен_быть_над_данным_объектом,true,true) collision_line(x+ширина_оъекта/2,y,x+ширина_оъекта/2,0,obj_который_должен_быть_над_данным_объектом,true,true)
Новый пример инвентаря! /20.06.2012/
Energy Wars
|
|
| |
TheApKoT | Дата: Вторник, 25 Января 2011, 11:50 | Сообщение # 678 |
GML ProgrammeR
Сейчас нет на сайте
| Quote (Dva_Kota) collision_line(x,y,x,0,obj_который_должен_быть_над_данным_объектом,true,true) А дальше что? Работает как if?
Посоветуйте, где скачать VB6 :C
|
|
| |
Lord_F | Дата: Вторник, 25 Января 2011, 12:30 | Сообщение # 679 |
Любопытный Игродел
Сейчас нет на сайте
| Quote (Apelsinoviy_kot) А дальше что? Работает как if? да. Quote (Dva_Kota) делать нужно так (если центр спрайта первого объекта находится в центре): collision_line(x-ширина_оъекта/2,y,x-ширина_оъекта/2,0,obj_который_должен_быть_над_данным_объектом,true,true) collision_line(x+ширина_оъекта/2,y,x+ширина_оъекта/2,0,obj_который_должен_быть_над_данным_объектом,true,true) Тогда уж лучше collision_rectangle()
[quote]Ничто не истина, всё дозволено[/quote]
|
|
| |
Dva_Kota | Дата: Вторник, 25 Января 2011, 12:56 | Сообщение # 680 |
заслуженный участник
Сейчас нет на сайте
| Да, лучше. Но лучше, я думаю, то что я предлагал выше - через place_meeting(x,obj_игрок.y,obj_игрок). Хотя не знаю что будет быстрее работать.
Новый пример инвентаря! /20.06.2012/
Energy Wars
|
|
| |
|