2016-05-20 3 views
0

У меня есть obj_roulette, который содержит 4 подрамника, с value 2-5 и image_number 0-3. Значение получается из рулетки, хранящейся как var global.roulette.Game Maker - Проверка столкновения с субимагами

Затем, я делаю много obj_meteorite, в котором также содержатся 4 подраздела, икру сверху с random x value и random image_number. Игрок может снимать их с помощью щелчка левой кнопкой мыши.

Это то, что я хочу:

If image_number obj_roulette is 0, and player shoot obj_meteorite with image_number 0, score +10. If image_number obj_roulette is 0, and player shoot obj_meteorite with image_number 1, score -10.

Я не знаю, как проверить столкновение между mouse_x/mouse_y и объектом image_number, и как соответствовать obj_rouletteimage_number и obj_meteoriteimage_number.

Используется ли проверка столкновения? Если это да, то, возможно, примеры этих ссылок могут помочь: link 1 link 2

Пожалуйста, объясните свой ответ. Благодарю.

ответ

0

Я предполагаю, что это та игра, в которой вы нажимаете мышью и попадаете именно туда, где была нажата мышь. И как я понимаю это из вашего вопроса. Если щелкнуть мышью, и obj_roulette obj_meteorite obj_roulette будет выглядеть так же, как obj_meteorite, вы хотите добавить 10 баллов. Если нет, вы хотите вычесть 10 баллов. И вам нужна помощь в преобразовании вашего псевдокода в gml.

// Check if obj_meteorite was clicked 
if (mouse_check_button_released(mb_left) && position_meeting(mouse_x, mouse_y, obj_meteorite)) 
{ 
    // Check wheter or not obj_meteorite's and obj_roulette's image_index is the same 
    if (obj_meteorite.image_index == obj_roulette.image_index) 
    { 
     // Add 10 to the score 
     score += 10; 
    } 
    else 
    { 
     // Subtract 10 from the score 
     score -= 10; 
    } 
} 

Если это не то, что вы хотите, я предлагаю отредактировать ваш вопрос, чтобы сделать его более понятным. Предпочтительно коротко объясните, что на самом деле ваша игра.

+0

Я пробую ваш код и немного меняю его. 'if (obj_meteorite.image_index == obj_roulette.image_index)' Но, в результате, код не проверяет щелчок мышью. Итак, даже если я просто нависаю над метеоритом, оценка меняется. И, оценка - минус. –

+0

Ах, просто поставьте контрольную кнопку мыши. Я редактировал код выше. И вы хотели, чтобы он отвлекал 10, если image_index был 1? –

+0

Во-первых, где я должен помещать ваш код? В событии шага obj_meteorite? Во-вторых, ваш код успешно проверяет щелчки мыши, но оценка по-прежнему минус. И иногда оценка уменьшается случайным числом, не всегда 10, но иногда оценка не изменяется. В-третьих, у вас есть недоразумение. Я хочу, если результат image_index в рулетке будет таким же, как и с кликом meteorite image_index, наберите +10, если он отличается, счет -10. Вот почему я изменил ваш код в последний раз –