|
Результаты поиска
| |
| TimKruz | Дата: Вторник, 30 Октября 2012, 14:06 | Сообщение # 401 | Тема: [2D izometric] WCO |
старожил
Сейчас нет на сайте
| Quote (Monteg) Feraset, Для отрисовки небось Canvas использете? Хуже. Массив объектов TImage, которые создаются толпой и располагаются на форме в нужном порядке... Quote (jiumx60rus) Советую увел. производительность Для увеличения производительности нужно всё что есть удалить и сделать заново... Надеюсь, через какое-то время Feraset это поймёт и переделает проект. Quote (Ordan) А коллизию как будешь делать? Ну у него карта - массив, и движение по клеточкам; в таких играх просто проверяется, свободна следующая клетка (на которую нужно переместиться) или нет. Quote (Feraset) Текущую версию качать можно здесь:Ссылка Так. Во-первых, папка obj лишняя. Файлы *.obj - это объектные файлы, в них обычно хранится уже скомпилированный, но ещё не скомпонованный код, и нужен он только компилятору на стадии компоновки. В принципе, в *.obj может храниться что угодно, но учитывая то, что они идут вместе с модулями для работы png - они содержат код, и готовой программе не нужны.
Далее. Советую хранить все картинки-спрайты в одной папке, либо оставить разделение на группы, но сложить эти папки в одну папку. Так будет удобнее ориентироваться в файлах проекта и не будет лишнего нагромождения папок в корневой папке проекта.
Скриншоты. Почему они в *.bmp?!! У тебя эти два скриншота весят почти 6 МБ, хотя ценности практически не несут. Проще всего было бы сохранить (с помощью любого редактора картинок типа MS Paint) в формат *.png, это заняло бы гораздо меньше места.
Ну а теперь по коду, просто вчера забыл об этом написать... У тебя при нажатии на 'e' как делается? У тебя создаётся новый экземпляр класса TImage, вот: Code block_dl:=TImage.Create(self); При этом, если нажать на 'e' ещё раз, переменная block_dl "забудет" указатель на предыдущий экземпляр, а запомнит новый. В итоге, при многократном "размещении блоков на карте" игроком создаётся дофига объектов, которые нельзя удалить, потому что у тебя на них нет указателей. Теоретически как-то можно найти их, но это лишнее извращение, да и определить, кто из них кто не представляется возможным.
Короче. Всё переписывать заново, как я тебе неоднократно писал. В массиве должны храниться только идентификаторы рисуемых блоков. При этом они рисуются вручную по событию таймера на единственной канве окна. Новые блоки добавляются путём изменения значения ячеек в массиве с нуля на идентификатор требуемого блока. Ну а картинки должны загружаться только один раз, во время загрузки программы, для этого нужен банк спрайтов (называй как хочешь) - этакий массив экземпляров класса TBitmap; идентификатор картинки в банке спрайтов соответствует ID в массиве-карте. Т.е. чтобы в точке (0;0) нарисовать блок с ID=map[0,0] нужно скопировать картинку из images[map[0,0]] (images - массив-банк, map - массив-карта). Ну это так, в общих чертах и несколько упрощённой форме. Можешь делать не так, как я предлагаю; однако, если хочешь сделать игру - откажись от той системы (да какая там система, ужас сплошной), которая есть сейчас...
Quote (Feraset) как же не люблю в нём ковырятся. В OpenGL, на самом деле, нет ничего сложного. Если хорошо знаешь язык Delphi (я думаю, ты его плохо знаешь сейчас, нужно учиться), в OpenGL разберёшься легко, по крайней мере, на начальном уровне...
|
|
|
| |
| TimKruz | Дата: Понедельник, 29 Октября 2012, 23:23 | Сообщение # 402 | Тема: [RPG] Еда |
старожил
Сейчас нет на сайте
| В первую очередь нужно было указать, для какой игры (какого типа, что в ней делать) придумывается система питания. Потому что для какого-нибудь симулятора фермера RPG жанра постоянное питание - в принципе будет нормально, типа часть продукции ешь сам, часть продаёшь; а вот, например, в шутере будет неприятно прятаться за углом во время перестрелки, но не чтобы перезарядить автомат, а съесть очередной "Сникерс" и перестать тормозить. В любой игре нужно определять приоритеты, о чём и для кого игра... Ну и вообще жрать каждую минуту неудобно, если в игре есть что-то интереснее еды. С другой стороны, если нужно есть всего раз в полчаса-час или реже, то запасаться и искать еду не очень-то и нужно... Quote (eretik-games) Если в компьютере энергией является электричество, то у нас это жир. Жир - это запасённая энергия, и она не используется сразу. Электричество - это углеводы, они используются в первую очередь и из них извлекается максимум энергии, а жиры, в основном, запасаются. Quote (eretik-games) Когда в организме заканчивается жир, то он начинает "сжигать" витамины и мышечную ткань. Когда в организме кончаются углеводы, сжигается жир, когда кончается жир, сжигаются белки, но до этого ещё поголодать много нужно. А витамины вообще не дают энергии и, следовательно, не сжигаются организмом. Мышечную ткань никто не сжигает, точнее, отдельные клетки могут использоваться как "топливо", но это уже полное истощение; мышцы, теоретически, могут отключаться от нейронов для экономии энергии или от бездействия. В любом случае, на жиру можно продержаться недели, если есть вода (вот без воды долго не продержишься). Quote (eretik-games) Каждый уровень имеет свою полоску размером, ну например в 1000 ед калорий. Съев шоколадку мы получим 115 калорий, съев хлеб, получим 400 калорий и т.д. Что-то маленькие числа берёшь. Там сотни килокалорий должны быть. Но проще взять проценты от суточной нормы и не мучить игрока разными циферками. А ещё лучше - чисто визуально, полная полоска сытости, половина; шоколадка восстанавливает треть полоски, хлеб ещё сколько-то и т.д. Quote (eretik-games) Большой диапазон чисел позволит сделать огромное разнообразие пищи с различным уровнем калорий. Кому это разнообразие нужно? В реальности можно наслаждаться вкусом еды, а в игре игрок будет есть что попало, лишь бы персонаж не сдох. Quote (eretik-games) Разнообразие витаминов огромное. Известно около полтора десятка витаминов. Но если уж будешь придумывать что-то своё (независимо от реальности), то зачем название - витамины? Можно что-то оригинальное выдумать, привлекающее и забавляющее игрока. Quote (eretik-games) Удерживать уровень витаминов выше 50% ещё достаточно легко. Выше 75% довольно сложно или точнее сказать, достаточно затратно. 100% уровень почти не реально удерживать, ну только если вы вкладываете в игру реальные деньги Бред. Суточная потребность в витаминах очень мала. Более того, можно получить передозировку витаминами.
Почитал бы ты вообще про витамины и обмен веществ что ли, перед тем, как выдумывать такую систему. Quote (eretik-games) Уже нельзя будет выживать только питаясь хлебом или только колбасой. Хм, почему-то некоторые едят только бутерброды с колбасой и неплохо себя чувствуют. Quote (eretik-games) Придётся искать различную выпечку, мясо, рыбу, кондитерские изделия и т.д. Блин, я должен срочно съесть этот торт! Нееет, он упал и размазался по полу, теперь я умру с голоду, потому что в других продуктах нет витаминов, которые были в этом торте. Quote (eretik-games) как в гта Ну, короче, в GTA San Andreas можно было есть, восполняя здоровье и толстея, и бегать-прыгать-плавать-ездить-на-велосипеде-заниматься-на-тренажёрах чтобы похудеть. Еда разделяется на ту, что в автоматах и маленьких ларьках, и ту, что в больших фастфудах, где она разделяется на дешёвую и подороже, но разница только в количестве восполняемого здоровья (разница в пополнении жира может и есть, но не заметна). Толстый главный герой быстрей выдыхается, худой - медленней. Если сбросить весь жир, начнётся голодание, т.е. медленная потеря здоровья; тут нужно будет сбегать поесть, но даже если не поесть, с голоду помирать будешь долго. Ещё отличие - разным девушкам в игре нравится разной толщины главный герой, т.е. чтобы познакомиться и развивать отношения со всеми придётся периодически толстеть/худеть. А ещё, для некоторых миссий, требуется быть худым, иначе не дают пройти миссию. Но если, например, догнать степень жира до максимума и играть - можно вообще не есть чёрт знает сколько времени (может быть, неделю непрерывной игры, а может и больше), потому что не будет никакого голода. То есть в GTA система питания сильно упрощена. До SA её вообще не было (если не ошибаюсь), а в IV она упростилась - там вроде бы нельзя потолстеть/похудеть - еда только как вариант пополнения здоровья. Ещё в GTA SA есть забавный момент - если в кафе съесть подряд штук 12, скажем, пицц - главного героя стошнит прямо на пол, после чего отнимется процентов 80 здоровья и вроде бы немного жира, а продавцы откажутся продавать еду (нужно выйти и снова зайти в кафе).
Quote (eretik-games) Где же ваши предложения о том как можно реализовать еду в игре? Ну тут предложить особо нечего, всё где-либо в какой-либо степени уже реализовано, достаточно выбрать подходящий конкретной игре способ. Да и стоит ли делать оригинальную систему поглощения пищи в игре, в которой это не будет являться основой всего (как я понял)?
|
|
|
| |
| TimKruz | Дата: Понедельник, 29 Октября 2012, 22:21 | Сообщение # 403 | Тема: Delphi:Вопрос-Ответ |
старожил
Сейчас нет на сайте
| Quote (Feraset) поставив нулевую координату в центре формы? Читай внимательно: Quote (TimKruz) Окна в Windows считают верхнюю левую точку за (0;0), и изменить это никак нельзя. Если тебе нужна точка отсчёта в центре, либо рассчитывай её вручную, ко всем координатам прибавляя половину длины/ширины, либо используй OpenGL для вывода графики, там (0;0) в центре.
|
|
|
| |
| TimKruz | Дата: Понедельник, 29 Октября 2012, 17:54 | Сообщение # 404 | Тема: Набираю команду для разработки интересной онлайн игры |
старожил
Сейчас нет на сайте
| У тебя там ошибка - объявляешь массив [1..10,1..10], а во время генерации задаёшь циклы for i:=1 to 20 do for j:=1 to 20 do...
Кстати, в конструкциях if, for, while блок begin..end не обязателен, если выполняется только одна команда (другая конструкция if/for/while тоже считается одной командой). Вообще begin..end объединяет группу команд в одну и, соответственно, используется там, где нельзя использовать две и более команд.
Ты задаёшь карту как массив компонентов TImage? Ты сумасшедший. Если будешь продолжать в этом направлении, у тебя ничего не получится, а если и получится, то проект будет жрать дофига памяти и ресурсов процессора, ужасно тормозить и так далее. Впрочем, он у тебя уже это делает. Я тебе уже объяснял, что карту нужно хранить как массив целочисленных переменных byte, в которых хранится тип блока, а при выводе на экран считывать значение соответствующей клетки и рисовать на канве соответствующую картинку.
Старайся форматировать код так, чтобы он был максимально читабелен. Т.е. делай отступы нужной длины в правильных местах, старайся удалять лишние пробелы, но не лепи всё подряд в одно место. Делай больше комментариев, можешь пользоваться метками типа {TODO: ... } (для них ещё есть специальное окно-менеджер), чтобы не забыть, что как работает и что где хотел сделать... А то ты через какое-то время окончательно запутаешься в своём же коде...
Если нужно перебрать множество значений одной переменной (например, параметр key в процедуре обработки нажатий кнопок), вместо кучи if используй один case. Это будет выглядеть проще и логичнее, плюс выполняться быстрее кучи if.
Двойная буферизация как параметр TForm и в играх - разные вещи. Вообще двойная буферизация подразумевает прорисовку всей картинки в невидимом пользователю (заднем) буфере, а затем перенос картинки в видимый буфер или переназначение буферов (видимый становится невидимым, невидимый - видимым; это быстрее копирования). А у тебя нет прорисовки общей картинки, ты просто создаёшь сотни компонентов TImage, которые уже сами по себе рисуются, когда и как хотят... Выход - переходить на "ручную" прорисовку и не мучить TImage'ы.
Что-то я не понял, что за объектные файлы у тебя в папке obj и зачем они тебе нужны.
Короче, мой тебе совет: хватит мучить этот свой проект, ты слишком мало знаешь, чтобы сделать что-то рабочее. Для начала подробно выучи язык Delphi, научись правильно программировать, напиши несколько мелких программок, чтобы усвоить основы. Потом найди и изучи какие-нибудь книги по разработке игр, даже не важно, чтобы они были для Delphi - тебе нужно усвоить основные принципы разработки игр: что такое игра, из чего она состоит, как производится построение и вывод на экран картинки и так далее. Потом советую изучить OpenGL/DirectX (есть книги "OpenGL в проектах Delphi" и "DirectX в проектах Delphi", но можешь почитать и другие, что понравится), потому что стандартные средства вывода WinAPI не очень подходят для более-менее крупных игр, лучше сразу переходить на мощный графический API. После всего этого можешь попробовать начать делать свою игру. Однако, возможно, и после этого ты не сможешь сделать что-нибудь серьёзное. В таком случае подбери какой-нибудь готовый игровой движок для Delphi - будет проще писать игру. Но уверенные знания языка Delphi, принципов создания игр и OpenGL/DirectX тебе всё равно понадобятся, без них никуда.
|
|
|
| |
| TimKruz | Дата: Понедельник, 29 Октября 2012, 17:12 | Сообщение # 405 | Тема: Delphi:Вопрос-Ответ |
старожил
Сейчас нет на сайте
| Quote (Feraset) Как сделать так, чтобы жеёсткие рамки формы исчезли? Я имею ввиду положение от нулевых координат верхнего левого угла. Тоесть нужно чтобы можно было ллицезреть не только плюсовые но и минусовые координаты smile . А лучше как убрать эти рамки совсем? Рамку и заголовок окна можно убрать, установив параметр BorderStyle формы TForm в значение bsNone. Окна в Windows считают верхнюю левую точку за (0;0), и изменить это никак нельзя. Если хочешь увидеть изображение, вылезающее за левый верхний угол - смещай это изображение сам. Quote (Feraset) smile вот тут. Вопрос в том как видеть за формой. Доступ к изображению запрещён (403).
|
|
|
| |
| TimKruz | Дата: Понедельник, 29 Октября 2012, 15:06 | Сообщение # 406 | Тема: Мобильный телефон. Кокой у вас? |
старожил
Сейчас нет на сайте
| Предлагаю писать не только телефон, которым сейчас пользуетесь, а вообще все, которые у вас были и, возможно, еще валяются где-то. Вот: Motorola T190 (наверное, аккумулятор к нему уже не найти), Siemens C65 (жаль, что Siemens Mobile расформировалась; я его заблокировал), Samsung E200 (теперь мама пользуется), а сейчас Samsung S5600 (хороший телефон, прочный и красивый, только некоторые баги у заводской прошивки есть, а перепрошивать не хочу). Переодически думаю купить какой-нибудь андроид-смартфон, но проблемы этой ОС и устройств на ней отпугивают, да и разнообразие таких устройств мешает выбрать нужный. А продукты эпл ненадежны и малофункциональны (для меня), в то время как цены на них завышают чисто за бренд... А смартфоны на Windows и других системах малопопулярны и вообще доверия не вызывают... А теперь вообще смысла нет покупать смартфон, потому что играть, программировать и т.п. лучше на нетбуке, книги читать удобней на электронной книге, а телефон нужен для мобильной связи, с чем справляется любое устройство... Всякие смартфоны, планшеты, трансформеры - попытка сделать универсальный комбайн, что в принципе невозможно, по крайней мере пока (когда начнется эра прямого обмена информацией между мозгом и компьютером - тогда да, достаточно будет маленькой коробочки для любых нужд). Что-то меня в сторону от темы понесло.
|
|
|
| |
| TimKruz | Дата: Воскресенье, 28 Октября 2012, 12:04 | Сообщение # 407 | Тема: "Элемент" (мобильная песочница) [2d] |
старожил
Сейчас нет на сайте
| Вижу, игра уверенно развивается, это хорошо. "Хамелеон" ваш на криппера из майнкрафта похож - криппер тоже как бы "маскируется" под траву и деревья, зеленый ведь. У вас вообще дружественные и нейтральные мобы будут? Quote Lihodey, adBlock легко убирает всю рекламу. По крайне мере, я ничего лишнего не вижу. Если подскажешь хост получше, будем заливать на него. Да, на компьютере проблем особых нет, а вот с телефона просмотреть полную картинку на радикале не выйдет, т.к. он сразу переадресует на какую-нибудь рекламу типа "срочно обновите браузер" или с предложением платной подписки... Есть rghost.ru - удобно, из рекламы только два простых баннера справа на странице с файлом (при просмотре картинок нет, ну по крайней мере я не видел), свой удобный аплоадер. Только придется зарегистрироваться и править страницу с файлом, т.к. по умолчанию файл хранится 5 дней (можно до 30, а если будут скачивать - бесконечно хранится). Quote JackNazaryan, думаю разница все же есть. Кое-какая разница действительно есть, но все равно еще не хватает какой-нибудь особенности, которая будет основной фишкой игры...
Сообщение отредактировал TimKruz - Воскресенье, 28 Октября 2012, 12:10 |
|
|
| |
| TimKruz | Дата: Суббота, 27 Октября 2012, 13:25 | Сообщение # 408 | Тема: Помогите придумать домен |
старожил
Сейчас нет на сайте
| ZloyDen, не может быть, чтобы не было тематики или ключевых слов. Можно зайти на reg.ru, там меню "домены", раздел "регистрация", страница "подобрать домен". Либо подбирай на страницах "освобождающиеся/освобожденные домены", вдруг какой приглянется...
|
|
|
| |
| TimKruz | Дата: Среда, 24 Октября 2012, 10:22 | Сообщение # 409 | Тема: Разработка космосима |
старожил
Сейчас нет на сайте
| А что сложного? Сделать несколько круглых платформ для вращающихся орудий, просто платформ и широких гнезд для фиксированных; а сами пушки подгонять по размеру, чтобы везде ставилось. Можно сделать классы орудий с соответствующими креплениями. Например, класс тяжелых пушек крепится только на большие платформы, скорострельные многоствольные пулеметы только на вращающиеся платформы не менее средних размеров, орудия класса "А" на крепления класса "А" и так далее. А несочитаемость дизайна можно либо компенсировать текстурой, которая накладывается на корабль целиком (включая пушки), либо вообще не обращать на нее внимания - пусть игроки сами решают, что лучше - красота и дизайн или мощность и эффективность. Еще можно делать модификации оружия, типа лазер троллей/лазер эльфов, лазер вращающийся/лазер фиксированный... По сути - одна пушка, но подготовленная для конкретного использования. Тут же можно делать бонусы типа корабля и размещения на нем орудия. Типа фиксированный лазер перезаряжается чуть быстрее, а эльфийский лучше наводится на цель, если может вращаться.
|
|
|
| |
| TimKruz | Дата: Вторник, 23 Октября 2012, 09:18 | Сообщение # 410 | Тема: [2D] Physion Ball |
старожил
Сейчас нет на сайте
| Quote Ты думаешь что в этой игре твоя идея? Это ничейная идея, она слишком проста и придумана тысячелетия или даже десятки тысяч лет назад. Прыгающий шарик из различных материалов, проходящий лабиринт/головоломку многие придумывали и еще будут придумывать. Нужно что-то свежее. Либо освежи эту идею оригинальной реализацией, ради которой можно будет поиграть в твою игру.
А если слово Unix не имеет значения в названии - лучше убери/замени его. А то даже я, хотя никогда с unix-like системами дела не имел, прочитав заголовок подумал, что это какая-то игра под линукс какой-нибудь. Нет, домохозяйке (основная аудитория фалковаре) или еще кому будет пофиг, потому что она кроме Windows и IE ничего на компьютере не знает и знать не хочет; но знающие люди будут негодовать, почему игра с юникс в названии разработана только для виндоус. Правда, это если только твою игру вообще заметят...
Удачи на конкурсе.
|
|
|
| |
| TimKruz | Дата: Суббота, 20 Октября 2012, 21:53 | Сообщение # 411 | Тема: Delphi:Вопрос-Ответ |
старожил
Сейчас нет на сайте
| Quote (Destroy) как сделать чтобы при перетаскивания одного маленького изображения по другому большому( фон), маленьких не выходил за границу большого и не лез на форму В событии перемещения мыши (OnMouseMove) ограничиваешь перемещение границами, типа Code if (x - смещение) >= левая_граница then <смещение_влево> if (x + смещение) <= (правая_граница - ширина_картинки) then <смещение_вправо> if (y - смещение) >= верхняя_граница... if (y + смещение) <= (нижняя_граница - высота_картинки)... Или можно так: Code if (требуется_смещение_влево) and ((x - смещение) > левая_граница) then <смещение_влево> ...
Сообщение отредактировал TimKruz - Суббота, 20 Октября 2012, 21:55 |
|
|
| |
| TimKruz | Дата: Пятница, 19 Октября 2012, 16:52 | Сообщение # 412 | Тема: Уроки и примеры [By AntiAlianKIller] Пример 2. Крафт. |
старожил
Сейчас нет на сайте
| Quote очень мощным инетом и хорошим компом А это совсем необязательно. Достаточно провести тест на одной машине, и, зная ее характеристики, затраты программой-сервером памяти, ресурсов процессора и траффиком на одного игрока (исходя из рассчета нагрузка 100 игроков разделить на сто), можно вычислить, какие характеристики должна иметь машина, которая потянет столько-то игроков. В принципе, все эти рассчеты можно провести в теории, и, даже не запуская сервер, узнать его опримальную и максимальную нагрузки, но для этого нужно знать возможности среды разработки и ограничения операционной системы, так что в случае сервера на конструкторе, запускаемом из-под Windows без практического эксперимента не обойтись.
P.S. А вообще, сервер лучше на ЯП писать, пусть даже если сама игра на конструкторе.
|
|
|
| |
| TimKruz | Дата: Пятница, 19 Октября 2012, 16:37 | Сообщение # 413 | Тема: Уроки и примеры [By AntiAlianKIller] Пример 2. Крафт. |
старожил
Сейчас нет на сайте
| Честно? Фигня план. Ни 1000, ни даже 100 пользователей не наберется. Это же просто пример абстрактного сервера, и интересен он и его тестирование будет совсем немногим. Однако тест провести можно. Для этого нужно, во-первых, изучить поведение среднестатистического игрока, а именно его действия, вызывающие обмен информацией между клиентом-сервером, число этих действий в секунду и средний пинг до сервера. Далее нужно сделать модель бота, симулирующего поведение игрока. Делается это в виде отдельной программы (сервер без изменений), либо встраивается в сервер. Лучше всего, конечно, бота сделать отдельной программой (только на быстром ЯП, а не конструкторе) и вынести ее на отдельный компьютер (связанный по локальнрой сети с сервером) - это обеспечит чистоту эксперимента в плане измерения нагрузки на сервер. Ну и, наконец-то, запускаем сервер и программу-бота; плавно увеличиваем число симулируемых игроков в программе-боте (можно было бы запускать каждый раз по одной программе на игрока, но это сложнее, если нужно очень много игроков). Ждем, на каком числе игроков сервер начнет тормозить, зависнет или вообще упадет. Но это только основная проверка, кроме нее нужно проверять критические ситуации, например, один из игроков имеет гигантский пинг, а другой совершает слишком много действий в секунду, ну и т.д.
|
|
|
| |
| TimKruz | Дата: Пятница, 19 Октября 2012, 08:50 | Сообщение # 414 | Тема: "Элемент" (мобильная песочница) [2d] |
старожил
Сейчас нет на сайте
| Quote Но появилась проблема "висячих блоков", когда туннель отрезает участок местности снизу, и он зависает без опоры. Решается такая проблема просто. Добавь задний фон карты - небо, земля, камень, адский камень. Такой метод реализован в Террарии (ну и других землекопательных играх) - отрезанные и как бы "висящие" куски земли за счет фона не выглядят, как летающие острова, а как холм/гора со сквозным подкопом/туннелем под ним. Технически все просто: нужен дополнительный нефизический блок, помещаемый сзади каждого сгенерированного блока ландшафта.
Деревья что-то очень похожи на деревья террарии, только толще... Карабкаться по всем можно, или только по веткам?
Удачи с проектом. Жаль, у меня нет достаточно мощного андроид-устройства, чтобы тестировать.
|
|
|
| |
| TimKruz | Дата: Четверг, 18 Октября 2012, 09:05 | Сообщение # 415 | Тема: Несколько вопросов по написанию браузера в Visual C# Studio |
старожил
Сейчас нет на сайте
| Как я понял, юзаешь готовый компонент "WebBrowser"? Далеко на Trident не уедешь, максимум получится сильно урезанный и кривой клон IE. Этот компонент разве что для просмотра простеньких html-страниц пойдет, типа встроенной справки программы. 1. У него должно быть какое-то событие нажатия на ссылку. Если нет, нужно сделать твой браузер дефолтным в системе (как-то через реестр) - теоретически должно помочь. 2. Флешь подключается как плагин, значит, нужно писать свою систему плагинов... Либо читай мануалы, там должны быть описаны функции стандартных компонентов. 3. Если Trident - вряд ли что-то можно прикрутить. Можешь попробовать скачать ядро другого браузера (Firefox, Webkit, Chromium) или самостоятельную библиотеку-интерпретатор, если нужен JS отдельно от веб-страниц. 4. Руками. Все руками. Отлавливаешь нажатие ссылки, анализируешь формат, и если нужно скачать - запускаешь отдельный поток, в котором загружается файл (окно загрузки тоже сам делаешь и обновляешь) - готовых примеров в сети масса, можешь даже copy&paste и использовать сразу.
P.S. Чаще пользуйся поисковиком. Новичков, создающих свой браузер на компонентах той или иной среды - масса, и, соответственно, подобных тем на программерских форумах предостаточно...
|
|
|
| |
| TimKruz | Дата: Среда, 17 Октября 2012, 09:18 | Сообщение # 416 | Тема: Генерация случайных имен php, mysql |
старожил
Сейчас нет на сайте
| Я не знаю, для чего тебе нужно это, но могу предложить не анализировать все и не составлять все возможные варианты. 100 имен и 1000 фамилий это 100000 вариантов. Если это нужно для онлайн-игры, то столько вариантов не имеет смысла - ни игроков, ни ботов столько ты не сделаешь. Если, например, игроку предлагается выбрать имя и фамилию персонажу, то можно выбирать соответствующую пару по запросу...
А если тебе все-таки нужна автоматически пополняющаяся база на миллионы имен-фамилий, то выход тут следующий: нужно где-то сохранять колличество обработанных имен и обработанных фамилий, например, в ячейке с индексом #0 (#1) соответствующей базы. Фактически, это будет не колличество, а номер последнего обработанного имени/фамилии. При этом следует учесть тот факт, что новые имена и фамилии добавляются в концы баз. Далее. Скрипт, занимающийся обработкой баз, должен сначала считать эти две переменные. При этом проверяется длина базы (последний элемент). Если индекс конца базы не равен (больше) индекса в нашей переменной - значит, есть необработанные имена и/или фамилии. Тогда скрипт начинает проходы по базам как обычно, но не для всех элементов, а только новых. То есть берется первое новое имя и прогоняется по фамилиям, берется новое и так далее; затем обрабатываются новые фамилии. При этом нужно подумать над лишнем повторением пар имя-фамилия (мне лень сейчас думать, но там простое решение). Счетчики последних имен/фамилий должны либо подниматься до индекса конца базы после всех обработок, либо инкрементироваться после каждой интеррации соответствующего цикла. Следует также отметить, что базы должны блокироваться во время работы скрипта, чтобы не было изменений со стороны других скриптов или параллельных вызовов одного скрипта. MySQL не знаю, но файлы в PHP блокировать можно.
|
|
|
| |
| TimKruz | Дата: Вторник, 16 Октября 2012, 13:44 | Сообщение # 417 | Тема: Нарушение законов физики |
старожил
Сейчас нет на сайте
| Это инопланетный бутерброд, не ешь его. ОНИ специально такое масло делают, чтобы бутерброды летали как дирижабли, но в нашей атмосфере они быстро портятся и падают как обычные. Так что никаких законов физики тут нарушено не было, никого на ноль не поделили и конец света откладывается.
|
|
|
| |
| TimKruz | Дата: Вторник, 16 Октября 2012, 11:40 | Сообщение # 418 | Тема: BOX 2D (gms) |
старожил
Сейчас нет на сайте
| GMS - GameMaker Studio. С GMS и Box2D не работал, но могу подсказать классическую модель воды на плоскости. Делается она из множества кругов. Физика обычная (но, наверное, придется настроить для реалистичности, типа трение, упругость). Круги (как бы капли) - чем меньше, тем реалистичнее, идеал - точки-пиксели (правда, точки обрабатываются иначе, не как круги); однако, чем меньше капли, тем их больше, а это ведет за собой большую нагрузку. Также следует учитывать графическое представление - если "капли" физически большие, их спрайты должны быть больше. Например, круг с физическим радиусом в 2 пикселя должен иметь спрайт радиусом в 4-5 пикселей - это обеспечит закрытие нереалистичных дырок между каплями воды. А чтобы спрайты воды не наезжали на ландшафт, их, скорей всего, потребуется рисовать раньше верхней части ландшафта, но, естественно, позже персонажей и мобильных объектов. Плюс следует придать спрайтам воды прозрачность, но это уже мелочи...
|
|
|
| |
| TimKruz | Дата: Воскресенье, 14 Октября 2012, 10:49 | Сообщение # 419 | Тема: Покоментируйте код) |
старожил
Сейчас нет на сайте
| Naza, RomanNVKZ, просто нужно запускать из командной строки, по-другому смысла нет. Запускаете Пуск - Выполнить (либо WinKey+R), там вводите cmd (консоль типа), в ней вводите cd папка_с_программой, затем - имя программы (phonebook-win). Программа выдаст справку - какие параметры вводить. Делается это так: имя_программы параметр1 параметр2 значение1 и т.д. Например, phonebook --add TimKruz 12-34-56.
Хотя я бы, конечно, сделал программу в цикле с паузой (выводит и запрашивает данные внутри себя), это проще и понятнее для пользователя, особенно современному...
Vasua99, сделай поиск по фрагменту имени/телефона, это просто сделать и удобнее юзеру. И еще добавь какое-нибудь форматирование к номеру телефона. Можно, например, сохранять только цифры, а при выводе на экран вставлять дефисы и скобки, либо сохранять в формате пользователя, а искать только по цифрам.
|
|
|
| |
| TimKruz | Дата: Суббота, 13 Октября 2012, 20:29 | Сообщение # 420 | Тема: Что такое описание игры? |
старожил
Сейчас нет на сайте
| Quote (creepstas) Оно должно быть с красивыми выраженьями типа "вы окунетесь в красочный мир гармонии и счастья" или это должно быть скучное описание игрового процесса, фишек, мобов. Найди золотую середину: должно быть в меру красиво и достаточно подробно. Не нужно размытых красивых речей ни о чём или тонн подробного описания всех мелочей игры. Quote (zagezage) Твоя игра никогда не выйдет, зачем тебе к ней описание? Человек просто интересуется, не нужно делать из этого поспешных выводов...
|
|
|
| |
|