Пятница, 03 Мая 2024, 23:04

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » Krosos [407]
Результаты поиска
KrososДата: Четверг, 18 Июля 2013, 16:09 | Сообщение # 321 | Тема: Последовательность
постоянный участник
Сейчас нет на сайте
Вот есть файл (обрезал все лишнее)
Я сделал последовательность кнопками(для проверки кода)
И есть 4 кнопки действий
1 - высчитать дальность
2 - создать точки М
3 - удалить не подходящие точки М
4 - Начать движение
Как сделать эту последовательность в степе?
Я делал с алармами , но получалась каша и скрипт постоянно тупил , то он дальность не успевал высчитать , то он объекты М не все создал и т.д.
А все из-за того что нету нормальной последовательности=(
Есть ли какие нибудь еще способы сделать последовательность?
Кроме If X=1{X=0} - она недостаточная

Primer.gmk

Добавлено (18.07.2013, 16:09)
---------------------------------------------
Все ,я решил эту проблему=)
Я просто сделал в самом начале хода 5 алармов.
10 30 60 90 и т.д
Просто я подумал - это не мешает друг другу ,и все идет хорошо=)





Мой проект


Сообщение отредактировал Krosos - Среда, 17 Июля 2013, 23:01
KrososДата: Четверг, 18 Июля 2013, 13:02 | Сообщение # 322 | Тема: Вопрос - Ответ (Game Maker)
постоянный участник
Сейчас нет на сайте
Ну если проект особо крутой .... а пофиг , все знают , как у нас в России покупают игры , поэтому лучше сразу делать игру бесплатной.
А если игра бесплатная , то всем пофиг , главное чтобы ты не зарабатывал за счет других.





Мой проект


Сообщение отредактировал Krosos - Четверг, 18 Июля 2013, 13:03
KrososДата: Четверг, 18 Июля 2013, 13:00 | Сообщение # 323 | Тема: Движение врага в TDS игре.
постоянный участник
Сейчас нет на сайте
if Moving=1{
if mp_grid_path(global.Moving_mpgrid,path_combat,x,yAA.x,AA.y,false)= true //Если такой путь возможен
and path_get_number(path_combat)<=10 and path_get_number(path_combat)>1 //Если дальность пути 10 и больше 1
{path_start(path_combat,8,0,1) endpath=1 Moving=0}} Начать путь
А в end_path:
if endpath=1{
endpath=0
Moving=1
}
If point_distance(AA)<100 {path_end() //Если от игрока на расстоянии 200 то остановиться
endpath=1
}

АА- это игрок
path_combat- пустой патч созданный заранее
global.Moving_mpgrid - сетка созданная заранее в create
global.Moving_mpgrid= mp_grid_create(0,0,floor((room_width)/32),floor((room_height)/32),32,32);





Мой проект
KrososДата: Среда, 17 Июля 2013, 17:37 | Сообщение # 324 | Тема: Gravity
постоянный участник
Сейчас нет на сайте
valeranagato,
if bubu=1{
if place_free(x,y+1){gravity=0.8}else{gravity=0}gravity_direction=270

if vspeed>27{vspeed=27} }

if bubu=0 {
if place_free(x,y+1){gravity=0.8}else{gravity=0}gravity_direction=90

if vspeed<27{vspeed=-27} }

Вот так нужно , потому что гравитация в степе постоянно равна 270 и никак не изменится если не дать ей условие существования.
Например переменная бубу , если эта переменная равна 1 то гравитация будет 270 , если равна нулю то гравитацию можно будет поменять , но пока гравитация останется на 270.





Мой проект
KrososДата: Среда, 17 Июля 2013, 16:20 | Сообщение # 325 | Тема: Gravity
постоянный участник
Сейчас нет на сайте
Наверное опять виноват speed от него постоянно одни проблемы
Попробуй поставить его на 1.
Если ничего не произойдет-значит проблема в твоем коде , а если произойдет- значит виноват он.
Возможно происходит фиговая проверка коализий , нужно делать все в согласии с сеткой.Например сетка равна 64 , то скорость ставить на 8, 16 , 32 или 64.Если 50 то 25 , 12.5 , 6.25, 3.125 .





