ria pc game
translate to English   translate to Chinese
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
17 февраля 2019 21:45
Вход Регистрация Забыли пароль ?

megainformatic - Game craft - игровая камера в d3d9 - приложении
Game craft - игровая камера в d3d9 - приложении [все уроки game craft]  [моделируем scv]  [моделируем scv шаг 1 часть 2] [моделируем scv шаг 2 часть 3] [Прорисовка текстуры робота SCV шаг 5]  [экспорт робота scv в формат x] 
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Основы 3D-анимации, экспорт скелетной анимации

megainformatic - Подготовка модели к использованию скелетной анимации

megainformatic - Продолжаем Создание скелета для данной модели

megainformatic - Построение ирерархических связей между объектами и основы 3d анимирования

megainformatic - Особенности экспорта моделей и анимации экспортером kWXPort080719 из 3ds max 2009 

megainformatic - Создание модели броневика (Хэд)

megainformatic cms e-mailer

megainformatic cms e-mailer

megainformatic cms e-mailer

Бесплатная Система Управления Вашим Сайтом - megainformatic cms free

megainformatic - Путешествие в мир 3d

megainformatic - Путешествие в мир 3d - страница 2

megainformatic - Путешествие в мир 3d - страница 3

megainformatic - Путешествие в мир 3d - страница 4

megainformatic - Путешествие в мир 3d - страница 5

megainformatic - Путешествие в мир 3d - страница 6

megainformatic - Создание модели броневика (Хэд) - Анимация вращения колес

megainformatic cms express files

megainformatic cms express files

megainformatic cms express files

megainformatic - Уроки Photoshop - Чудеса

megainformatic cms express files - Развертывание сайта на Вашем хостинге

megainformatic - Настольная игра "Веселый Буквоежка"

megainformatic - Уроки delphi directx 8.1

megainformatic - Уроки delphi directx 8.1 - Урок 1 - Введение в Delphi DirectX 8.1. Создание шаблона стартового приложения.

megainformatic - Уроки delphi directx 8.1 - Урок 1 - Введение в Delphi DirectX 8.1. Создание шаблона стартового приложения. Страница 2

megainformatic - Урок 2 Создаем и обрабатываем команды меню.

megainformatic - Урок 2 Создаем и обрабатываем команды меню. Страница 2

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8 - Страница 2

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8 - Страница 3

megainformatic - Урок 4 Построение класса приложения

megainformatic - Урок 4 Построение класса приложения - Страница 2

megainformatic - Урок 5 Построение классов игровых объектов и других необходимых классов

megainformatic - Урок 5 Построение классов игровых объектов и других необходимых классов - Страница 2

megainformatic - Урок 6 Игровая логика

megainformatic - Заметки по joomla - JFolder::create: Path not in open_basedir paths. Что это?

megainformatic cms express files - Добавление статей на сайт под управлением megainfromatic cms express files

megainformatic - Урок 7 2D-анимация

megainformatic - Урок 8 Загрузка/Сохранение текущей игры, режим паузы, режимы часов/будильника, запуск браузера Internet Explorer для показа сайта разработчика и других интернет-ресурсов

megainformatic - Урок 9 Тестирование и отладка приложения

megainformatic - Мои Музыкальные Миры

megainformatic - уроки Photoshop free

megainformatic cms express

megainformatic cms express

megainformatic cms express

megainformatic cms express files

megainformatic - Методы создания растровых изображений в Adobe Photoshop

megainformatic - Создание фотореалистичной текстуры травы

megainformatic - Рабочее пространство Adobe Photoshop

megainformatic - Бесшовные (тайловые) текстуры

megainformatic - Создание изображений огня, воды, неба

megainformatic - Создание текстур горных пород и суши (урок 5)

megainformatic - Рисование персонажей (урок 6)

megainformatic - Рисование фона (урок 6 часть 2)

megainformatic - Рельефные изображения

подробнее

Эмулятор БК-0010.01

Ну вот наконец-то, пришло время продемонстрировать Вам эмулятор БК-0010.01.

Сегодня мы рассмотрим эмулятор БК-0010.01 версии 2.6 написанный Юрием Калмыковым в 2002 году.

Э-эх ! Сколько времени утекло с тех пор. С тех самых пор, как у меня появилась моя первая БК-0010.01 - в далеком 1992 году.

Электроника БК-0010.01

фото взято с сайта http://ibnteo.klava.org/project/bk0010

Заметьте, что с появления БК-0010.01 (начал выпускаться с 1983 г) до появления его эмулятора (конец 1990-х - начало 2000-х) прошло всего-то 10-15-20 лет - т. е. срок относительно небольшой. Чем реально может быть Вам полезен эмулятор ?

На нём можно научиться программировать. Для этого есть специальная литература, которую легко можно найти в сети (об этом см. ниже). Включив эмулятор, почти сразу же можно начать программировать на бейсике. Можно даже сохранить полученную программу на диск, а затем загрузить снова - эмулятор позволяет работать с файлами образов своей памяти. Писать программы в машинных кодах - чуть сложнее - но тоже можно - опять же поможет чтение спец. литературы, возможность сохранять и загружать результат. Конечно Вам понадобятся еще специальные программы для БК-0010.01 - ассемблеры, дизассемблеры. Есть еще возможность работать с образами флоппи-дискет в операционной системе для БК - MK-Dos.

Как видите - эмулятор - это вовсе не такая уж бесполезная музейная вещь, а вообщем-то работоспособная программа - моделька простой ЭВМ на которой очень легко освоить азы программирования и по-сути понять как устроены компьютеры. Поскольку и современные компьютеры и ноутбуки - за которыми Вы сидите сейчас и читаете данный текст, устроены всё по тем же самым принципам - на которых работал их дедушка - БК 0010.01. Современные ПК - это всего лишь более продвинутые устройства (в плане их принципов работы, архитектура их конечно же намного сложнее, но простым пользователям не нужно вдаваться в эти детали - с их точки зрения - эмулятор БК - это удобный полигон для экспериментов, а какая-то более продвинутая программа типа MSVS или Delphi на которой можно писать программы для современных ПК - это уже вещь более сложная и требующая определенного опыта для освоения, а также кучу времени). Так что БК-0010.01 это наша история. Которая никуда не делась и продолжает жить своей жизнью.

Свою БКшку я к сожалению сфотографировать уже не могу, т. к. она канула в небытие. Это отдельная история, которую Я как-нибудь вам расскажу. А сейчас вернемся к нашему Эмулятору БК-0010.10

Вот он наш, красивый и успешный - показывает как работает игра Терминатор 2.

Эмулятор БК-0010.01 показывает игру Терминатор 2

Я запускал эмулятор под Windows различных версий. Так что думаю он должен у Вас работать. Если нет - попробуйте в настройках приложения выставить режим совместимости.

Собственно что умеет делать эмулятор БК-0010.01 версии 2.6 ? Он умеет показывать реальную работу БК-шки в полноцветном режиме 256х256 точек при 4х цветах. Есть также монохромный режим где отображаются те же цвета, но в таком представлении, как если бы они отображались ч/б монитором.

Эмулятор БК-0010.01 показывает игру mcchess в монохромном режиме

На рисунке я показал, как выглядит экран в черно-белом (монохромном) режиме при игре в программу под названием mcchess т. е. в шахматы - достаточно убрать галочку (как показано на рисунке). В своё время, помнится году этак в 1993м или даже раньше я иногда играл в эти самые шахматы на БКшке. Правда монитор был у меня старинный и черно-белый. Но зато компьютер был свой собственный, а не в каком-то компьютерном центре, где чтобы поиграть всего несколько минут надо было заплатить 1 советский рубль или даже больше. Игры Каратэка, там конечно не было (имею в виду на моей БК-шке), но были игры даже очень ничего.

У моих друзей были ZX-Spectrum'ы. БКшка, конечно не конкурент ZX-Spectrum, но главное отличие её было в том, что все игры были на русском языке. Правда игр было не так много как на Спектрум, да и достать их было сложнее. Однако скоро я узнал, что в Ленинграде, а потом уже в Санкт-Петербурге, есть некая фирма КИ-ЧПМ, в которой по почте можно было заказывать кассеты с играми для БК-0010.01. Вот это была прекрасная пора. Закажешь бывало кассету и ждёшь потом с нетерпением когда же её пришлют. Ну а уж когда пришлют - играешь не наиграешься. Правда, что плохо - какая-то часть игр на кассетах ни в какую не хотела работать из-за ошибки загрузки. Поэтому к сожалению во многие игры так и не удалось поиграть, хотя во многие всё-таки удавалось.

Моё счастье было в том, что помимо кассетника (т. е. кассетного бытового магнитофона Скиф), у меня еще был магнитофон катушечный (название уже не помню, он где-то пылится сейчас под кроватью на даче :)))) Так вот - игры переписанные с кассетника на катушечный читались значительно лучше и без ошибок. Ну это и понятно - качество записи/воспроизведения на катушечном магнитофоне было в несколько раз выше - там и скорость была вдвое выше (9 м/с вместо 4 на кассетном) и даже был режим 19 скорости (но я его для записи игр не применял т. к. при этом помещалось их на катушку вдвое меньше), да и лента магнитная шире была. Вообщем с кассетника игры можно было лишь переписывать на катушки. А играть уже читая с катушечного. Тогда ошибок загрузки практически не было. А если и были - то достаточно было протереть головку катушечного магнитофона тампоном смоченным в спирте. Немного подождать и ... вперед играть !

Ну что же, что было то было, с магнитофона мы ничего загружать уже не будем. Т. к. у нас слава богу есть эмулятор. А это как вы сами понимаете - огромный прыжок по сравнению с маленьким шажком того, как если бы к БКшке у вас вместо магнитофона появился НГМД или FDD, т. е. попросту флоппи-дисковод. Я конечно в те времена о таком даже мечтать не мог. Но вот эмулятор БК-0010.01 версии 2.6 позволяет имитировать и то и другое. Т. е. можно загружать игры как из файлов так и с образов дискет. Ждать по 3 и больше минут пока загрузится игра тоже не нужно. Т. к. в эмуляторе игры грузятся почти мнгновенно.

Сначала покажу как загрузить игру обычным способом. Включаем эмулятор. На экране у нас появится обычная картинка - Бейсик Вильнюс. Тоже самое как вы понимаете, появлялось и на реальной БК-0010.01 при её включении. Мы попадали в бейсик и могли собственно писать программы на этом языке программирования. У меня где-то даже сохранилась книжка про программирование на бейсике, фокале и в машинных кодах для БК-0010.01. Правда искать её сейчас я не буду. Цель у нас другая. Но вы при желании можете поискать эту книжку в сети. Автора вот правда я тоже не помню. Но будет время - поищу книжку и напишу сюда. Кстати нашел я название книжки и автора - на это потребовалось буквально пара секунд в гугле - Митрюхин В.К. Донской А.Н. Михайлов А.В. Немов А.М. ПРОГРАММИРОВАНИЕ НА БК - 0010 - 01. Так что почитав её Вы можете буквально взять и начать писать программы для БК-0010.01 - эмулятор кстати позволяет сохранять образы памяти в файл. Так что можно в принципе написать небольшую (или даже большую) программу и сохранить её потом. Можно ли сохранить их в отдельный файл для использования в эмуляторе или вставить в образ img диска ? Наверное можно. Я пока не разбирался с этим вопросом.

Разберемся как загрузить обычную игру. Итак. Как я уже говорил мы находимся в Бейсике.

Эмулятор БК-0010.01 показывает Бейсик

В комплекте с эмулятором есть набор папок (скачать это всё можно будет по ссылке ниже). В частности там есть папка Bin, в которой записано более 200 файлов. Это в основном игровые программы. Также есть папка Img в которой есть 10 образов дискет также с работающими играми и программами. На скриншоте выше был как раз показан экран с игрой Терминатор 2, запущенный из операционной системы MKDos с образа флоппи-диска.

Итак, всё, что нам нужно, чтобы запустить игру как если бы мы на реальной БК-шке хотели бы загрузить её с магнитофона:

Напишем команду MONIT и нажмём клавишу Enter.

Эмулятор БК-0010.01 показывает Бейсик, вводим команду MONIT

