Среда, 15 Мая 2024, 21:44

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » нужно уничтожение блоков на подобие майнкрафту
нужно уничтожение блоков на подобие майнкрафту
hero564Дата: Четверг, 04 Апреля 2013, 18:43 | Сообщение # 1
Made in Ukraine
Сейчас нет на сайте
пытался делать так:
Код


if global.inv=-1{ //если инвентарь отключен
     if mouse_check_button_pressed(mb_left){ //и нажата ЛКМ
        if distance_to_object(objChar)<64{ //и расстояние от блока до персонажа меньше 64
           destroy=true //разрешаем разрушение блока
        }
     }
}   

if destroy=true{     //если разрушение разрешено,
     bhp-=120/room_speed // то отнимаем у блока хп
}
                      
if mouse_check_button_released(mb_left){ //если клавиша отпущена,
     destroy=false  //то запрещаем разрушение
}

if bhp<=0{   //если жизней у блока менше/рано нулю
      instance_create(x+16,y+16,objIDirt)  //создаем предмет блока
      tile_add(backStone,0,0,64,64,x,y,200) // создаем тайл на месте блока
      instance_destroy() // уничтожаем блок
}

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


Сообщение отредактировал hero564 - Четверг, 04 Апреля 2013, 18:44
LunarPixelДата: Четверг, 04 Апреля 2013, 19:20 | Сообщение # 2
старожил
Сейчас нет на сайте
События нажатия мыши кодом, если не ошибаюсь, носят только глобальный характер. Т.е. твой код срабатывает не для того объекта, на который ты кликаешь, а для всех. Пиши код не в степ, а в события нажатия клавиши мыши, тогда точно будет срабатывать только для того объекта, на который кликаешь. smile

В событие клика мышкой пиши, что-то типа:

Код
if global.inv=-1{  
         if distance_to_object(id)<64{  
            bhp-=120/room_speed
      }  
}    

if bhp<=0{   
       instance_create(x+16,y+16,objIDirt)   
       tile_add(backStone,0,0,64,64,x,y,200)
       instance_destroy()
}


FadeBakerДата: Четверг, 04 Апреля 2013, 19:57 | Сообщение # 3
JavaSE Game Developer
Сейчас нет на сайте
К проверке нажатия кнопки мыши можно было бы еще добавить проверку, находится ли курсор над блоком.
Код
position_meeting(mouse_x, mouse_y, id);


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
hero564Дата: Четверг, 04 Апреля 2013, 23:58 | Сообщение # 4
Made in Ukraine
Сейчас нет на сайте
LunarPixel, Fade, спасибо, помогло
подскажите еще как использовать в событии рисования переменную обьявленную в create(а то так пишет что неизвестная переменная)
zaicev9797Дата: Пятница, 05 Апреля 2013, 12:23 | Сообщение # 5
AbRaKaDaBrA
Сейчас нет на сайте
Цитата (hero564)
обьявленную в create(а то так пишет что неизвестная переменная)

не может быть такого bag


проект Mysterious Space. The losted moment
hero564Дата: Пятница, 05 Апреля 2013, 12:25 | Сообщение # 6
Made in Ukraine
Сейчас нет на сайте
zaicev9797, ну, у меня этот обьект есть дочерним, это может как-то влиять на ситуацию?
zaicev9797Дата: Пятница, 05 Апреля 2013, 12:25 | Сообщение # 7
AbRaKaDaBrA
Сейчас нет на сайте
только если это разные обьекты...... тогда в драв нужно ссыль давать на переменную
напр.

draw_text_там тыры пыры я не помню(x,y,еще чета там,PL.JIZN)


проект Mysterious Space. The losted moment
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » нужно уничтожение блоков на подобие майнкрафту
  • Страница 1 из 1
  • 1
Поиск:

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