Результаты поиска
| |
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 |
|
| |
|