Кстати нажатия клавиш будут сопровождаться звуком "Бип". На реальной БКшке это звучало именно также. Избавиться от этого биканья можно было перейдя в монитор и загрузив какую-либо программу или игру. В играх "Бип" уже не работает, т. к. динамик БК-шки и клавиатурный драйвер, который генерировал этот "Бип" при помощи специальной подпрограммы, перенастраивается на работу в машинных кодах. Также как вы понимаете в Бейсике или в том же мониторе, можно было самому при желании написать такую подпрограмму, чтобы отключить "Бип" или выдавать какой-либо иной звук по нажатию клавиш. Обычно, конечно, вообще этот звук отключали.

Итак, написав MONIT и нажав Enter, мы оказались в так называемом "мониторе" - специальной программе, наподобие упрощенной операционной системы зашитой в ПЗУ БКшки, а в эмуляторе используется образ этой ПЗУ, образ естественно взят с реальной БК.

Эмулятор БК-0010.01 показывает мониторную систему для загрузки программ в машинных кодах

Тут просто пишем M и жмём клавишу Enter.

Эмулятор БК-0010.01 показывает мониторную систему для загрузки программ в машинных кодах - Тут просто пишем M и жмём клавишу Enter.

Появится надпись: ИМЯ?

Эмулятор БК-0010.01 показывает мониторную систему для загрузки программ в машинных кодах - Тут просто пишем M и жмём клавишу Enter - Появится надпись: ИМЯ?

Требуется ввести, естественно, не ваше имя, а название программы, которую Вы хотите загрузить. В реальной БКшке надо было написать правильно название файла ЗАГЛАВНЫМИ или строчными буквами, именно так как был назван файл, а затем включить магнитофон, перемотать ленту к нужному месту, включить воспроизведение и нажать клавишу Enter. Дальше ждать - пока загрузится игра. Если Вы перемотали ленту не к тому месту, то может быть ошибка загрузки т. к. правильный файл найден не был. Либо ошибка может быть и при загрузке правильного файла. Но это уже по другим причинам.

К счатью в эмуляторе никаких таких страшных вещей не будет. Да и магнитофон, как я уже говорил, вам никогда не понадобится. Всё что делает эмулятор при нажатии клавиши Enter в ответ на надпись ИМЯ? - это открывает диалоговое окно. И вам остается как обычно найти нужный файл и открыть его.

Эмулятор БК-0010.01 показывает мониторную систему для загрузки программ в машинных кодах - Тут просто пишем M и жмём клавишу Enter - Появится надпись: ИМЯ? Нужно нажать Enter и выбрать нужный загружаемый файл.

Далее эмулятор загрузит выбранный файл (на рисунке видно, что я открывал эти файлы из той самой папки Bin, которая приложена к эмулятору), как если бы Вы загрузили этот файл на реальной БКшке с магнитофона. Для примера я загрузил игру Circler. Игра правда сразу не запустилась. Надо еще ввести команду S и нажать Enter. После этого игра запустится. Попробуйте сами (скачать архив с эмулятором и со всеми нужными файлами можно по ссылке внизу страницы) - загрузите и запустите игру Circler и убедитесь, что всё у вас работает. Если да - можно попробовать загружать какие-то еще игры. Если игра зависла (такое иногда бывает) или она вам надоела или еще какая-либо причина - то вовсе не обязательно сразу же выключать эмулятор.

Эмулятор БК-0010.01 показывает игру Circler - начальную её заставку

Эмулятор БК-0010.01 показывает игру Circler

Достаточно выбрать пункт меню CPU - Reset - и БКшка будет перезагружена как будто у неё выключили и снова включили питание. У реальной БКшки тоже не было клавиши Reset, как например у IBM PC совместимых компьютеров. Но имитировать Reset тоже можно было. Для этого можно было замкнуть определенные контакты в месте где подключались блоки расширения с языком Фокал. Я сейчас уже не помню, что именно там надо было замыкать, но проще было именно выключить питание. Ну а в эмуляторе как видите это сделать еще проще - вы делаете Reset - сброс - и снова можете загрузить какую-либо другую программу.

Далее я расскажу как запускать игры с образов дисков img, а также Вы найдете ссылку на архив который содержит всё нужное вам добро - это эмулятор, нужные ему файлы и папки, а также указанные здесь папки Bin и Img с играми и образами флоппи-дисков для БК 0010.01.

Эмуляция работы с флоппи-дисководом осуществляется выбором пункта меню - CPU - Run BK0010(01) with FDD + extended 16K - т. е. эмулируется подключенный флоппи-дисковод и дополнительное пространство памяти в 16 Килобайт.

Эмулятор БК-0010.01 с эмуляцией флоппи-дисковода и 16Кб доп. памяти

Как только Вы включаете эту опцию ваша виртуальная БКшка, т. е. эмулятор БК-0010.01 версии 2.6, переходит в мониторную систему. Вам достаточно лишь ввести команду - S160000 и нажать клавишу Enter. Это приведет к запуску начального загрузчика с системной дискеты. По-умолчанию образ диска MK-DOS смонтирован на виртуальный дисковод A.

Эмулятор БК-0010.01 с эмуляцией флоппи-дисковода и 16Кб доп. памяти - команда S160000 - запуск начального загрузчика системной дискеты

Но прежде чем сделать это, вам нужно убедиться, что виртуальный диск A у БКшки содержит подключенный образ MK-DOS, а на диск B подключен какой-либо еще образ, с которым можно работать. Это можно проверить так, как показано на рисунке ниже - выбрав пункт меню Options > Disk Image Manager

Эмулятор БК-0010.01 с эмуляцией флоппи-дисковода и 16Кб доп. памяти - показывает какие образы и на какие виртуальные диски смонтированы

Эмулятор БК-0010.01 с эмуляцией флоппи-дисковода и 16Кб доп. памяти - показывает какие образы и на какие виртуальные диски смонтированы

Итак, если всё сделано как показано на рисунках, то вводим S160000 и нажимаем Enter. При этом у вас загрузится MK-DOS как показано на рисунках ниже.

Эмулятор БК-0010.01 с эмуляцией флоппи-дисковода и 16Кб доп. памяти - запуск MK-DOS - начальная заставка

Сначала отобразится начальная заставка как на рисунке ниже, а затем панель файлового менеджера напоминающего оболочку Norton Commander для IBM PC. У современных компьютеров и ноутбуков обычно популярен Total Commander. Norton Commander был первой такой оболочкой появившейся на IBM PC для MS-DOS. А на БКшке как видим нечто похожее. Мне к сожалению не довелось увидеть MK-DOS на реальной БК 0010.01, я вижу её впервые как и Вы, в эмуляторе. Но напоминает она мне именно Norton Commander - потому что много позднее, я с ней сталкивался и работал уже на IBM PC совместимых компьютерах.

