Пятница, 29 Марта 2024, 13:12

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Переменная "не существует"...
Переменная "не существует"...
minepecraftДата: Воскресенье, 10 Мая 2015, 11:48 | Сообщение # 1
участник
Сейчас нет на сайте
Ребят,делаю игрушку,вроде все шло на ура,пока не столкнулся с проблемой.
Есть два объекта. o_hero-герой И pzombie-родитель всех зомби.
Герой должен атаковать зомби,при этом отнимая ХП только у данного экземпляра зомби(т.е. ,которого он атакует)
У героя в Global Left Mouse прописано:

if instance_exists(o_hero) //Если герой существует
{
if wea=0 && global.ruki=true && place_meeting(mouse_x,mouse_y,pzombie) && distance_to_object(pzombie)<50 && global.cann=1 /*Оружие=1,оружие руки имеются, и мышь наведена на родителя всех зомби
*/
{
global.cann=0 //Не может бить
alarm[1]=30 //Бить сможет через 30с
{
with(other)
{
hpp-=global.damage-3 //У родителя нет переменной hpp,но у других зомбаков-есть.
blood=irandom_range(0,5) //Потечет ли у зомби кровь
effect_create_above(ef_firework,pzombie.x,pzombie.y,0,c_red) //И создаем эффект псевдо-крови..да-да.кровь-фейерверк
}
}
}
}


Я расписал все подробно,не потому что вы глупы,нет,раз вы взялись помогать-я уверен,вы умные,но на всякий случай,может я что-то не так сделал.
P.S.Если я где-то не так закрыл или раскрыл комментарий,извиняюсь /* но */

Добавлено (10 мая 2015, 11:48)
---------------------------------------------
Ну и проблема,собственно в том,что когда я бью по зомби,то пишет-неизвестная переменная hpp,хотя она объявлена у зомби,не у родителя


EfimovMaxДата: Воскресенье, 10 Мая 2015, 12:16 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Не уверен в правильности - проверить сейчас негде, но думаю, смысл понятен:

Код
if instance_exists(o_hero) //Если герой существует   
     {
     if wea=0 && global.ruki=true && distance_to_object(pzombie)<50 && global.cann=1
        {
        Damaged=instance_place(mouse_x,mouse_y,pzombie)
        global.cann=0
        alarm[1]=30   
        }
     if Damaged!=noone
        {
        with(Damaged)
           {
           hpp-=global.damage-3
           blood=irandom_range(0,5)   
           effect_create_above(ef_firework,pzombie.x,pzombie.y,0,c_red)
           Damaged=noone
           }
        }   
     }


instance_place(x,y,obj) возвращает нам id указанного объекта по указанным координатам. Если такого объекта там нет, то возвратит noone. А переменная Damaged хранит это значение.


Текущий проект: The Experiment ☭

Выпущенные проекты Steam:
Princess.Loot.Pixel.Again
Princess.Loot.Pixel.Again x2
Dungetris


Сообщение отредактировал EfimovMax - Воскресенье, 10 Мая 2015, 12:19
minepecraftДата: Воскресенье, 10 Мая 2015, 12:37 | Сообщение # 3
участник
Сейчас нет на сайте
Спасибо огромное!бегу проверять!

Добавлено (10 мая 2015, 12:27)
---------------------------------------------
Смысл вроде понял)

Добавлено (10 мая 2015, 12:34)
---------------------------------------------
Получилось,но теперь беда,эффект крови почему-то создается при нажатии на зомби,когда я не могу атаковать,то есть global.cann

Добавлено (10 мая 2015, 12:37)
---------------------------------------------
Проблему решил,спасибо ,что направил на верный путь)Лови плюс.Проблему с тем,что эффект крови создается,когда не нужно-решил.Спасибо огромное!


EfimovMaxДата: Воскресенье, 10 Мая 2015, 12:40 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Ну да, всё верно, вот поправочка:
Код

if instance_exists(o_hero) //Если герой существует    
      {  
      if wea=0 && global.ruki=true && distance_to_object(pzombie)<50 && global.cann=1  
         {  
         Damaged=instance_place(mouse_x,mouse_y,pzombie)  
         global.cann=0  
         alarm[1]=30    
         }  
      if Damaged!=noone
         {  
         with(Damaged)  
            {  
            hpp-=global.damage-3  
            blood=irandom_range(0,5)    
            effect_create_above(ef_firework,pzombie.x,pzombie.y,0,c_red)  
            }
         Damaged=noone  
         }    
      }


Текущий проект: The Experiment ☭

Выпущенные проекты Steam:
Princess.Loot.Pixel.Again
Princess.Loot.Pixel.Again x2
Dungetris
minepecraftДата: Воскресенье, 10 Мая 2015, 12:43 | Сообщение # 5
участник
Сейчас нет на сайте
Я проблему решил так:соединил эти два кода в единый.

Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Переменная "не существует"...
  • Страница 1 из 1
  • 1
Поиск:

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