Мой проект


Сообщение отредактировал Krosos - Среда, 17 Июля 2013, 16:21
KrososДата: Среда, 17 Июля 2013, 12:03 | Сообщение # 326 | Тема: проблема с Худом
постоянный участник
Сейчас нет на сайте
Долго ломал голову....
Потом оказалось , что этот код в родителе не работает
hud = instance_create(x,y-16,obj_hud);
hud.target = id;

Спасибо , теперь все идет отлично=)





Мой проект


Сообщение отредактировал Krosos - Понедельник, 29 Июля 2013, 22:34
KrososДата: Среда, 17 Июля 2013, 01:38 | Сообщение # 327 | Тема: Ошибка
постоянный участник
Сейчас нет на сайте
Неизвестная переменная weapon в степ евенте объекта ган.
Объяви переменную weapon=0 в create
Или объяви все неизвестные переменные на 0 в настройках игры.





Мой проект
KrososДата: Вторник, 16 Июля 2013, 17:24 | Сообщение # 328 | Тема: Создание объекта
постоянный участник
Сейчас нет на сайте
Вот
Пример уровней.gmk





Мой проект
KrososДата: Вторник, 16 Июля 2013, 16:23 | Сообщение # 329 | Тема: Создание объекта
постоянный участник
Сейчас нет на сайте
Проблема в том , что создается дохрена объектов.
Я решаю эту проблему так:
if X=1{X=0 instance_create()}
Ну вот примерно так.

А зачем его создавать?Можно просто его переместить
Ну например если мы можем повысить свой уровень { x=чему-то там y= чему-то там }else{x=-100 y=-100}





Мой проект


Сообщение отредактировал Krosos - Вторник, 16 Июля 2013, 16:24
KrososДата: Вторник, 16 Июля 2013, 15:15 | Сообщение # 330 | Тема: проблема с Худом
постоянный участник
Сейчас нет на сайте
Код
if collision_rectangle(id.x-31.99,id.y-31.99,id.x+31.99,id.y+31.99,global.currenttile,0,1) {
global.O2=O
global.Hud2Show=1   
if Enemy=1{global.EnemyHud2=1}else{global.EnemyHud2=0}
}else{global.Hud2Show=0}

Ну тут наверное и так понятно - худ при наведении появляется ,а иначе исчезает , но есть проблема.
Этот скрипт находится в родителе большого количества объектов , и скрипт действителен только для одного из них.
То есть ХудШоу=0 запрещает другим принять значение ХудШоу=1.
Что тут можно сделать?





Мой проект


Сообщение отредактировал Krosos - Вторник, 16 Июля 2013, 15:17
KrososДата: Вторник, 16 Июля 2013, 12:46 | Сообщение # 331 | Тема: Вопрос - Ответ (Game Maker)
постоянный участник
Сейчас нет на сайте
HaGe, это мгновенное перемещение
arkady,
Код

Глобальное событие мышки:
if mp_grid_path(global.Moving_mpgrid,path_combat,x+0,y+0,mouse_x,mouse_y,false)= true //Если мы можем совершить вот такой путь  то...
         
     {
         path_start(path_combat,10,0,false)      //то мы его совершаем.
      }


global.Moving_mpgrid -созданная сетка (Создать в create)global.Moving_mpgrid= mp_grid_create(0,0,floor((room_width)/64),floor((room_height)/64),64,64);
path_combat-созданый пустой патч(создать в path)





