Разработка и ромхакинг > Разработка игр
Game Maker обсуждение и хелп
<< < (8/22) > >>
Teffycom:
Kostey D., спасибо, все работает)
Segaman:
Люди, а как платформер сделать, чтоб можно было по кривым порхностям ходить. например по диагонали
Kostey D.:
Лично помочь не могу, но у меня на ХД есть несколько примеров, только у всех у них проблема есть небольшая - когда спускаешься, игрок как бы "падает" слегка. Я не сравнивал их, поэтому не могу гарантировать, что это лучший вариант, но тем не менее смотри в аттаче и отпишись когда скачаешь - я удалю, а то не хорошо чужую работу так выкладывать.
Segaman:

--- Цитата: Segaman от 08 Октябрь 2009, 00:57:28 ---люди, кто знает, как пользоваться surface, и как их рисовать?


--- Конец цитаты ---

--- Цитата: Kostey D. от 08 Октябрь 2009, 04:02:12 ---Лично не знаю, не пробовал никогда, но в хелпе есть все функции связанные с ними, в том числе и draw, только там примечания ещё надо почитать.
В хелпе - Game Maker Language - Game Graphics - Drawing Surfaces

--- Конец цитаты ---
Я имел ввиду, как их редактировать в реальном времени. мне надо создать большую поверхность, прорисовать её последовательностью спрайтов и рисовать выбранную часть в окне.
Kostey D.:
Я только что прочитал хелп, попытаюсь набрасать алгоритм не тестируя



--- Код: ---img=surface_create(w,h)
surface_set_target(img)
//по идее, всё последующее рисуется на сёрфасе

//x и у должны быть числами скорее всего
draw_sprite(x,y,subimg,sprite1)
draw_sprite(x,y,subimg,sprite2)
draw_sprite(x,y,subimg,sprite3)

surface_reset_target()

//это уже рисует сам сёрфейс, все draw десйствия уже рисуются на экране
draw_surface(img,x,y)
//или draw_surface_general(id,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha)

//чтобы сохранить изображение можно использовать
//surface_save(id,fname), а потом грузить как картинку и рисовать
--- Конец кода ---

Возможно всё до draw_surface(img,x,y) можно сделать в креэйте или другом эвенте, чтобы был фиксированный эффект. Думаю сначала можно потестировать код в драве, а потом пытаться в креэйте. Сохранять скриншот сёрфэйса и обновлять копию на ходу тоже может быть хорошей альтернативой: типа хранить спрайт как скриншот последнего сёрфейса и на нажатие кнопки добавлять этот спрайт в драв сёрфейса + новый спрайт поверх - таким образом не надо будет держать позиции спрайтов, потому что x и y дожны от куда-то браться. Если так не понятно, можешь глянуть surface_copy(destination,x,y,source) так даже лучше будет ибо не надо сохранять файл и загружать его.
Segaman:
огромное спасибо.
в жизни бы недогадался :D
Segaman:

--- Цитата: Kostey D. от 01 Ноябрь 2009, 15:10:23 ---Я предполагаю, что кнопка проверяется через скрипт в степе подобным макаром.


--- Код: ---if mouse_x>100
if mouse_x<200
if mouse_y>50
if mouse_y<100
{
sound_play(sound1)
some_action()
}
--- Конец кода ---


тогда в креэйте создай переменную ccc
ccc=0


теперь степ становиться чем-то вроде


--- Код: ---if ccc>-10
ccc-=1

if mouse_x>100
if mouse_x<200
if mouse_y>50
if mouse_y<100
{

if ccc<1
     {
     sound_play(sound1)
     }

ccc=60    //2 секунды

some_action()
}

--- Конец кода ---

--- Конец цитаты ---
попробовал я код такого тима. не помогает
есть что- нибудь ещё на примете?

Добавлено позже:

--- Цитата: Cool-Spot от 29 Октябрь 2009, 08:42:48 ---Нельзя использовать скрипты, пути, размер комнаты строго по размеру экрана. Ссылка нужна?

--- Конец цитаты ---
А тексты в переменных вида

--- Код: ---global.code[46]="draw_text(global.arg[0],global.arg[1],global.arg[2])"
--- Конец кода ---
он держит?
Kostey D.:

--- Цитата: Segaman ---попробовал я код такого тима. не помогает
--- Конец цитаты ---
там порядок действия важен, если строчка выше/ниже, логика уже не так работать будет.

Самый верный вариант иметь переменную, 1 или 0, если 0 - обрабатывать скрипт, если 1 - скрипт был обработан и больше работать не должен. Если курсор не на кнопке - ставить 0.
Можешь хотя бы пример из своего скрипта скинуть, одну и ту же вещь каждый может делать по-своему разными способами, и ещё бывают какие-то осложнения, которые могут сделать тот или иной код неподходящим в конкретной ситуации.
Segaman:
Люди! кто знает почему, когда я создаю поверхность(surface) после создания и нарисования другой поверхности она жуётся и неподдаётся нормальной прорисовке? вместо этого она очень неплохо смешивается с предыдущей, да ещё и искажается, хотя цель рисования я сбросил. вообщем обьясните, как их создавать, удалять и как безопасно их рисовать
Blood:
Доброго времени суток.

Я недавно задумал сделать небольшую игрушку под впечатлением от двух произведений про людей с способностями : Герои и Тёмнее Чёрного ( Darker Than Black).

Я решил, что делать сингл-плеерную игру нет смысла, а потому сделал мультиплеер. Но опять же, я совершенно не представляю, в каком жанре должна быть игра, а потому пока-что сделал обычный Deathmatch в стиле CS.

Суть игры - в небольшой комнате-лабиринте с видом сверху можно ходить и стрелять. Пули бесконечны, всего один тип патрона.