Итак, в правой половине экрана как видим отображается содержимое диска A, а в левой - B. Клавишей TAB можно переключаться с одной панели на другую делая её активной. Если переключиться на панель с диском B, то клавишами стрелок можно выбрать нужный файл, который мы хотим загрузить с дискеты и запустить. Нажимаем Enter - и файл запустится. Для проверки советую запустить файл TERMINATOR2. Должна будет загрузиться игра TERMINATOR2. Если всё получилось - значит можно попробовать нажать Reset (CPU > Reset CPU), что вернет вас снова в файловый менеджер. И пробовать загружать другие игры или программы.

Эмулятор БК-0010.01 с эмуляцией флоппи-дисковода и 16Кб доп. памяти - отображает панель файлового менеджера напоминающего оболочку Norton Commander для IBM PC

Скачать самораспаковывающийся архив bk_emul.exe содержащий папки BK 0010(01) Emulator v2.6, bk11_50b, for_bk и файл установщика bk_emulator_v26.exe можно по ссылке ниже -

скачать самораспаковывающися архив bk_emul.exe содержащий папки BK 0010(01) Emulator v2.6, bk11_50b, for_bk и файл установщика bk_emulator_v26.exe

Архив содержит папку с установленным эмулятором БК-0010.01, а также все необходимые файлы и папки. Он готов к работе и его сразу можно запускать - двойным кликом по файлу BK.exe внутри папки BK 0010(01) Emulator v2.6. Архив также содержит исталлятор bk_emulator_v26.exe - на случай если Вы захотите установить эмулятор из инсталлятора. Но принципиально он ничем не отличается. Просто также распакуется. В папке bk11_50b есть файлы другого эмулятора - БК-0011, но он в Windows не работает. Возможно будет работать в DosBox, пока не проверял. Также есть там папка for_bk в которой вложенные архивы с образами дисков БК, некоторые из образов уже есть в папке BK 0010(01) Emulator v2.6/Img/ в распакованном виде, а другие вы можете сами распаковать и разместить в этой папке, чтобы потом подключать образы и работать с ними.

Это всё на сегодня про Эмулятор БК-0010.01, но если у вас остались какие-то вопросы - пишите.

подробнее

     
     
     
 
Основы 3D-программирования DirectX8.1 в Delphi 6-7: теоретические и практические основы создания игр.
 
Вывод Заставки
 
Продолжаем серию уроков, посвященных разработке Delphi DirectX игры. В данном уроке показано как вывести 2D-изображение на поверхность 3D-сцены. Дополнительно показан один из способов "затухания" экрана для эффектного вывода фирменной заставки.
 
[Все уроки]
 
Урок построен в форме упражнений. В упражнениях даются примеры модификаций исходного кода и краткое описание того, что при этом наблюдается и как это объясняется. Выполняя упражнения Вы лучше вникнете в суть проблемы.
   
ПОСТАНОВКА ЗАДАЧИ: Требуется организовать вывод 2D-изображения (текстуры) в 3-х мерной сцене. В чём суть проблемы? Суть в том, что при программировании Direct3D для вывода 2D-изображений отсутствуют специальные методы. Как это организовать - решаем вместе.
 

Для выполнения упражнений Вам понадобится:

- архив с исходным кодом; (588 Кб)

[downloads:17]

- архив с ОБЩИМ КОДОМ; (772 Кб)

Архив с исходным кодом содержит пример решения поставленной задачи, архив с общим кодом - содержит дополнительный общий код необходимый при разработке Delphi DirectX 8.1 - приложений.
 

Для начала откомпилируйте пример и запустите приложение. Убедитесь, что всё работает. (Если нет, то читайте файлы readme.txt приложенные к архивам)

 

Нормально работающий пример (см. файл game_gui.exe внутри архива game_gui.rar

[downloads:17] ) должен давать следующий результат: создание нормального Windows-окна, постепенное проявление на экране заставки, выдерживание ее некоторое время, затухание, вывод некототорой 3D-сцены (поверхность суши). Выход из приложения - [Escape].

 

Рассмотрим содержание примера с исходным кодом (game_gui.dpr).

Приложение построено на принципах стандартного WinAPI-приложения. Для лучшего уяснения того, что это такое обратитесь к предыдущим урокам. Хорошим стартом в понимании разработки Delphi DirectX - игр является также пример игры - Donuts3D.

 
Класс приложения - TD3DGameApp. Название класса чисто условное и его легко изменить в своих приложениях. Если Вы заглянете в исходный код (файл Main.pas проекта game_gui.dpr), то увидите что данный класс производится от TD3DAbstractApp. Основа данного класса приложения - из Donuts3D с небольшими изменениями.
 

Лучше уяснить структуру и функционирование данного класса можно рассмотрев пример Donuts3D. В контексте данного урока важны следующие опорные моменты:

SplashGameGUI: TD3DImage2D; //внутри класса объявлено следующее поле

В методе TD3DGameApp.DrawScreenSplash помимо прочего вызывается метод -

SplashGameGUI.DrawScaled(-1.05, 0.55, 0.9, 1.34, 1.34, DrawD3DImage2D_Filtered, Alpha);

Это и есть вывод заставки на экран.

 
Как видим, для вывода 2D-изображения в 3D-сцене используется класс TD3DImage2D. Реализация этого класса находится в модуле D3DGUI.pas. Этот модуль и этот класс могут послужить Вам примером того, как разработать новые классы для выполнения необходимых действий по подготовке игрового процесса. Ссылка на D3DGUI добавлена в uses модуля Main.pas
 
Вообще говоря, вывод 2D-изображения в 3D-сцене можно осуществить так, как это делается при выводе 2D-спрайтов (см. Donuts3D). Но тогда обязательно требуется использование камеры (CD3DCamera). Это не составляет никакой проблемы, как раз наоборот, рядом с игровым меню, на заднем плане, может отрисовываться какая-либо анимированная демонстрационная сцена игры, что даже улучшит внешний вид игрового экрана меню. Однако при этом нужно не забывать про то, что методы вывода 2D-изображения методом 2D-спрайтов (технология, известная под названием Billboarding) должны вызываться там же, где используется камера. В противном случае Вы будете ломать голову почему всё написано правильно, а 2D-изображения так и нет в сцене.
 