Мой проект
KrososДата: Воскресенье, 14 Июля 2013, 15:33 | Сообщение # 332 | Тема: Ограниченый путь
постоянный участник
Сейчас нет на сайте
Я пробовал его тормозить - он зависает между ячейками , а это не допустимо.
=(

Добавлено (14.07.2013, 14:33)
---------------------------------------------
В общем вот:
Код
if mp_grid_path(global.Moving_mpgrid,path_combat,x+0,y+0,instance_nearest(x,y,AA).x,instance_nearest(x,y,AA).y,false)= true and path_get_number(path_combat)>global.SP[O]
{D=path_get_number(path_combat)-global.SP[O]
path_start(path_combat,8,0,1)     
if global.SP[O]=D{path_end()}
endpath2=1

И как я говорил , игрок зависает между последними точками.=(

. . . . . . P. (Вот как-то так)

Добавлено (14.07.2013, 15:02)
---------------------------------------------
Все равно хрень...
При разных значениях global.SP[O] получается...назовем это сбой.
То есть при 3 все нормально , тормозит на середине ,а при при 4 или 5 начинается полный писец , а сетка вообще никак не реагирует...

Есть еще одно решение , но я еще пока не думаю, как это реализовать.
Сделать переход через метку , как на картинке.
<a class="link" href="/go?http://www.fotolink.su/v.php?id=35ff803d4250b8098469366353611df3" title="http://www.fotolink.su/v.php?id=35ff803d4250b8098469366353611df3" rel="nofollow" target="_blank">

1218x852(2.97 MB)</a>
хостинг изображений

Добавлено (14.07.2013, 15:33)
---------------------------------------------
В общем я решил эту проблему......

Код
if mp_grid_path(global.Moving_mpgrid,AA_Path,x,y,instance_nearest(x,y,AA).x,instance_nearest(x,y,AA).y,false)=true and path_get_number(AA_Path)=global.MovingRange +1
and mp_grid_path(global.Moving_mpgrid,path_combat,x,y,global.Sunit.x,global.Sunit.y,false)=true and path_get_number(path_combat)=global.SP[O]
{instance_create(x,y,M)
}
global.CreateMovingPoint=0
global.MovingPoint=1


Вот этим кодом создается точка М.В нужных мне точках

А вот этим кодом:
Код
if mp_grid_path(global.Moving_mpgrid,path_combat,x,y,instance_nearest(x,y,AA).x,instance_nearest(x,y,AA).y,false)= true and path_get_number(path_combat)>global.SP[O]
{global.MovingRange=path_get_number(path_combat)-global.SP[O]
global.CreateMovingPoint=1}if global.MovingPoint=1{
if mp_grid_path(global.Moving_mpgrid,path_combat,x,y,instance_nearest(x,y,M).x,instance_nearest(x,y,M).y,false)= true {
path_start(path_combat,8,0,1)
endpath2=1
}

все получается вон, как на том скрине.





Мой проект


Сообщение отредактировал Krosos - Воскресенье, 14 Июля 2013, 15:34
KrososДата: Воскресенье, 14 Июля 2013, 01:34 | Сообщение # 333 | Тема: Движение по пути
постоянный участник
Сейчас нет на сайте
Да , способ обхода препятствий немного меняется вроде.
path_get_number - все дело в нем ,это уж точно... global.SP[O] всегда равен целым числам-он является количеством возможных шагов, то есть точек в пути.
Код проверяет возможность пути и чтобы было достаточно шагов , чтобы его пройти.





Мой проект
KrososДата: Суббота, 13 Июля 2013, 21:25 | Сообщение # 334 | Тема: Движение по пути
постоянный участник
Сейчас нет на сайте
Не , это тоже не вариант...
Я заметил , что всем моим путям вообще пофиг какие там значения у сетки.O_o

Добавлено (13.07.2013, 21:13)
---------------------------------------------
Вот этот код идет отлично!

Код
if global.Phase2=1 and global.EnemyTurn=0 and global.Unit[O]=1 and global.currenttile.show= true and distance_to_object(global.currenttile)>0
{
     if mp_grid_path(global.Moving_mpgrid,path_combat,x+0,y+0,global.currenttile.x,global.currenttile.y,false)= true
      
      
     {
         path_start(path_combat,10,0,false)       
         endpath=1
         global.Moving=1}

Хотя разницы в них особой и нету...

Добавлено (13.07.2013, 21:16)
---------------------------------------------
Точно , нашел проблему...
and path_get_number(path_combat)<=global.SP[O]
Вот из-за этого патч и загибается , но блин ,выбросить эту часть тоже нельзя...(Безысходность)

Добавлено (13.07.2013, 21:25)
---------------------------------------------
Ладно , тогда пуская так и будет , игровой процесс это вроде особо не портит.





Мой проект
KrososДата: Суббота, 13 Июля 2013, 17:20 | Сообщение # 335 | Тема: Движение по пути
постоянный участник
Сейчас нет на сайте
Верхнее условие изменять нельзя.
Сначала проверяется наличие пути к ближайшим координатам объекта АА ,а потом его дальность ,и если она меньше числа СП , то начать путь.





Мой проект
KrososДата: Суббота, 13 Июля 2013, 11:35 | Сообщение # 336 | Тема: Движение по пути
постоянный участник
Сейчас нет на сайте
Столкнулся с такой проблемой , которая уже задолбала:
Код
if mp_grid_path(global.Moving_mpgrid,path_combat,x+0,y+0,instance_nearest(x,y,AA).x,instance_nearest(x,y,AA).y,false)= true and path_get_number(path_attack)<=global.SP[O]
     {   path_start(path_combat,10,0,1)       
         endpath=1
         global.Moving=1}

Персонаж создает путь и движется по нему , но он движется не по прямым линиям, а на поворотах плавно заворачивает.
Как исправить это?(Сделать движение по прямым линям)





Мой проект
KrososДата: Четверг, 11 Июля 2013, 10:31 | Сообщение # 337 | Тема: Глобальное изменение спрайта!
постоянный участник
Сейчас нет на сайте
Потом задать вопрос к ней в любой комнате
if global.переменная = 1 {То вот такое действие}else{А если она равна другому числу (то есть 0 ) , то вот тут действие}
Все же лучше начать со справки.Не обязательно сразу читать ее всю, надо читать то , что на данный момент нужно.
Справка

Добавлено (11.07.2013, 10:31)
---------------------------------------------
в Draw :
if глобальная переменная= 1 {draw_sprite_ext((Название спрайта),(кадр спрайта),x,y,1,1,0,c_white,image_alpha) }





Мой проект


Сообщение отредактировал Krosos - Четверг, 11 Июля 2013, 10:40
KrososДата: Четверг, 11 Июля 2013, 08:41 | Сообщение # 338 | Тема: Глобальное изменение спрайта!
постоянный участник
Сейчас нет на сайте
global.переменная или постоянные объекты-действуют на все комнаты.




Мой проект
KrososДата: Среда, 10 Июля 2013, 17:47 | Сообщение # 339 | Тема: Вопрос - Ответ (Game Maker)
постоянный участник
Сейчас нет на сайте
Anthem, draw_arrow(x,y,x2,y2,size) ?

Добавлено (10.07.2013, 17:41)
---------------------------------------------
а нет не то

Добавлено (10.07.2013, 17:47)
---------------------------------------------
А нет , то!Сделай так:
Объект курсор:
Draw:
draw_arrow(x,y,x2,y2,size)
draw_sprite_ext(sprite_index,(Глобальная переменная),x,y,1,1,0,c_white,image_alpha)
image_speed=0
Сделай в спрайте курсора , несколько кадров , с другими курсорами , и когда будет изменяться глобальная переменная будет изменяться курсор.
Например если она равна 0 - будет обычный, если равна 1 - будет второй и.т.д





Мой проект
KrososДата: Среда, 10 Июля 2013, 11:29 | Сообщение # 340 | Тема: Ограниченый путь
постоянный участник
Сейчас нет на сайте
Вот я решил сделать ИИ.
Я научил его : ходить и вставать возле игрока , научил бить , но не удается решить эту проблему:
Код
if global.EPhase3=1 and mp_grid_path(global.Moving_mpgrid,path_combat_check,x,y,instance_nearest(x+0,y+0,AA).x,instance_nearest(x+0,y+0,AA).y,false)=true  and path_get_number(path_combat_check)>=UnitMovement[O] {(Вот здесь что-то должно быть=()}

Проблема в том , что не получается сделать движение к ближайшей метке AA(Особая метка возле игрока , направляющая ИИ) если она вне зоны досягаемости пути.
UnitMovement[O] - количество шагов = от 2 до сколько-угодно.
Как сделать так , чтобы игрок двигался в направление метки AA, сделав всего 6 шагов , когда метка АА находится значительно дальше?





Мой проект


Сообщение отредактировал Krosos - Среда, 10 Июля 2013, 11:39
Форум игроделов » Записи участника » Krosos [407]
Поиск:

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