НО!
Каждому случайным образом даётся одна из 8 суперспособностей. Описание их ниже.
После смерти и респауна способность меняется. У каждой свои достоинства и недостатки, способность тратит энергию. Нет энергии - нет способности, но энергия со временем восстанавливается. Так что будьте аккуратны.
Описание Способностей :

--- Цитата ---Все, абсолютно все они активируются/деактивируются или используются правой кнопкой мыши.
Суперскорость : некоторое время вы можете бегать с большой скоростью, активировав силу. Правой кнопкой мыши она и выключатеся. На суперскорости легче уворачиваться от пуль, но пока конкретного смысла она не несёт - аптечек-то ещё нет.

Невидимость : ну тут всё понятно. Включается и выключается правой кнопкой мыши. Вы себя видите, остальные вас не видят. Но если вас заморозят или попадут огнём - держитесь.

Телепортация : по нажатию правой кнопки мыши вас телепортирует в точку прицела. Единственная способность, позволяющяя оказаться в недосягаемых отделах локации.

Регенерация : заживляет вас, что довольно полезно против обычных пуль. Но от суперсил это вас не спасёт.

Пирокинез : стерляете мощными огненными зарядами, те мало того что наносят нехилый урон, так после них некоторое время противник горит, что продолжает наносить ему урон или просто ЖЕЧЬ! ;)

Заморозка : Ну тут всё понятно. Аналог Пирокинеза, только заряды ледяные и потому на время замораживают врага.

Телекинез : в точке, куда вы целитесь возникает ваш телекенетический импульс, которые останавливает в воздухе все пули и снаряды и делает их неопасными для вас. Весьма полезно в некоторых ситуациях.

Электричество : в месте вашего прицела возникают весёлые молнии, которые делают врагу весьма больно, отключая его способность (если та включена) и снижая скорость. (не действует на людей с такой же способностью)
--- Конец цитаты ---
-----------------------------------------------------------------------------
Архив, тест 2| Скачать
-----------------------------------------------------------------------------

Распакуйте архив в любую папку. В нём два exe-файла - Сервер и сама игра. Один из игроков запускает у себя сервер, тот включается и говорит ему IP, по которому к этому серверу можно законнектиться. После чего этот айпи можно сказать другим игрокам, те запускают саму игру, и коннектятся к нему. Кроме того самому "хозяину сервера" нужно запустить ещё и приложение и самому к себе приконнектится.

Фаерволы и Антивирусы могут запрещать работу приложению, сделайте исключение. Это не вирусы, а просто неизвестные ему приложения требующие сетевого доступа.

Максимальное количество игроков : 20
Внимание : зачастую из-за запущенного сервера у вас в приложении может упасть FPS, те кто держит сервер, постарайтесь закрыть все лишние приложения, в том числе и те что связаны с интернетом.

Ах да, совсем забыл.
Управление :

--- Цитата ---WASD - перемещение.
Мышь - движение прицела и поворот игрока. Чтобы вам было понятнее, нажав кнопку W игрок всегда бежит к точке прицела, а не просто вверх. А нажав S он побежит назад от прицела. В общем, разберётесь.
Левая кнопка мыши - стрелять простыми бесконечными пулями.
Правая кнопка мыши - использовать Способности.
shift - вход/выход из режима чата.

--- Конец цитаты ---
Команды для сервера :

--- Цитата ---pm Nickname text - отправить игроку с ником Nickname определённый text. (Там именно пробелы, а не подчёркивания)
kick Nickname - кикнуть определённого игрока.
ipkick 127.0.0.1 - кикнуть игрока с IP 127.0.0.1 (для случаев, когда по нику кикнуть не удаётся).

--- Конец цитаты ---
Вот собственно и всё. Оставляю эту бету на ваш суд. ;)

О всех ошибках, странностях и ваших предложениях докалывайте сюда, я собираюсь модернизировать игру шаг за шагом, делать разделение на команды "Героев и Злодеев", чтобы игра стала больше напоминать CS.
Киба:
Blood, незнаю, только у меня так или так задумано но стрейф инвертирован.
А вообще молодец. У меня мозга не хватило разобраться с 39.dll. Я тоже хотел сетевой шутер замутить на базе этого движка.
может ты исходник мне покажешь для ознакомления?
Blood:
Киба, в следующей версии я сделаю настройки управления.

Разумеется, о чём вопрос :
Вот исходник от которого я отталкивался. Правда функции чата, и пули пришлось додумывать самому, но это совсем не трудно.

http://depositfiles.com/files/ir56wg4fw
Киба:
Blood, во во, я от него же отталкивался но что то у меня не срослось...
Ладно как нибудь ещё поковыряю. Спасиб.
Blood:
Проверь ЛС. Думаю, мы сможем договориться.
Segaman:
Люди, посоветуйте длл-ку для проигрывания звука. желательно с такими функциями как паннинг, громкость, пауза и прыжок на позицию. как saudio, ток там 2 первых вышеперечисленных функций нет
NuM:
Blood, по нету походу в любом случае тормозить будет, если тсп юзать
Sonic13:
КТО НИБУДЬ СКИНЬТЕ ИГРУ НА ЛАЙТ ВЕРСИЮ

Добавлено позже:
ПЛИЗ
Kostey D.:
Sonic13,
В самом ГМ есть примеры в папке Examples, ищи эту папку куда ты устанавливал игру, там как минимум hit the ball должен на лайт идти.
Segaman:
Люди! а как сделать так, чтобы пути, с разными растояниями, проходили одновременно? Всмысле, у меня 2-е точки должны придти из начала в конец одновременно, учитывая, что расстояние, которое им следует пройти, разное.
NuM:
расчитывай скорость в зависимости от длины пути
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии