| Разработка и ромхакинг > Разработка игр |
| Game Maker обсуждение и хелп |
| << < (9/22) > >> |
| ALEX_230_VOLT:
подскажите пожалуста как делать эффекты приближения/отдаления отдельных мест комнаты и спрайтов? Иными словами как в играх sega 32x (например Knukles Chatix) и на SNES с её Mode 7 |
| Kostey D.:
У спрайтов легко - image_xscale и image_yscale, если равно 1 то ориганальный размер, 2 - в два раза больше, 0.5 - в два раза меньше. Для прикольных эффектов, можешь потихонбку прибавлять/убавлять значение, скажем на 0.01. С бэкграундом тоже есть подобные функции. Если хочешь увеличить уменьшить кусок спрайта или бэкграунда, самый верный вариант использовать функцию draw_sprite_general(sprite,subimg,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha) draw_background_general(back,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha) для бэкграундов иногда полезно использовать функции тайлов. |
| ALEX_230_VOLT:
Kostey D., спасибо, со српайтами проканало :wow: а вот с задниками чую сложнее будет. щас буду пытатся Добавлено позже: не, что то про бэкграунды не понял. может пример какой покажешь или распишешь что значат параметры? особенно непонятны с1-с4 |
| Segaman:
c1-c4 - это кажется цвета с таким порядком: c1 c2 c4 c3 |
| Kostey D.:
Извиняюсь за опоздание, просто вчера у меня инет вырубило, как раз когда я писал экзамплы. --- Цитата: ALEX_230_VOLT ---особенно непонятны с1-с4 --- Конец цитаты --- Это окраска градиентом с каждой стороны. Многие функции имеют параметр color, просто здесь их целых четыре. Ставь c_white если не хочешь чтобы твой бэкграунд перекрашивался. Сделал два быстрых экзампла для седьмой версии, надеюсь поможет. Файл прикреплён к сообщению. |
| Segaman:
Кто знает, как регить новые форматы файлов и как получать командную строку запуска программы? и ещё что ваапще можно сделать при помощи реестра? |
| Kostey D.:
GM8.0 вышел. Я уже успел зарегить Про версию, т.к. купил седьмую в июле 2009. Надо будет разобраться что такое этот триггер эвент. Да я и так давно отстал от прогресса, всё это время шестую юзал, жаль что без нета не активируется кажись. |
| MASTERMAX:
Нужна помощь или совет, по такой программе: хочу сделать так - чтоб при вводе строки на английском заменялись буквы соответственно этой кодировке: --- Код: ---A - ` B - a C - b D - c E - d F - e G - f H - g I - h J - i K - j L - k M - l N - m O - n P - o Q - p R - q S - r T - s U - t V - u W - v X - w Y - x Z - y --- Конец кода --- есть предложения как такое осуществить? |
| r57shell:
Не game maker но на С++ Фдрух поможет --- Код: ---if(c=='A') c='`' else c=c-'B'+'a'; --- Конец кода --- cдесь c - код символа, 'A' - код символа A... забейте вы на game maker |
| MASTERMAX:
r57shell, на С++ я может и напишу, да вот только пока кроме консольных прожек ничего не напишу :'( а хочется "visual" |
| r57shell:
--- Цитата: MASTERMAX от 07 Февраль 2010, 18:23:59 ---r57shell, на С++ я может и напишу, да вот только пока кроме консольных прожек ничего не напишу :'( а хочется "visual" --- Конец цитаты --- Берёшь создаёшь проект Win32 Application->Hello World и его правишь. Да! именно так всё просто. ) А если хочешь OpenGL то берёшь пример минимальной OpenGL программы копируешь весь исходник (он один). Создаешь Win32 Application->empty и в него добавляешь *.cpp (где * - любое больше всего понравившееся имя, обычно у меня это main.cpp) и вставляешь туда, компилируешь и готово. А вот с DirectХ там чуть посложнее но суть такая же. |
| MASTERMAX:
r57shell, когда знаеш как это делать все просто :) постараюсь написать на С++. Но если кто подскажет с ГМ то тоже не откажусь от помощи;) |
| Kostey D.:
кинь этот код в креэйт. --- Код: ---var str1,str2,count,cr; str1="" str2="" count=0 str1=get_string("enter string using UPPER CASE","") if str1="" exit count=string_length(str1) for (c=1;c<count+1;c+=1) { ch=ord(string_char_at(str1,c)) ch=ch+31 str2=str2+chr(ch) } get_string("your new string",str2) --- Конец кода --- |
| MASTERMAX:
Kostey D., спасиба. А можешь объяснить как ты это сделал? |
| Kostey D.:
--- Цитата: MASTERMAX ---Kostey D., спасиба. А можешь объяснить как ты это сделал? --- Конец цитаты --- var str1,str2,count,cr; //создаём временные переменные, которые после выполнения кода исчезают. Здесь я сделал опечатку, должно быть ch, а не cr, но это никак не влияет на алгоритм. Единственный эффект этой опечатки заключается в том, что переменная ch останется в памяти вместе с объектом. str1="" str2="" count=0 //задаём вид переменных. Только для наглядности, сам я обычно этого не делаю. str1 и str2 - стринги, count - флоатинг намбер. str1=get_string("enter string using UPPER CASE","") //получаем исходный стринг. Пустоту в кавычках можно заменить на что-нибудь дефолтное, например "PLAYER". if str1="" exit //если стринг пуст, прекращаем выполнение кода. count=string_length(str1) //сколько букв в стринге. for (c=1;c<count+1;c+=1) //начало лупа. с - счётчик/номер буквы. c<count+1 - чтобы последняя буква считалась. ch=ord(string_char_at(str1,c)) //функция, аргументом которой является другая функция. string_char_at(str1,c) получает букву из исходного стринга, ord изменяет букву в число аски кода, поэтому переменная ch - число. ch=ch+31 //поскольку все буквы твоей кодировки смещенны на 31 символ, мы смещаем переменную ch на 31. str2=str2+chr(ch) //str2 - твой новый перекодированный стринг. это выражение добавляет букву в конец стринга. Функция chr() превращает число из аски кода в букву. get_string("your new string",str2) //показать пользователю перекодированный текст с возможностью скопировать его. На самом деле этот код очень прост и создаётся с нуля за минуту. |
| ALEX_230_VOLT:
я тут глядя на все эти sega cd интерактивные фильмы подумал "а чем я хуже?" Короче пока вот хочу реализовать систему типа как в Ground Zero Taxes, т.к. что есть статичный фон и переодически вместо него начинает проигрыватся видео с разными действиями (например выбегающим человеком). Так вот как лучше это осуществить? Попробовал делать в виде анимации, но сохраняется анимация из 60 кадров разрешения 640 на 480 (хоть и в jpg) жутко долго, ну и естественно нагрузка на комп большая. Короче как это лучше огранизовать? Может есть возможность простое видео проигрывать, но чтобы не на всё окно программы, а в заданной области (т.к. надо же ещё hud сделать). Короче: как это организовать самым рациональным способом? Добавлено позже: неужели это так сложно оргнанизовать? o_0 почему sega смогла 20 лет тому назад, а сейчас это вызывает проблемы? |
| Segaman:
Я эту проблему решил с помощью длл-ки, проигрывающей видео-ролики прямо в окне игрули. Немогу щас сказать, как называется, так как не за компом. Глянь сюда в раздел с длл-ками |
| ALEX_230_VOLT:
я уже придумал другой способ - делать всё это в виде спрайтов, но только не всего экрана, а только движущейся части. То есть если там анимация как человек выходит из двери то я разделя это всё по кадрам, обрежу весь фон комнаты и оставлю только активную часть. Заодно решу проблему с тем как определять попал игрок или нет :) Добавлено позже: ах да, и подгружать эти спрайты из папки с игрой, а не из самой игры |
| Kostey D.:
--- Цитата: ALEX_230_VOLT ---ах да, и подгружать эти спрайты из папки с игрой, а не из самой игры --- Конец цитаты --- Пользуй команды sprite_replace() и незабывай удалять лишние спрайты из памяти, командой sprite_delete() (функциии возможно по-другому называются, смотри в хелпе). Добавлено позже: Лучше, конечно, через dll. А с видео и ГМ не так много функций (одна всего кажись) и я уверен, что более 99.99% ГМ игр видео не используют ибо незачем. |
| Timmy!:
Помогите плиз с сочетанием клавиш! Можно-ли в Game Maker задать действие определенной последовательностью клавиш? Мне нужно сделать супер приемы в игре и коды. Спасибо. :) Добавлено позже: Если что, я использую Game Maker 8 ...и еще вот вопрос, я хотел сделать ремейк Bare knuckle 3, поставил таблицу бойцов под нумерацию (0,1,2,3...) Связал их с "управляемыми бойцами" командой if, то есть, если я выбираю иконку 0, должен играть за одного бойца, если выбираю 2, за другого, но почему-то при переходе на другую room, все вариации исчезают и вылетает ошибка( Что-нибудь можно с этим сделать? Или по-другому слепить таблицу игроков? :? Спасибо еще раз, друзья! |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |