Предлагаете услуги, ищете оплачиваемую или неоплачиваемую работу? Тут можно разместить своё резюме (информацию о себе, о проектах, навыках и знаниях), чтобы заинтересовать потенциальных работодателей.
Ну написал бы что ли, что в GameMaker работаешь и GML на таком-то уровне знаешь... Исправь вторую и третью ссылки, они у тебя не на первое сообщение выходят, а куда-то в середину страницы.
Laush, нормально так, один раз испугаться можно (если не ждёшь чего-то подобного; однако название и скриншоты не сходятся, так что по-любому ждёшь чего-то вроде), но второй раз запускать уже нет смысла, так что это не игра, а так, 30-секундное развлечение. Хотя третий уровень сложный. Но это скорее небольшой лабиринт получается.
Quote (Jericho)
а если вдруг это включил бы человек с проблемами сердца?
Во-первых, это смотря какие проблемы, а во-вторых, к игре должен быть readme, в котором написано предостережение - кому не следует играть, например: беременным женщинам, людям с нарушениями сердечно-сосудистой системы, нарушениями психики, какими-то заболеваниями зрения (контраст изображения и резкие переходы), домашним животным (да, некоторые играют)... Да и вообще, по-настоящему больной человек не будет скачивать игру, про которую заявлено как хоррор, потому что знает себя - ему хорроры противопоказаны.
Внезапно игра стала генерировать равнины, пологие холмы и большинство единичных летающих блоков пропали.
Он сам даже не ожидал такого неожиданного результата. Просто ткнул не в ту кнопку, в какую хотел, и внезапно всё заработало.
Quote (Saitei)
TimKruz, но как рендерить-то,отталкиваясь от массива?
Code
for x:=0 to длина_карты do for y:=0 to высота_карты do draw_element(map[x,y],x*ширина_блока,y*высота_блока);
Вот, в простейшем случае так. map[x,y] выдаёт номер типа блока, а draw_element рисует на экране картинку заданного ID в заданной позиции. Например, картинка №1 - земля, точка (5,6) - земля; тогда map[5,6] выдаёт 1, а draw_element(map[5,6],5*32,6*32); рисует блок земли со смещением 160 пикселей по горизонтали и 192 пикселя по вертикали (от левого верхнего угла окна), из расчёта, что блок квадратный, 32 на 32 пикселя.
Сообщение отредактировал TimKruz - Воскресенье, 26 Августа 2012, 02:04
Клоню к тому, что каждый блок имеет свой id, чтоли... То есть если разрушить блок земли - разрушится только ОН, а не ВСЕ...
Хм... Если ты делаешь массивом, то каждая ячейка по-любому уникальна. Если делаешь классами (хотя это выглядит ужасно) - всё равно никакой ID не нужен, удаляется один экземпляр и всё... Разрушить все блоки одного типа можно только если по ним по всем пробежаться. Или если используется куча указателей на один объект, и уничтожается не указатель, а сам объект через указатель...
Quote (Saitei)
map[x][y]
Не знаю, как там в C++, но в Паскале map[x,y] и map[x][y] - вещи разные, первое - двумерный массив, второе - массив массивов. Наверное, технической разницы никакой, но писать и читать map[x,y] всё-таки удобнее...
Quote (Saitei)
И будет использоваться функция рандома
Ну без рандома обойтись тут никак нельзя и это даже не обсуждается, потому что в любом случае нужны случайные значения...
Quote (Saitei)
представим, что от 30 до 40
Quote (Saitei)
рандомным шансом в 80%, 20%
Лучше настройки шансов где-нибудь записать, константой или из файла считывать, потому что когда алгоритм реализуешь, придётся подгонять все эти коэффициенты, потому что с первого раза точно не определишь, сколько чего и где нужно; ну а бегать по сотням или даже тысячам строк кода в поисках места использования убийственно. Поэтому лучше над коэффициентами сначала вообще не думать - потом подгонишь, сейчас нужно общий алгоритм придумать.
Да там такой код, что стыдно показывать. Хотя, конечно, если всё оптимизировать и причесать... Да, может потом и выложу, когда всё будет прилично выглядеть, это же не секретная разработка и не коммерческий проект...
Обновление до 0.0.30, спешите скачать. Зелёная ссылка в первом сообщении не меняется. Изменил картинки блоков, теперь вроде бы удачнее выглядит. Цвета по умолчанию 1, 0 или 2 из-за смены картинки блока лучше не ставить. Что делать с фоном - не знаю, пробовал сделать зелёным в полосочку - выглядит фигово. Может быть, забить всё случайными цветными блоками? Но это подходит только для главного меню, а что делать с боковыми панелями? В сложном режиме изменил фигуру типа "П" на пентамино в виде уголка. Вообще надо бы добавить все (ну, почти все) фигуры пентамино и выделить их в отдельный режим, благо механизм обработки фигур позволяет легко добавлять новые в масштабе 4x4. Правда, похоже, этот механизм тоже модернизировать придётся, он удобный, но не универсальный. В том же сложном режиме снизил шанс выпадения песочных фигур с 10 до 5% и вернул квадрат 2x2 в список. Теперь при нажатии на insert отключается режим смазывания фигур. Заодно нашёл и исправил причину отсутствия смазывания у самых верхних блоков. Оказывается, банально использовал целочисленный тип вместо знакового, а защита от переполнений у меня в компиляторе отключена, чтобы не орал об ошибках лишний раз. Заставку теперь можно легко пропустить, нажав пробел. Просто мне надоело на неё смотреть, когда я игру по десять раз подряд запускаю. И, наконец, добавил фигуру-бомбу. Сама она не появляется, вызывается (как следующая фигура) кнопкой b. Выглядит как чёрный квадрат 2x2 с мигающими (колеблющимися?) "крыльями", так что по размеру занимает 4x4 блока, но можно успеть нажать "вниз" и пропустить её через отверстие 2x2. Взрывает блоки в радиусе 2-х блоков от себя (площадь 6x6) при касании. Однако будьте осторожны, использование бомбы уменьшает счёт в расчёте 50 на количество взорванных блоков, поэтому использовать бомбы предлагается только в экстренных случаях. Вроде бы есть баг, когда происходит gameover при появлении бомбы в до краёв наполненном стакане, но я не уверен, что это мне не кажется и что это вообще существенно...
Картинка взрыва (кстати, заготавливается программно, вместе с маской для прозрачности фона) держится примерно 0.45 секунды. Хотел сначала надпись на этой картинке рисовать тоже самостоятельно, но мне надоело искать необходимые опорные точки, поэтому использовал шрифт Comic Sans MS. Вроде бы всё, хотя, может быть, что-то забыл, что сделал.
P.S. Давно как-то у меня валялась какая-то небольшая программка для генерации разных пищащих звуков (в стиле старых игр типа), вот хотелось бы её найти, но названия совсем не помню, может кто знает?
*** Как бы лучше обозвать скорости? Сейчас всё выглядит так:
Quote
нереальная!!! дьявольская!! безумная! очень сложная сложная быстрая нормальная медленная ёжик в тумане улитка на склоне
Подскажите другие варианты (подберу наиболее удачные), а то эти как-то совершенно не сочетаются друг с другом, а уж о "сложной скорости" я вообще молчу. Просто фантазия как-то с перебоями работает.
Сообщение отредактировал TimKruz - Воскресенье, 26 Августа 2012, 00:06
Прочитай описание или номер ошибки, поищи решение в интернете и перечитай об использовании классов в самоучителе.
Quote (Saitei)
чтобы в классе создавались новые экземпляры блоков (членов)
Каждый блок - экземпляр класса? По-моему, это даже хуже, чем тупо массив... Ведь в массиве все данные друг за другом идут, и информация о позиции каждого блока не хранится, а если делать классами - нужно хранить x и y. В Minecraft, по-моему, поверхности описываются формулами, поэтому такая производительность... Ещё можно отбрасывать полностью пустые массивы. Например, над поверхностью есть несколько пустых частей по, скажем, 256 блока воздуха. Зачем хранить эти нули? Можно отбросить этот массив, считая его пустым, пока на его месте игрок не попытается что-то поставить. А ещё можно сворачивать массивы, например, так: 90% массива составляет земля, остальные 10% - примеси вроде камней, угля, пустот. Тогда можно установить тип "земля" для данного участка карты, т.е. любая клетка по-умолчанию будет землёй, а не земляные клетки (или области) описываются отдельно. Но это будет удобно только для записи в файл.
Quote (daun)
А разве там не 3D массив (map[x,y,z]).
Для 3D игры - да, но ему хотя бы 2D как-нибудь сделать...
Quote (Saitei)
Код TimKruz посмотрел.
Ну это самый простой вариант, вот что-то типа второго варианта (со скоплениями):
Code
var i, x, y, coal, mt:word; begin coal:=51; while coal>0 do begin mt:=random(10)+5; //Объём if mt>coal then mt:=coal; repeat //Ищем точку, отдалённую от других залежей x:=random(32); y:=random(32); until nearest_block(2); //Отдельная функция, ищет блоки указанного типа в радиусе нескольких блоков for i:=1 to mt do begin map[x,y]:=2; case random(4) of //Выбираем направление движения 0: inc(x); 1: dec(x); 2: inc(y); 3: dec(y); end; //case end; //for dec(coal,mt); end; //while end;
Ну тут не обрабатываются исключения, типа вариантов, когда нет точки, удалённой от остальных скоплений (зациклится), нет проверки возвращения назад (когда перешли сначала от начальной точки, а потом вернулись тем же путём) и других проблем... Но это сделать несложно, сам должен разобраться...
Quote (Saitei)
eclipse 64-bit удивительным образом критовал, а 32-bit ужасно глючит
Ну не обязательно использовать Eclipse, ещё есть NetBeans и другие среды... В конце концов, можно скачать другую версию Eclipse...
Quote (Saitei)
Итак, давайте всё логически распишем? От начала до конца, пунктами?
А давай ты попробуешь сам тут логически расписать то, что уже понял и до чего сам додумался. Тут ведь разные алгоритмы могут быть, нельзя принимать что-то одно как универсальное решение. Главное сделай свою функцию, выдающую случайные числа, а то стандартная тут не пойдёт. Она непредсказуема.
Quote (Saitei)
что координаты и расположение блоков
Вообще-то, координаты и расположение нигде не хранится, в таком массиве хранится только тип клетки/блока и какие-либо его свойства, а вот положение его вычисляется по смещению от начала массива.
***
Quote (Saitei)
в игре будут разрушаться блоки
Какое отношение имеет это к генерации? При разрушении изменяй число в массиве на 0 и всё. Это, конечно, если ты будешь использовать массивы.
Сообщение отредактировал TimKruz - Суббота, 25 Августа 2012, 23:18
1. я списался с одним геймдизайнером, он ничего не в максе нигде не умеет делать.. :\ он только умеет придумывать... >___<
Придумывать тоже надо уметь, чтобы было интересно игрокам и всё такое. Скетчи рисовать, описания писать, перед разработкой моделей...
Quote (xxxcrow)
разьехались по другим городам после окончания школы
А созвониться или списаться через интернет никак? Всё равно скорей всего удалённо работать придётся, что с ними, что с кем-то другим.
Quote (xxxcrow)
а предметы отображаются только частицами. :с
Какими частицами? Есть три типа отображения - вершины (вертексы), рёбра и грани (полигоны).
Quote (xxxcrow)
остался только я и моя подруга
Quote (xxxcrow)
я собираю человек 10, и 4 уже есть
Было бы неплохо указать, кто уже есть и чем они занимаются.
Quote (xxxcrow)
есть книги по истории.. :\
Т.е. игра исключительно историческая? Понятно.
Quote (xxxcrow)
я тоже об этом думал, но тот человек который переписывался с ними, несколько раз мне сказал что: ОНИ ОНИ! САМ СТИМ!!! ЭТО ЖЕ ОФИГЕТЬ КАК!!!
Ага. Кто-то переписывался с ними, довольно эмоционально прокомментировал эту переписку, но по сути ничего не объяснил, как, что и на каких условиях они будут спонсировать...
Quote (xxxcrow)
не хочуу :с
А стоило бы. Там есть примеры команд с мегапроЭктом уникальной ММОРПГ на чистом энтузиазме, либо с обещанием оплаты, но если только что-нибудь когда-нибудь получится... И, конечно, команды разваливались, иногда даже не собравшись; так что и отношение к подобным темам у многих сложилось отрицательное... Так что лучше оформить и описать всё как следует, чтобы все были уверены в серьёзных намерениях автора и том, что проект действительно стоящий и не закроется через неделю-месяц...
Заготовка шрифта. Пока только БОЛЬШИЕ буквы. Прошу критиковать беспощадно
Ты русский алфавит не помнишь? Где там Ё, Й, У и Ч? Буквы разной ширины - придётся указывать для каждой буквы свою ширину... В остальном нормально. Но как-то не оригинально и невидно общего стиля.
В движке обязательно должна быть функция отображения только сетки. Эта функция везде есть.
Quote (xxxcrow)
все разбежались
Это странно. Очень странно. От перспективного проекта, который обещает быть прибыльным, никто не разбегается. А если разбежались - значит был повод...
Quote (xxxcrow)
огромный мир
Что за мир, что и как там? И, главное, потянешь ли ты разработку целого мира? На один город средних размеров в одиночку кучу времени убьёшь.
Quote (xxxcrow)
города осаждаются, людей убивают.. и тд
Что за города, какие люди? Вообще, дизайн-документ есть? По краткому описанию можно сделать единственный вывод, что игра будет банальной. Ничего оригинального, очередная ММОРПГ, которых сотни.
Quote (xxxcrow)
пара людей которые будут заполнять мир(админы).
Вообще-то, мир (карту) заполняют дизайнеры уровней или "картостроители", а администраторы только контролируют игровой процесс, разрешают конфликты между игроками и удаляют нежелательных игроков. А если игра только в планах, то зачем вам сейчас админы?
Quote (xxxcrow)
но уже, стим наобещал мне спонсирование.. :3
Можешь предоставить скриншот сообщения электронной почты, которое прислал тебе steam, и в котором обещано это спонсирование? И в какой форме они это писали. А то ведь могли сказать: "Если игра будет достаточно интересной и/или качественной, тогда мы подумаем и, возможно, будем спонсировать ваш проект." Т.е. ещё нет гарантии, что всё будет так, как запланировано...
xxxcrow, почитай различные темы на GCUP в разделах "команды" и "идеи для реализации" - ты там найдёшь десятки и сотни похожих проектов, которые ничем хорошим так и не закончились. Ты уверен, что у вас всё получится? В лучшем варианте провала - просто упущенное время, в худшем - банкротство, долги и всё такое.
А разве нельзя было воспользоваться функцией восстановления пароля? Вводишь логин, нажимаешь кнопку, на e-mail приходит сообщение со ссылкой - переходишь и всё. А за создание второго аккаунта вообще-то, по правилам, должны забанить.
Quote (Andrey_M)
Акк вроде блокируется через 3 месяца неактивности.
Откуда такая информация? Тут есть люди, которые давно не заходят на сайт, но аккаунт работает.
Сообщение отредактировал TimKruz - Суббота, 25 Августа 2012, 21:35
Вот этой? Похоже, игра полностью закрытая, так что движок можно только выкупить у разработчика за бешеные деньги, ну или украсть за чуть менее бешеные (если нет знакомых в той компании-разработчике...). А ресурсы (модели, текстуры, звуки), в принципе, можно достать из клиента, возможно, кто-то это уже и сделал, в любом случае это противозаконно, и мало кто хвастаться будет, так что искать тебе долго. Можно попробовать стандартными средствами распаковки игровых ресурсов ("Dragon unpacker" к примеру; ещё есть программы, позволяющие вырывать файл прямо во время работы игры), либо обратиться к тому, кто разбирается в этом (типа хакер)...
Quote (Koshimarus34)
буду благодарна! Заранее спасибо!
Если эту игру ещё никто не сломал, за спасибо тебе мало кто захочет делать.
Quote (Ku-Klux)
все файлы модели - скачать вроде можно клиент и обновить, картинки и все остальное будет где-то в папке вроде храниться.
Да, но никто не будет хранить картинки в png и модельки в obj, а музыку в mp3. И что ты будешь делать с файлом типа data123.data из папки data?
Нет, а если пользователь введёт даже не число, а какой-то недопустимый символ? У тебя будет ошибка ввода/вывода. Правильно будет сначала читать в строку, потом делать val(), и проверять возвращаемый этой процедурой код ошибки - в случае успеха должен быть ноль, в случае провала, если не ошибаюсь, номер ошибочного символа. Либо другой вариант - выключить проверку ввода/вывода (директива {$I-} в Паскале/Делфи, или через настройки среды), и после считывания числа (тут строку использовать не нужно) проверять результат функции ioresult (возвращает код ошибки последней операции ввода/вывода или ноль) - если ноль, данные введены верно. Вот тогда будет настоящая защита. Кстати, там у тебя перед else точка с запятой - ошибка. И почему ты пишешь :6:3? Ты получишь шесть знаков до запятой (пустые закрываются пробелами) и три после...
Quote (zmear)
Нужно сделать задачу: пользователь вводит число А (100000>А>0), компьютер должен написать число словами ввел я 553 он пишет "пятьсот пятьдесят три"
Хм... Вообще, конечно, можно написать, но что-то многовато получается... Это надо рассмотреть десятки отдельных случаев, типа "один", "одна", "одиннадцать" и так далее.
А что, слишком сложно?.. Ладно. Тогда написать программу для расчёта квадратных уравнений, но чтобы не было просто - с вычислением иррациональных корней и округлением строго до пятого знака. И обязательно - "защита от дурака" (проверка корректности ввода), без неё в наше время программы писать нельзя.
Ты в своём решении переменные местами меняешь, а откуда ты значения взял? И в PHP никаких var не нужно, интерпретатор сам создаёт новые переменные... По крайней мере, это при использовании на сервере... А значения считывать из массивов get или post...
Quote (zmear)
напишите программу, определяющую по числу месяца день недели, 1-ое число = суббота.
Проще на калькуляторе посчитать.
Code
var m:byte; begin write('Число месяца: '); readln(m); //Считываем число месяца while m>7 do m:=m-7; //Уменьшаем до интервала 1..7 case m of 1: writeln('Суббота'); 2: writeln('Воскресенье'); 3: writeln('Понедельник'); 4: writeln('Вторник'); 5: writeln('Среда'); 6: writeln('Четверг'); 7: writeln('Пятница'); end; end;
Quote (zmear)
и предлагай свою, мы подумаем
Задача: используя квантовый компьютер, рассчитать расстояния от Земли до каждого из ближайших трёх пульсаров по не более 6 фотографиям в формате B2MP ("вот вам мегапиксель") участка неба, полученных с разных приборов телескопа на орбите Плутона через ретранслятор на орбите Солнца, используя протокол 0Т-э (транспортировка электронов через гипертоннель) и передавая пакеты не более 1 ПБ (петабайт), с минимальными затратами энергии. Пока будете думать, как раз ретранслятор и всё остальное построят - будет практическое применение, как раз протестируем. Ведь никаких ограничений на задачи не было, я не ошибся?
Сообщение отредактировал TimKruz - Пятница, 24 Августа 2012, 20:52
Голубая 4-клеточная часть была прямой, а при нажатии клавиши вниз, она упала и рассыпалась на квадратики. Хотел провернуть то же самое с зеленым квадратом, но не вышло
Всё правильно. Я же писал, что фигуры могут быть обычными и "песочными", т.е. они рассыпаются на блоки и отдельные блоки проваливаются вниз, до первого твёрдого блока. Выделяются они картинкой блока, она как бы прерывистая, вместо обычной сплошной.
Quote (GameMix)
Плохо подобраны цвета клеток пустых и не только пустых - раздражает глаза, отвлекает от игры.
Да, я сам с этими цветами играть не могу. Пробовал delete нажимать? Там во второй пустые клетки почти не видно, а в третьей цвета вообще тусклые.
Quote (GameMix)
особенно заставка перед меню Только вот у меня та заставка подвисала. Или так у всех должно быть?
Сделал первое, что пришло в голову. У меня есть вариант крутой заставки (давно ещё придумал), но делать долго, а мне лень. Она не подвисает, так и должно быть. Теоретически должно быть 10 кадров в секунду, потому что интервал выставлен на 100 миллисекунд (в меню и игре - 30, это 32-33 кадра в секунду; можно было бы сделать 64, но это опять скорости пересчитывать, да и нагрузка возрастает), просто там кучу раз вызывается random() и заливка (углов), так что при частом обновлении сильно нагружает процессор - неудобно как-то. Наверное, лучше заранее подготовить кадры, и не делать сплошной рандом...
Quote (zmear)
Убери сетку, или её залей или фигуры
Если сетку убрать, то фон будет чисто белым, с этим тоже что-то делать нужно. А с другими цветами как выглядит? Первый вариант да, фигово получился (наверное, из-за выделяющегося чёрного).
Quote (romgerman)
сделай другой фон.
Какой, например?
Quote (ArtGr)
Кубики и их фон требуют перерисовки
Надо подумать... Просто с самого начала делал их как бы светящимися, видимо, перестарался.
робот-пылесос не принесет вреда даже при упорном старании
Это же новейшая разработка - с бездонным нуль-Т мешком и расширенным соплом, чтобы любой мусор всосать и уничтожить в ближайшей чёрной дыре. А потом магнитная буря на Солнце, пылесосу его электронные мозги замкнёт накоротко он и начнёт всё подряд сосать. Засосёт нафиг малолетних дочь с сыном и жену за компанию с тёщей и её диваном, собаку с кошкой, хомячков-попугайчиков-канареек и весь аквариум с рыбками всосет. Да, вреда мало, квартира-то теперь вообще чистая, никто не гадит и не ругается, а это гораздо большая польза!
Quote (crayan)
что должен быть пункт управления роботами, где можно отключить от них электричество или подорвать их.
Это называется страх. Страх перед восстанием, ну или массовым замыканием электронных мозгов. Зачем бояться и выдумывать какие-то средства защиты? Просто нужно делать достаточно надёжные системы, а не китайские игрушки. А если такой Центр будет существовать, всё равно его будут контролировать те же роботы, потому что человек ожиреет на гамбургерах от постоянной неподвижности в роботизированном кресле, либо не ожиреет, но просто отупеет от постоянных развлечений и веселья, заботливо предоставляемых роботизированными городами, представляющими из себя парк аттракционов с жилыми районами. Нет, не роботы убьют человечество, человечество само себя убьёт, в этом вся суть развития цивилизации до точки максимального удовольствия, после которой развиваться как-то некуда.
Quote (allxumuk)
Разрушители Мифов разрушили этот миф.
Не видел этой серии.
Сообщение отредактировал TimKruz - Пятница, 24 Августа 2012, 17:54