Обратите внимание на код внутри методов TD3DGameApp.DrawScreenSplash и TD3DGameApp.DrawDisplayList

Оба они содержат вызов метода Draw2DPictures;

Однако результат появляется только в методе TD3DGameApp.DrawDisplayList. Почему?

Именно по указанной причине: в методе TD3DGameApp.DrawScreenSplash нет установки вида из камеры (CD3DCamera.SetViewParams). В методе DrawDisplayList установка вида из камеры происходит в методе UpdateDisplayList, который вызывается из FrameMove. FrameMove вызывается в методе Run до метода Render. А уже Render содержит соответствующий вызов TD3DGameApp.DrawDisplayList.

Если Вам не совсем понятно что к чему, обратитесь к схеме Структура функционирования типового DirectX-приложения, а также к исходному коду.

 
В модуле D3DGUI.pas применяется более изящное решение. Если Вы хоть немного разбирались с Delphi DirectX, то наверное уже задавались вопросом каким образом осуществляется вывод текста. Для этого служит типовой модуль D3DFont.pas (представляющий собой адаптацию D3DFont.h + D3DFont.cpp из DirectX SKD). Там вы найдете класс CD3DFont. Внимательно посмотрев на реализацию методов DrawText и DrawTextScaled Вы найдете ответ на вопрос.
 
В модуле D3DGUI.pas как раз и применяется данное решение, т.е. вывод 2D-изображения осуществляется практически аналогично выводу текста классом CD3DFont. Есть конечно и некоторые отличия, но их Вы найдете в D3DGUI.pas
 
Расскажем теперь о правилах использования класса TD3DImage2D (эти правила касаются использования любых Direct3D8-производных объектов сцены - т.е. всего того, что будет отрисовываться на экране через D3D или помогать этому процессу - моделей, текстур, эффектов (шейдеры) и т.п.).
 

- внутри класса приложения или в виде отдельной переменной объявить поле с данным типом -

Some2DImage: TD3DImage2D;

- в методе создания приложения создать экземпляр класса


Some2DImage := TD3DImage2D.Create(TextureFormat); // TextureFormat = формат
// изображения, например
// D3DFMT_A8R8G8B8


- в методе инициализации 3D-сцены приложения (InitDeviceObjects, CreateDeviceObjects)
вызвать метод инициализации экземпляра класса


Some2DImage.InitDeviceObjects(pd3dDevice, TextureFilename);
// TextureFilename - путь и имя файла текстуры изображения

- в методе RestoreDeviceObjects приложения вызвать метод


Some2DImage.RestoreDeviceObjects;

- в методе InvalidateDeviceObjects приложения

Some2DImage.InvalidateDeviceObjects;

- в методе DestroyDeviceObjects приложения
SAFE_DELETE(Some2DImage);

============================================================

Для задания ключевого (прозрачного) цвета служит свойство
ColorKey (read/write)

Some2DImage.ColorKey := $00000000;

Для хранения имени и пути загруженного файла текстуры свойство-
TexFilename (read only)

SomeFilename := Some2DImage.TexFilename;


В методах отрисовки 3D-сцены приложения используются методы отрисовки 2D-изображения в 3D-сцене

Some2DImage.Draw(x, y, Flags, Alpha);

Some2DImage.Draw(x, y, Flags, Alpha);Some2DImage.Draw(x, y, Flags, Alpha);
// x, y - координаты (в пикселях) на экране; Flags - дополнительные
// опции отрисовки (DrawD3DImage2D_Filtered - задает линейную фильтрацию при выводе)
// Alpha (0..255) - полупрозрачность изображения - от прозрачного (0) до
// полностью непрозрачного (255).

 

Some2DImage.DrawScaled(x, y, z: Single; fXScale, fYScale: Single;
Flags: Cardinal; Alpha: Byte)

// то же, что и предыдущий метод, но x, y, z - не в пикселях, а в координатной системе Viewport (-1..+1). fXScale, fYScale задают масштаб в долях от окна Viewport (1 - во весь Viewport, 0.5 - в 1/2 от Viewport и т.д.). Такая система задания масштаба удобна тем, что не зависит от размеров окна 3D-сцены. Размеры окна в пикселях могут быть любые. Параметры Flags и Alpha - те же, что и в предыдущем методе.

 

 
Чтобы лучше уяснить себе использование данного класса переходим к упражнениям.
 

В методе TD3DGameApp.DrawScreenSplash происходит вывод заставки -

SplashGameGUI.DrawScaled(-1.05, 0.55, 0.9, 1.34, 1.34, DrawD3DImage2D_Filtered, Alpha);

Попробуйте в качестве флага указать 0, т.е. -

SplashGameGUI.DrawScaled(-1.05, 0.55, 0.9, 1.34, 1.34, 0, Alpha);

Результатом будет вывод более четкого, но без плавного перехода (antialiasing) по краям изображения.

Замечание: после внесения изменений в код не забывайте перекомпилировать приложение, а уж после запускать и смотреть что получилось!

 

Каким образом реализуется плавное появление, а затем затухание для заставки?

Сначала попробуйте изменить строчку -

SplashGameGUI.DrawScaled(-1.05, 0.55, 0.9, 1.34, 1.34, DrawD3DImage2D_Filtered, Alpha);

вместо Alpha введите 255 -

SplashGameGUI.DrawScaled(-1.05, 0.55, 0.9, 1.34, 1.34, DrawD3DImage2D_Filtered, 255);

указанная особенность вывода заставки пропала. Заставка просто отображается в течении 9 секунд (SplashDelay).

Выше данной строки расположен следующий код -

Period := SplashDelay/3;
Phase := D3DX_PI/2*DXUtil_Timer(TIMER_GETAPPTIME)/Period;

if DXUtil_Timer(TIMER_GETAPPTIME) < Period then
Alpha := 255 - Round(Abs(255*(cos(Phase))));
if (DXUtil_Timer(TIMER_GETAPPTIME) > Period) and (DXUtil_Timer(TIMER_GETAPPTIME) < 2*Period) then
Alpha := 255;
if DXUtil_Timer(TIMER_GETAPPTIME) > 2*Period then
Alpha := 255 - Round(Abs(255*(sin(Phase))));

 
Как вы уже наверное догадались проявление и затухание заставки организовано за счет изменения значения Alpha - полупрозрачности полигона, на котором рисуется текстура заставки.
 
Прокомментируем указанные строки. Все время отображения заставки (SplashDelay) делится на 3 части и называется период. Момент изменения (фаза) вычисляется по указанной формуле.
 
Далее всё еще проще - за промежуток времени меньше, чем Период значение Alpha изменяется по косинусоидальной кривой, т.е. от 0 до 255 (см. формулу).
 
За промежуток времени от Период до 2 Периода значение Alpha остается постоянным. И, наконец, в промежуток времени от 2 Периодов до SplashDelay значение Alpha изменяется по синусоиде - от 255 до 0.
 
Т.к. во время показа заставки никаких полезных действий не производится, то в дальнейшем цикле разработки игрового проекта, можно использовать эту стадию начала работы игры для параллельного выполнения каких-либо полезных, но скрытых от пользователя действий: загрузка игровых моделей, подготовка сцены и т.п.
 

Это было лишь краткое знакомство с выводом титульной фирменной заставки. Для лучшего уяснения данного материала нужно обязательно написать собственное приложение и тщательно проработать все показанные особенности.

Для разработки действительного игрового проекта дополнительно потребуется решение следующих вопросов:

- создание и использование анимированных 2D-изображений для вывода меню и анимированных заставок (это касается расширения возможностей класса TD3DImage2D);

- создание и использование игрового меню;

- помещение используемых моделей, текстур в специальный библиотечный файл и организация загрузки из него (необходимо для целей защиты авторских прав на изображения, чтобы они не хранились открыто в папке ресурсов игры, а были бы доступны только исполнимому файлу или специально написанной утилите для просмотра ресурсных библиотек).

 
[Назад] [Все уроки]
 
     
     
     
     
     
подробнее

2.02.2019

fle game generator - эффекты под музыку и без на движке fle game engine



Вам наверняка хотелось бы помимо базовых возможностей, которые есть
в приложении fle game generator (fgg) иметь и возможность добавить что-то новое,
непохожее на то, что уже есть.

В этом уроке попробуем разобраться как же этого достичь.

Для начала нам понадобится:

fle game engine - набор исходных файлов которые можно скачать
на сайте со страницы -

megainformatic.ru/?page=503
кнопка Скачать.

Если Вы авторизованы, то ввод email для скачивания не потребуется.
Размер дистрибутива 482 Mb.

Также Вам понадобится для работы

Microsoft Visual Studio 2005 (MSVS 2005).

DirectX SDK Aug 2008.

megainformatic.ru/?page=525 - на данной странице найдете ссылку
для скачивания DirectX SDK Aug 2008.



Их также нужно скачать и установить в вашей системе.

Сначала MSVS 2005, затем DirectX SDK Aug 2008.

После того как все это сделано, а
fle game engine также скачан и распакован, можно приступать к дальнейшей
работе.

В первую очередь вам потребуется изучить некоторые основы.
Пройти курс уроков -
megainformatic.ru/?page=516



Ну и самое главное, что нам понадобится - это конечно исходный
код приложения fgg.



После того, как исходный код скачан с сайта, нужно распаковать архив,
и расположить его в одной из папок, куда вы установили fle game engine.
Потому что нам понадобится часть исходных файлов, которые есть
внутри папки fle game engine.

О настройке проекта я уже писал здесь -
megainformatic.ru/?page=525

и здесь
megainformatic.ru/?page=586



Ссылка для скачивания исходных файлов fgg.



Размер архива 111 Mb.

Представляет самораспаковывающийся архив.

Включает полный исходный код, все необходимые файлы и информационные
материалы, инструкции.

контрольные суммы для проверки целостности скачанного архива.

Можно проверить программой HashTab.

CRC32: 56F472B6
MD5: 09434B7CA42B1F0E57CAC8DDAEDA9F95
SHA-1: 92793C62EE88474C3A87DB68A4AD64609608B25F

О том, как проверить контрольные суммы при помощи
HashTab рассказано тут -
megainformatic.ru/?page=568



Если все установлено и настроено, откроем проект в MSVS 2005 из папки
куда Вы распаковали исходные файлы fgg.

Найдем файл start.h

и в нем изменим строки -
#define MyGameAppName L"fly snow 3d 02.02.2019"
#define MyGameAppName2 "fly snow 3d 02.02.2019"

На текущую дату, которая у вас сейчас
или можно написать любой текст какой вам нравится.

Например так,

#define MyGameAppName L"my fgg"
#define MyGameAppName2 "my fgg"

Выполним сборку приложения -

Build > Clean Solution
Build > Rebuild Solution.

Если в папке

путь_к_папке_исходных_файлов_fgg\fgg\fgg\

например у меня он такой -

C:\fle_game_engine\private\source\bol_l2\fgg\fgg\

нормально создался файл
start.exe

Вы его запустили и приложение нормально работает.

Значит первый шаг сделан.

Можно пробовать применять различные модификации в коде, чтобы создать
такие эффекты, которые нужны именно Вам.

Начнем с самого простого.

В приложении Вы наверное уже видели как летят 3d кубики.

Попробуем вместо кубиков выводить 3d шарики.

Для этого Вам понадобится:

установленная программа 3ds max 2009 или другой версии (которая у вас есть),
а также установленный в ней плагин kwXPort, который позволяет экспортировать
модели из формата 3ds max, в формат .x

В программе 3ds max нужно создать модель 3d шарика,
экспортировать её в формат .x

а затем, в папке

путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\models\snow3d

например у меня путь такой -
C:\fle_game_engine\private\source\bol_l2\fgg\fgg\Media\models\snow3d

Вместо уже имеющихся там файлов моделей кубиков, вставить файлы моделей шариков.

Также вам надо учесть масштаб вашего шарика.

Для этого откройте из 3ds max пример модели кубика -

путь_к_папке_исходных_файлов_fgg\fgg\concept\graphics\box\model

у меня путь такой -
C:\fle_game_engine\private\source\bol_l2\fgg\concept\graphics\box\model

