Вторник, 19 Ноября 2024, 03:37

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Пара вопросов по Game Maker
MadMaxДата: Воскресенье, 10 Июня 2012, 06:50 | Сообщение # 1
\o
Сейчас нет на сайте
1. Подскажите функцию перемещения в данную точку?
Нужно чтобы объект переместился (не телепортировался, а именно переместился!) в заданную точку с заданной скоростью. покопал справку, и нашел move_towards_point()
Вот пример как я использую

Code
with (obj_a){
move_towards_point(1200,300,7)
}

объект должен перейти в точку 1200:300 со скоростью 7. он идет идет и уходит за пределы комнаты дальше точки х, но нужно чтобы он остановился в точке 1200:300
что и как мне нужно использовать?

2. Как можно узнать имя комнаты? мб есть какая то функция, чтобы узнать имя комнаты, в которой находится объект.

3. Как можно узнать координаты где находится объект в данный момент для последущего занесения их в переменные?

4. Как можно сделать отрисовку спрайта в объекте столкновения? мне нужно когда obj_a столкнется с obj_b то отрисуется спрайт

5. Как узнать не имеет ли общих точек столкновения obj_a и obj_b? ну вот когда они столкнутся происходит действие, но нужно когда они не имеют общих точек, то действие будет другое? думаю в степе надо что то прописать.
ну приведу пример. есть кнопка. на кнопку встает гг - дверь открывается. гг уходит с кнопки - дверь закрывается.


[Gamiron #10] Prison Break
[2D] Revenge [iOS, Android]




Сообщение отредактировал MadMax - Воскресенье, 10 Июня 2012, 07:02
GameMixДата: Воскресенье, 10 Июня 2012, 07:19 | Сообщение # 2
старожил
Сейчас нет на сайте
1) В событии End Step объекта obj_a:
Code
if point_distance(x,y,1200,300) < 8
   move_towards_point(1200,300,7)
else
   speed = 0;

Описание функции point_distance() можно узнать в справке.

2) room_get_name(). Возвращает имя комнаты, а не caption (заголовок окна).
3) x,y.
4) можно в объекте obj_a завести переменную в Create. например:
Code
DRAW = false;

А в Collision with obj_b:
Code
if DRAW = true
   exit
else
   DRAW = true;

Далее, в событии рисования:
Code
if DRAW = true
   рисуем_спрайт;

5) функция place_meeting(x,y,obj). Подробнее в справке.
Quote (MadMax)
думаю в степе надо что то прописать

Ты прав.


Steel Standoff - 2D аркада.
Мои статьи
MadMaxДата: Воскресенье, 10 Июня 2012, 13:10 | Сообщение # 3
\o
Сейчас нет на сайте
спасибо. все помогло

Добавлено (10.06.2012, 13:05)
---------------------------------------------
GameMix, первый вопрос актуален.
ну вот вставил в конечный шаг, а в obj_b что тогда? надо чтобы при нажатии на obj_b, obj_a перешел в 1200:300

Добавлено (10.06.2012, 13:09)
---------------------------------------------
так же 4 вопрос. сделал как написано, но теперь спрайт самого объекта не отображается. его не видно

Добавлено (10.06.2012, 13:10)
---------------------------------------------

Code
if DRAW = true  
    {
    draw_sprite(spr_lol,0,300,300)
    }


событие рисование. остальное у тебя все взял


[Gamiron #10] Prison Break
[2D] Revenge [iOS, Android]


SaladinДата: Воскресенье, 10 Июня 2012, 13:42 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Quote (MadMax)
сделал как написано, но теперь спрайт самого объекта не отображается

Его и не будет видно. Если в обьекте используется событие драв, то рисуется только то, что в нем написано. Тебе нужно сперва нарисовать спрайт обьекта а потом уже код рисования другого спрайта.
Code
draw_sprite(sprite_index,image_index,x,y)

if DRAW == true   
     {
     draw_sprite(spr_lol,0,300,300)
     }

Добавлено (10.06.2012, 13:42)
---------------------------------------------

Quote (MadMax)
Подскажите функцию перемещения в данную точку?

Можно конечно просто переместить обьект с помощью твоей функции, но пути тут кажется будут более уместны.
В событии нажатия кнопки:
Code
n=path_add()
path_add_point(n,x,y,100)
path_add_point(n,x1,y1,100)
path_start(n,speed_var,0,0)


в событии End of path
Code
path_delete(n)


Анбаннэд. Хэлоу эгин =)
MadMaxДата: Воскресенье, 10 Июня 2012, 13:57 | Сообщение # 5
\o
Сейчас нет на сайте
спасибо, пути правда лучше (пытаюсь сделать листинг уровней, например как в angry birds). но с рисованием опять не получается. рисую спрайт,а потом условие. в итоге ни спрайта объекта, ни из условия.

а еще вопрос, где и как лучше хранить информацию о уровнях (закрыт/открыт)?
список уровней как в angry birds, я делаю просто глобальную переменную для каждого уровня.
global.level1=1 (открыт)
global.level2=0 (закрыт)
а потом проверяю открыт или закрыт


[Gamiron #10] Prison Break
[2D] Revenge [iOS, Android]


SaladinДата: Воскресенье, 10 Июня 2012, 14:06 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Для таких вещей придумали массивы. И не обязательно их делать глобальными.
указатель_на обьект.переменная

Quote (MadMax)
рисую спрайт,а потом условие. в итоге ни спрайта объекта, ни из условия.

Без кода я бессилен.


Анбаннэд. Хэлоу эгин =)
MadMaxДата: Суббота, 16 Июня 2012, 07:35 | Сообщение # 7
\o
Сейчас нет на сайте
Quote (Saladin)
Без кода я бессилен.

событие draw
Code
draw_sprite(spr_player,0,x,y)  

if DRAW == true    
      {  
      draw_sprite(spr_lol,0,300,300)  
      }

Добавлено (16.06.2012, 07:35)
---------------------------------------------
n=path_add()
path_add_point(n,x,y,100)
path_add_point(n,x1,y1,100)
path_start(n,speed_var,0,0)

использую так. но обьект должен останавливаться, а он назад перемещается в первую точку


[Gamiron #10] Prison Break
[2D] Revenge [iOS, Android]


GameMixДата: Суббота, 16 Июня 2012, 08:26 | Сообщение # 8
старожил
Сейчас нет на сайте
MadMax, нужно сделать путь незамкнутым:
Code
path_set_closed(n,false)


Steel Standoff - 2D аркада.
Мои статьи
MadMaxДата: Суббота, 16 Июня 2012, 11:14 | Сообщение # 9
\o
Сейчас нет на сайте
еще что то не получается к виду прикрепить объект. вот так делаю
Code
instance_create(view_xview[0]+10,view_yview[0]+500,o_menu_back)
instance_create(view_xview[0]+700,view_yview[0]+500,o_menu_next)

это част интерфейса, при передвижении вида, интерфейс должен не двигаться. вроде делаю как надо


[Gamiron #10] Prison Break
[2D] Revenge [iOS, Android]


GameMixДата: Суббота, 16 Июня 2012, 11:53 | Сообщение # 10
старожил
Сейчас нет на сайте
MadMax, поиск тебе поможет. Аналогичная тема, причем не успевшая "утонуть".

Steel Standoff - 2D аркада.
Мои статьи
  • Страница 1 из 1
  • 1
Поиск:

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