А общем , я хочу сделать лес с разными деревьями в нем при помощи одного объекта. Проблема в том , что деревья все разные , но можно сделать случайный спрайт , но тогда при каждом начале игры , этот спрайт будет случайным , а нужно чтобы всегда был один и тот же.(Чтобы лес создался случайным , но остался одним и тем же всегда) Как это сделать? (Надеюсь поймете) И нужно , чтобы все применили свой спрайт мгновенно , в самом начале.
NothingGame, а также есть функции , которые умеют читать число всех экземпляров в комнате , какого-нить объекта.
Добавлено (06.08.2013, 20:14) --------------------------------------------- NothingGame, а также есть функции , которые умеют читать число всех экземпляров в комнате , какого-нить объекта.
xD , я почти всю игру переделал , чтобы у меня не лагало , и теперь не лагает - значит оно того стоило=) Уменьши эффекты , удаляй ненужные объекты , уменьши количество объектов . Если идут скачки то-это уже писец. Игра должна идти под цп 20-30.40- это предел .Если больше - это плохо. Самая жрущая строка - if distance to object .
dima9595, аниме клевое ,а делаю я трпг с огромным количеством мобов , и 10 уникальными игровыми персонажами (по 1-2 будет). Там есть класс "хантер" то есть "охотник". Умеют средне стрелять и ставить ловушки на мобов.
Запихни это в блок ниже! if shoot=1{ bul=Instance_create(x,y,Название объекта выстрела!) bul.rotate=rotate shoot=0} if shoot=0 {timer+=1 if timer=90 {shoot=1 timer=0} }
В общем решил я сделать ловушки для хантера. 2 удались , а вот 3 не получается=( При попадании игрока на ловушку , он останавливается и его ход завершается и он получает урон. Потом каждые 30 пунктов она наносит урон всем в радиусе , а потом уничтожается ,и каждый раз ее урон снижается на 9 процентов. После срабатывания создатель ловушки получает опыт.
Вот ее примерный код , который у меня нифига не получился=(
if collision_circle(x,y,2,global.Sunit,0,0) and !collision_circle(x,y,3,hunter,0,0) and bang=0 { bang=1 with global.Sunit{path_end() global.Sunit.x=global.Lovuska.x global.Sunit.y=global.Lovuska.y scr_EndTurn() UnitSpeed-=100 effect_create_above(ef_explosion,x,y,2, c_gray ) }}
if global.Phase1=1 and bang=1{ timer+=1 timer2+=1 if timer=30{ timer=0 effect_create_above(ef_explosion,x,y,2, c_green) damage-=damage*0.09 global.Lovuska=id global.Uron=damage with all{ if point_distance(x,y,global.Lovuska.x,global.Lovuska.y)<100{ Uron=floor(global.Uron) Uron+=floor(random_range(Uron*0.1,-Uron*0.1)) global.HP[O]-=Uron draw_text_up(x-32,y-32,-Uron,c_black,c_green,damage_font) if global.HP[O]<0 {global.HP[O]=0} if global.HP[O]=0{global.Death=1 global.Death[O]=1 }
with hunter { if global.Death=1 {Exp+=50} exp+=floor(random_range(4,10)) global.Exp[O]+=Exp draw_text_up(x-30,y+15,"+exp:"+string(exp),c_black,c_white,font4) Exp=0
А вот код удачных 2 двух ловушек: Простой урон и стоп:
_create_ev=' hunter=global.Sunit damage=global.AT[global.O]*1.5 name=global.Name[global.O] ' _step_ev=' if collision_circle(x,y,2,global.Sunit,0,0) and !collision_circle(x,y,3,hunter,0,0) { global.Lovuska=id
with global.Sunit{ Uron=global.Lovuska.damage-global.DF[O] Uron+=floor(random_range Uron*0.1,-Uron*0.1)) global.HP[O]-=Uron draw_text_up(x-32,y-32,Uron,c_white,c_red,damage_font) path_end() global.Sunit.x=global.Lovuska.x global.Sunit.y=global.Lovuska.y scr_EndTurn() if global.HP[O]<0 global.HP[O]=0 if global.HP[O]=0{global.Death=1 global.Death[O]=1 } UnitSpeed-=100 } effect_create_above(ef_explosion,x,y,2, c_gray )
with hunter { if global.Death=1 {exp+=50} exp+=floor(random_range(15,30)) global.Exp[O]+=exp draw_text_up(x-30,y+15,"+exp:"+string(exp),c_black,c_white,font4) exp=0
if global.Phase1=1 and bang=1{ timer+=1 timer2+=1 if timer=30{ timer=0 effect_create_above(ef_explosion,x,y,2, c_green) damage-=damage*0.09 global.Lovuska=id global.Uron=damage with all{if !O=0 and point_distance(x,y,global.Lovuska.x,global.Lovuska.y)<100{ Uron=floor(global.Uron) Uron+=floor(random_range(Uron*0.1,-Uron*0.1)) global.HP[O]-=Uron draw_text_up(x-32,y-32,-Uron,c_black,c_green,damage_font) if global.HP[O]<0 {global.HP[O]=0} if global.HP[O]=0{global.Death=1 global.Death[O]=1 }
hotkey, инстенс крейт мувинга в гмл нету. не Instance_create(x,y,bullet) а instance_create(x,y,bullet) Случайно ошибся , все функции гмл пишутся с маленькой буквы.
Добавлено (05.08.2013, 09:04) --------------------------------------------- hotkey, У Gamemix , пример довольно понятный если разобраться. Особенно с комментариями.
Правда я не врубился , что такое create move instance Oo Я подобного в коде не видел. Вот она - http://SSMaker.ru/d377f3c1/
Нету кода , есть только вот такая фигнюшка из списка.
Цитата
Нет оно в кнопке!Create move instance Там есть значение direction в нем прописано range
Там стоит не range, а rotate http://SSMaker.ru/73a3df74/
Точно , ну пиши тогда rotate
Цитата
Это всё равно не понял...
Придется тебе понять это , а дальше будет еще труднее. В некоторых исходниках коды на две страницы , на каждый объект и с кучей массивов - вот это вообще уже писец , а то ,что я пишу - это еще легкотня.
Цитата (hotkey)
Кстати, если убрать анимацию бега, во время поворотов, то объект не застревает в блоках...
Значит дело в маске , но какого-то хрена она не сработала у меня....