И соответственно сделайте ваш шарик по масштабу примерно таких же размеров, как кубик.

Для чего это нужно ? Чтобы размер ваших шариков в игровой сцене
в приложении fgg был примерно таким
же как кубиков. Иначе их визуальное отображение может быть не таким,
как Вы ожидаете или вообще может
получиться так, что Вы их совсем не увидите (если масштаб будет намного
меньше масштабов самой игровой
сцены или наоборот намного больше).

В первом случае шарики могут оказаться слишком малыми, чтобы их увидеть в сцене,
а во втором - камера
как бы будет находиться внутри больших шариков (если они слишком большие) и
опять же - мы ничего не увидим
в сцене.

Так что учитывать масштаб - это очень важно.

Второй момент, который нужно учесть - это правильно разместить шарик в
файле модели, а также
нанести на его поверность текстуру.



Для примера я уже приложил в папке

путь_к_папке_исходных_файлов_fgg\fgg\concept\graphics\box\model\

пример готового шарика -

ball_sample.max

Можете попробовать открыть из 3ds max и посмотреть, что там.

Вы увидите шарик, расположенный в центре осей координат, и там же есть кубик.

Кубик можно теперь удалить из сцены, а модель сначала пересохранить как ball_1.max

А затем конвертируем её в формат .x

File > Export > kW X-Port (*.X)

О том, как экспортировать файлы моделей в формат .X я уже описывал тут -

megainformatic.ru/?page=420

Для просмотра данной статьи на сайте Вам потребуется авторизоваться.

Итак, если модель ball_1.x создана копируем её и файл её текстуры
в папку -

обычно 3ds max создает файлы моделей в такой папке -
C:\Users\имя_пользователя\Documents\3dsmax\export



Значит вам остается взять оттуда файл

ball_1.x

и скопировать в папку -

путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\models\snow3d

также чтобы модель нормально отобразилась в игровой сцене приложения fgg Вам нужно сделать следующее:



Открыть модель в любом текстовом редакторе (например Блокнот)
найти строку -

TextureFilename Diffuse

и абсолютный путь к файлу текстуры изменить на относительный например как было у меня:

было -

TextureFilename Diffuse {
 "C:\\fle_game_engine\\private\\source\\bol_l2\\fly_snow_3d\\concept\\graphics\\box\\tex\\box.jpg";
}


надо изменить на


TextureFilename Diffuse {
     "\\Media\\textures\\box.jpg";
    }



Пока для шарика будет использоваться та же текстура, что использовалась для кубика box.X

Да, следует иметь в виду, что файл модели ball_1.x у вас должен быть экспортирован в текстовом формате.
Если же у вас стояли галочки binary или compress, то при экспорте их надо было убрать.

Для этого вернитесь к шагу
О том, как экспортировать файлы моделей в формат .X



Далее -

В приложении fgg у нас сейчас используются кубики.

Нам нужно сделать вместо них шарики.

В текстовом редакторе откроем файл

путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\models\snow3d\model_list.txt

было

box.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
box2.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
box3.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
box4.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;

изменим так -

ball_1.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
box2.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
box3.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
box4.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;

Сохраняем файл и пробуем запустить приложение fgg.

Из папки
путь_к_папке_исходных_файлов_fgg\fgg\fgg\

запускаем файл start.exe который Вы скомпилировали из MSVS 2005
на предыдущих шагах. Если еще нет - то вернитесь на этот шаг
и выполните сборку проекта fgg в среде MSVS 2005.

Таким образом, у нас теперь в приложении должно выводиться:

1 вид шариков и 3 вида кубиков, поскольку мы поменяли 1 строку
в файле
путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\models\snow3d\model_list.txt



Если у вас все получилось, то поздравляю !

У меня получилось так -

fle game generator - 1 вид 3d шариков и 3 вида 3d кубиков

По-аналогии теперь можете поменять в 3ds max у шарика текстуры на желтую, зеленую и синюю,
как у кубиков, экспортировать эти шарики как ball_2.x, ball_3.x, ball_4.x и
скопировать в папку -

путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\models\snow3d\

Файл

путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\models\snow3d\model_list.txt

изменить так -

ball_1.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
ball_2.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
ball_3.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;
ball_4.X; 0.0f; 0.6f; 0.9f; 1.0f; 1.0f; 1.0f;

Сохраняем изменения.

Запускаем приложение fgg.

путь_к_папке_исходных_файлов_fgg\fgg\fgg\start.exe

Теперь у нас уже будет 4 вида разноцветных 3d шариков в приложении, а кубиков уже не будет.

Вот что получилось у меня -

fle game generator - 4 вида 3d шариков

На самом деле Вы можете это проделать еще проще, и вам уже даже не понадобится 3ds max.

Просто копируем файл
ball_1.X

внутри папки
путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\models\snow3d\

давая ему имена

ball_2.X
ball_3.X
ball_4.X

И в каждом из указанных файлов меняем строчку -

ball_2.X

TextureFilename Diffuse {
"\\Media\\textures\\box.jpg";
}

на
TextureFilename Diffuse {
"\\Media\\textures\\box2.jpg";
}

ball_3.X

TextureFilename Diffuse {
"\\Media\\textures\\box.jpg";
}

на

TextureFilename Diffuse {
"\\Media\\textures\\box3.jpg";
}

ball_4.X

TextureFilename Diffuse {
"\\Media\\textures\\box.jpg";
}

на

TextureFilename Diffuse {
"\\Media\\textures\\box4.jpg";
}



То есть мы просто сделали 3 файла моделей шариков с другими именами,
и прописали в них, чтобы они использовали другой вид текстуры -

box2.jpg
box3.jpg
box4.jpg

Ну что ж, это были самые азы. Но как видите даже для их воплощения
нужно достаточно много знать и иметь некоторые установленные
программы и навыки работы с ними.

Далее - в нашем следующем уроке Мы рассмотрим как реализовать
некоторые чуть-чуть более сложные вещи.

Как всегда мы будем начинать с самого простого, и постепенно
усложнять задачу.

Так Вы вполне легко сможете усвоить принципы создания визуальных
эффектов практически любой сложности.

Весь секрет состоит в умении раскладывать их на простые составляющие.

Итак, давайте начнем.

[далее]

подробнее

     
 

Конструируем свой сайт - полезные статьи для начинающих строителей сайтов.

Мы рассмотрим как создать простейший счетчик посетителей и задействовать при этом использование баз данных MySQL. Этим самым мы постараемся как говориться "убить сразу двух зайцев" - освоить начальные сведения по PHP и разобраться с тем, как работать с базами данных MySQL из кода на PHP.

 
     
 

В этой статье я кратко опишу принцип работы с базами данных MySQL.

В первую очередь что нужно иметь под рукой:

1) набор Web разработчика denver - этот набор включает все необходимые Вам программы для отладки и разработки Вашего сайта, включая PHP, MySQL, Apache, PERL, PostgreSQL;

2) и конечно же Вам понадобится какой-либо удобный html-редактор, например неплохим выбором является Macromedia Dreamweaver;

 
     
  После того, как Вы скачаете всё необходимое на свой ПК, нужно установить эти программы и начать работу.  
     
 

Если пакет denver корректно установлен в Вашей системе, то при вызове браузера Internet Explorer и наборе в его адресной строке ссылки

http://localhost/

 
     
  Вы будете попадать на заглавную страницу denver'а.  
     
 

Чтобы создать новую базу данных нужно выбрать на открытой странице пункт [Заведение новых БД и пользователей MySQL], либо в адресной строке браузера набрать ссылку и выполнить переход по ней -

http://localhost/denwer/Tools/addmuser/index.php

 
     
 

Для чего нужны базы данных ? Чтобы накапливать какую-либо информацию, а затем выдавать её в зависимости от различных запросов к базе данных.

Для работы сайтов удобными являются базы данных MySQL. К тому же, в языке PHP также разработанном для целей сайтостроения, реализованы все возможности работы с такими базами данных.

Аббревиатура SQL означает не что иное как Structured Query Language - Язык Структурированных Запросов. Иными словами это специальный язык, при помощи которого, можно обращаться к базам данных для целей их создания, изменения и извлечения из них необходимых данных.

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

Пароль администратора MySQL

это поле оставляем пустым

Имя базы данных

counterdb

Логин пользователя

можно ввести то же имя,

counterdb

а можно другое, например

admin

Пароль

тут уж вводите всё, что угодно, но желательно использовать латинские буквы и цифры, другие символы и спецсимволы использовать нельзя!

например -

Ji7yVasb2

...еще раз:

повторяем ввод пароля для проверки

Ji7yVasb2

 
     
  Жмём кнопку Создать БД и пользователя  
     
  Введенные данные еще запишите отдельно, т. к. они Вам потребуются в коде php, который Вы будете использоваться для обращения к базе данных.  
     
 

Теперь нужно создать структуру будущей базы данных.

Для этого вернитесь на главную страничку денвера, либо используйте в адресной строке следующий путь -

http://localhost/Tools/phpmyadmin/index.php

 
     
  В открывшейся страничке нажимаем кнопку Databases и в открывшейся таблице выбираем нужную.  
     
 

Создаем новую таблицу для базы данных -

Create new table on database

в поле Name

вводим имя таблицы, например

visitors

в поле Number of fields

количество полей (столбцов) таблицы, например,

3

 
     
  Жмём кнопку Go  
     
 

На открывшейся страничке описываем поля нашей базы данных.

Мы создаем простейшую базу данных, для целей подсчета посетителей на сайте.

Всего у нас будет три поля:

currentday

total

today

Для всех этих полей используем тип INT

По своему желанию можете добавить еще какую-либо информацию, например заполнить поля comment

 
     
 

далее Жмём кнопку Save внизу страницы

Наша база данных создана!

 
     
  После успешного создания новой таблицы в базе данных Вам будет показан вид SQL запроса, который был использован для создания таблицы в этой базе данных.  
     
  Далее мы напишем код, на PHP который будет отображать счётчик посетителей сайта и заносить данные в созданную базу данных.  
     
 

Запускаем Ваш html-редактор, создаем новый пустой html-документ, заполняем его следующим кодом -

<HTML>
<HEAD>
<TITLE>db</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</HEAD>
<BODY BGCOLOR=#FFFFFF LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0>
<?php
if ($rc = mysql_connect("127.0.0.1", "
admin", "Ji7yVasb2"))
{
$day = date("Y-m-d");

mysql_select_db("counterdb");
$table = "visitors";

$s = mysql_query("SELECT * FROM $table");

$a = mysql_fetch_array($s);



$a[total] = $a[total] + 1;



if ($day !==$a[currentday])
{
$a[currentday]=$day;
$a[today]=1;

}
else {
$a[today] = $a[today]+1;
}


mysql_query("UPDATE visitors SET total = '$a[total]', today = '$a[today]', currentday = '$a[currentday]'");

echo "<table border=1 bordercolor=green><tr>
<td colspan=1 align=center>посетителей</td></tr>
<tr><td align=center>всего</td><td align=center>сегодня</td></tr>
<tr><td align=center>$a[total]</td>
<td align=center>$a[today] </td></tr></table>";
}
else {
echo "Error!";
}

?>
</BODY>
</HTML>

 
     
 

Сохраняем созданный документ в формате php в папку

C:\WebServers\home\localhost\www\mysite

 
     
 

Т. е. предполагается, что denver Вы установили в папку C:\WebServers

а затем перешли в подпапку

C:\WebServers\home\localhost\www

и там создали свою рабочую папку mysite

 
     
  Чтобы проверить как работает наш счётчик вводим в адресной строке браузера следующую ссылку -  
     
  http://localhost/mysite/counter.php  
     
  Здесь предполагается, что Вы назвали документ содержащий php-код для реализации счетчика counter.php  
     
  Если выполнять многократные переходы по данной ссылке путём повторного ввода адреса в строке браузера, либо обновляя страницу, то данные счётчика выводимые на созданной странице будут изменяться.  
     
 

В случае если при работе кода возникли ошибки Вы получите сообщение с указанием номера строки, в которой произошла ошибка.

Вам нужно проверить правильность написания всех имен, параметров, символов и идентификаторов.

То же происходит если код работает неверно - например счетчик не изменяется, оставаясь постоянно на значении 1/1.

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

Решение - очень внимательно проверить весь код от самой первой до самой последней буковки !!!

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



Пожалуйста войдите на сайт - Вход

или пройдите процедуру регистрации - Регистрация

megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 1,0038