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


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

Урок 4 часть 2 Win32. Диалог выбора цвета, смена цвета фона окна приложения
  Что нужно знать для создания DirectX-приложений на C++ в среде Microsoft Visual Studio 2008
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
Creating game on fle game engine - Draw Line - This can be helpful/ Создание игры на fle game engine - Рисование линий - Это может пригодиться.

Платная подписка на fle game engine

megainformatic Создание игры на fle game engine - Simple game - страница 2 - Объекты / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 3 - Объекты / Пример простой игры

Платная подписка на fle game engine

megainformatic Создание игры на fle game engine - Simple game - страница 4 - Код - Настройка параметров Scene Editor fge и написание кода для вывода спрайта шарика в вашем первом игровом приложении / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 5 - Отображаем прыгающий шарик, узнаем как задается для спрайта его центр и знакомимся с векторной системой координат / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 6 - Загрузка игровой сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 7 - Перемещения игровой сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 8 - Закрываем часть сцены от пустот при помощи черной текстуры с прорезью, ограничиваем перемещение сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 9 - Реализуем корректное попадание в ямы и около ям - определяем границы спрайтов ям и спрайта прыгаюшего шарика / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 10 - Проверка столкновений / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 11 - Игровой счёт, звуки, музыка / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game extended - страница 1 - Создание новой сцены (уровня, комнаты), добавление новых возможностей / Пример простой игры - расширенная версия

Платная подписка на simple game fle game engine версия 1.0.7 от 05.01.2017

Платная подписка на simple game fle game engine версия 1.0.7 от 05.01.2017

Советы копирайтеру - как не обмануть и не быть обманутым

Balls and Holes игра скачать + как создать игру на fle game engine

Balls and Holes игра скачать + как создать игру на fle game engine

Something: Unexplained 2 captive of desires

KKK Коллекционное издание: Веселый Буквоежка Комикс + Костя Коробкин Комикс + Нечто: Необъяснимое в плену желаний 2 начало

KKK Коллекционное издание: Веселый Буквоежка Комикс + Костя Коробкин Комикс + Нечто: Необъяснимое в плену желаний 2 начало

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 17

megainformatic - Игродельня

megainformatic - Новости страница 542

megainformatic - С днём защитника отечества !

megainformatic fle game engine fle / Пример простой игры fle - Скроллинг больших локаций

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 18

megainformatic - Шарики и Ямки игра PC

megainformatic - Шарики и Ямки игра PC

megainformatic fle game engine fle / Изучаем основы c++ - переменные на примере реального игрового проекта Balls and Holes

megainformatic - Реферальная ссылка

megainformatic - Изменение постоянных свойств в зависимости от контекста

megainformatic - Костя Коробкин Компания Зергов онлайн комикс читать

megainformatic - Искатели приключений Зеленый Шарик

megainformatic - Без названия

megainformatic - Мульти анимация

Pencil, Paper and the Ball PC game

megainformatic - Костя Коробкин Компания Зергов онлайн комикс читать страница 2

megainformatic - Костя Коробкин Компания Зергов онлайн комикс читать страница 3

megainformatic - fle game engine - создание 3d игры - simple game 3d

Pencil, Paper and the Ball PC game

I Free lancer - tale, story Я фрилансер повесть, история

Шарики и Ямки игра, Эмулятор игры Ну Погоди, Balls and Holes, Веселый Буквоежка Комикс, Костя Коробкин Комикс, Нечто: Необъяснимое в плену желаний 2 начало, simple game, с новым годом

Процесс создания игры в картинках

Сравнение различных игровых движков. Плюсы и минусы

app combainer - комбайнер настольных и веб приложений

kerbal space program - Первые впечатления

Pencil Paper and the Ball PC Game review #91 - Как я придумываю историю

We all live in a yellow submarine !

PSI Siberian Conflict Reincarnation - Сибирский Конфликт Война Миров Реинкарнация

megainformatic - Костя Коробкин Компания Зергов онлайн комикс читать страница 4

Ria PC game

Cradle / Колыбель PC game 2015 история неуспеха

ria pc game история

ria pc game - видео 105 - темная сторона

подробнее

     
 

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

Ответы на поставленные вопросы

 
О том, что потребуется для данного урока читайте в основном разделе - уроки delphi directx 8.1
 
Далее у читателя подразумевается наличие базовых знаний языка Delphi.
 
[назад] [страница 2] [далее] [к содержанию]
 

Ответы на вопросы, заданные на предыдущей странице

 

Как сделать вывод курсора и пунктов выбранных меню с прозрачным фоном, как это имеет место в готовом проекте (CoD)?

Вам необходимо указать формат текстуры с использованием альфа-канала, т.е. в методах загрузки текстур -

TGameScene7Title.DoInitDeviceObjects и методе загрузки изображений курсора TD3DGameCursor.DoInitDeviceObjects

вместо строк, использующих формат бэк-буфера -

FCursorImage := TD3DImage2D.Create(g_AppForm.fMyApp.m_d3dsdBackBuffer.Format);

при этом формат текстуры будет D3DFMT_X8R8G8B8, т.е. не использующий альфа-канал

выполнить замену на

FCursorImage := TD3DImage2D.Create(D3DFMT_A8R8G8B8);

При этом курсор и изображения нажатых пунктов меню будут выводиться с прозрачным фоном.

 

При выходе из полноэкранного режима нажатием [закончить] происходит ошибка, как ее устранить?

Ошибка вызвана тем, что происходит закрытие окна формы, а при выходе из полноэкранного режима она должна отобразиться, обращение к несуществующей форме и вызывает при этом ошибку

В модуле SwitchModesUnit в методе

CMyD3DApplication.FrameMove

{if g_AppForm <> nil then begin
g_AppForm.ExitGame;}

SendMessage(m_hWnd, WM_CLOSE, 0, 0);
Result:= S_OK;
Exit;
//end;

закоменнтированный код и является замененным

 
 
 

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

в оригинальном коде используется такая замена - внутри метода TD3DGameApp.Create_ строку

//SetRect(rc, 0, 0, m_dwScreenWidth, m_dwScreenHeight);

заменяем на
SetRect(rc, 0, 0, m_dwScreenWidth, m_dwScreenHeight-20);

Но Вам вместо этого придется в модуле SwitchModesUnit у формы AppForm задать параметр высоты (Height) 626 вместо 600.

 
 
[назад] [страница 2] [далее] [к содержанию]
 
     
     
     
     
подробнее

Creating game on fle game engine - Simple game / Создание игры на fle game engine - Simple game

8 - Фон переднего плана



Закрываем часть сцены от пустот при помощи черной текстуры с прорезью, ограничиваем перемещение сцены.

read paper in english

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





Содержание

страница 1 - Спрайты

страница 2 - Объекты

страница 3 - Наложение объектов

страница 4 - Код - Настройка параметров Scene Editor fge и написание кода для вывода спрайта шарика в вашем первом игровом приложении

страница 5 - Отображаем прыгающий шарик

страница 6 - Загрузка игровой сцены

страница 7 - Перемещения игровой сцены

страница 8 - Закрываем часть сцены от пустот при помощи черной текстуры с прорезью, ограничиваем перемещение сцены

страница 9 - Реализуем корректное попадание в ямы и около ям - определяем границы спрайтов ям и спрайта прыгаюшего шарика

страница 10 - Проверка столкновений

страница 11 - Игровой счёт, звуки, музыка

урок #2 страница 1 - Создание новых сцен для игры simple game, расширенная версия simple game extended

13. Скроллинг больших локаций

14. использование переменных в игре на c++ directx 9c

15. Мульти анимация







Чтобы закрыть часть сцены мы сделаем 2 вещи.

1) Создадим квадратную текстуру - просто черную, закрывающую всю сцену, но содержащую в себе прорезь, через которую была бы видна эта часть сцены.



Используя Photoshop создадим изображение 1024х1024 пиксель

Заполним черным цветом

Определим размеры 800х600 окна нашего приложения

Я показал это пурпурным цветом -

В области пурпурного цвета разместим черный квадрат 400х400 пиксель - это будет прорезь

Всё остальное зальем белым цветом

Данный слой используем как альфа маску

Т. е. всё что белое - это будет непрозрачным, черное - прозрачным.

Сохраним данный файл как tga.

2) Ограничим перемещение сцены - т. к. если она будет двигаться свободно от края до края экрана, то квадрат с прорезью не поможет.

Для этого в модуле start.cpp методе -

CD3DGameApp::ChangeGameCursorPos

Изменим код -

LONG cursor_spr_left_limit = 218;//0;
LONG cursor_spr_top_limit = 200;//0;
LONG cursor_spr_right_limit = 587;//(LONG)m_dwScreenWidth;
LONG cursor_spr_bottom_limit = 367;//(LONG)m_dwScreenHeight;


Еще конечно в модуль game_sprite.h нужно добавить код для загрузки текстуры с рамкой.

Для этого добавим туда такой код - #define SpriteTexIndex 0 //это строка после которой надо добавить

#define FrameTexIndex 1 //это строка которую надо добавить

void Anim(); //это строка после которой надо добавить

void DrawFrameTex(); //это строка которую надо добавить



В модуль game_sprite.cpp добавим реализацию описанного метода DrawFrameTex

В самый конец модуля добавим такой код -

void CGameSprite::DrawFrameTex()
{
if ( m_pSprite == NULL )
return;

m_pSprite->Begin( D3DXSPRITE_ALPHABLEND );

LPD3D9SPRITE SpriteSprite = NULL;

SpriteSprite = GetGameSprite(FrameTexIndex, m_pTextures);

if ( SpriteSprite != NULL )
{

SpriteSprite->m_v2Vector2ScreenPos.x = SpriteSprite->m_Position.x;
SpriteSprite->m_v2Vector2ScreenPos.y = SpriteSprite->m_Position.y;

D3DXVECTOR2 vPos;
vPos.x = SpriteSprite->m_Position.x;
vPos.y = SpriteSprite->m_Position.y;

Vector2Screen(&vPos, &SpriteSprite->m_v2Vector2ScreenPos);

SpriteSprite->Draw2(SpriteSprite->m_v2Vector2ScreenPos.x,
SpriteSprite->m_v2Vector2ScreenPos.y,
SpriteSprite->m_Position.z,
SpriteSprite->m_Scale.x,
SpriteSprite->m_Scale.y,
255);

}

m_pSprite->End();
}




В папку

simple_game\Media\textures\simple_game\ball\



добавим созданную текстуру - файл frame_tex.tga



А в файл

simple_game\Media\textures\simple_game\tex_list.txt

Добавим её описание -

ball\frame_tex.tga; -1.0f; 1.0f; 0.759f; 1.0f; 1.0f; 1024; 1024; 0; 0; 1; 1.0f; 0.0f;

Там теперь будет две записи -

ball\jump.tga; 0.5f; 0.5f; 0.758f; 0.5f; 0.5f; 64; 128; 0; 0; 4; 8.0f; 14.0f;
ball\frame_tex.tga; -1.0f; 1.0f; 0.759f; 1.0f; 1.0f; 1024; 1024; 0; 0; 1; 1.0f; 0.0f;

Первая относится к описанию спрайта нашего прыгающего шарика, а вторая - к рамке, закрывающей часть сцены.

Также обратите внимание, что для шарика я задал координату z = 0.758f

А для рамки - z = 0.759f;

Это сделано для того, чтобы шарик появлялся над рамкой, но в то же время все объекты сцены оказывались за ней.

Как это выглядит визуально Вы сейчас увидите.

Если Вы сделали всё правильно, то после сборки проекта и его запуска Вы увидите на экране такую сцену.



В заключение внесу небольшую поправку - для шарика надо задать z = 0.761f, иначе он не будет перекрываться верхней частью ямы, имитирующей падение.

ball\jump.tga; 0.4f; 0.5f; 0.761f; 0.5f; 0.5f; 64; 128; 0; 0; 4; 8.0f; 14.0f;


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

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

Я решил немного облагородить внешний вид нашей игры и черный фон заменил на более интересный - игра стала выглядеть привлекательнее.



[назад] [далее]



подробнее

Парсинг сайтов - введение



[уроки php]  [регулярные выражения] 



Что такое парсинг сайтов и для чего он нужен ?

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

На первом шаге происходит поиск информации на некотором сайте, а на втором - анализ собранной информации и извлечение из неё каких-либо интересующих нас данных.

Типичный пример парсера - это парсер какого-либо форума или интернет-магазина.

Цель такого парсера - отслеживать изменения на сайте и сохранять их где-то у себя.



Как выполнить парсинг сайта используя php ?

Кликнув по ссылке -

Пример 1

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

Вот какой php код при этом используется -

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Simple site parser by megainformatic</title>
</head>
<body>

<?php


/* на данной странице используются и некоторые html-теги чтобы не было нарушений кодировки */

/* для начала нужно определить сайт, который мы будем парсить - сайт донор */

$site_donor_url = 'http://doska.obninsk.ru/'; /* данный сайт взят без какой-либо цели практически наугад просто для примера */

/* далее выполняем загрузку страницы с этого сайта в переменную скрипта */

/* сделать это можно самыми различными способами, самый простой - через открытие файла */

$site_page_strings_array = file($site_donor_url);

/* получив данные с сайта пока просто выведем их */

echo '<pre>';
var_dump($site_page_strings_array);
echo '</pre>';

?>
</body>
</html>



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

И сразу же обратим внимание на 2 нюанса, которые очень часто сбивают с толку, особенно если Вы впервые осваиваете php и технологию парсинга сайтов.



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

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

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

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

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

2) Сайт-донор не открывается через скрипт парсера.

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

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

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

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

max_execution_time = 60

В самом скрипте для этого можно использовать функцию - set_time_limit()

Но следует учесть что скрипт не должен работать в БЕЗОПАСНОМ РЕЖИМЕ safe_mode. Есть и другой момент - в php начиная с версии 5.4.0 возможность использования БЕЗОПАСНОГО РЕЖИМА признана устаревшей.

Так что как видите всё более чем запутанно и должно решаться в каждом конкретном случае.

Чтобы выполнение скрипта не зависело от времени обращения и ожиданию отклика от сайта донора можно использовать сокеты. Для этого в php есть функция fsockopen. И я уже рассматривал работу с ней в статье - Работа с сокетами fsockopen из php

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

При наличии второй проблемы - когда сайт-донор вообще не открывается через скрипт парсера, в php можно использовать расширение cURL.

Для работы php через proxy нужно:

Для Unix систем необходимо собрать PHP с опцией --with-curl[=DIR], где DIR - имя директории, содержащей поддиректории lib и include. Директория "include" должна содержать поддиректорию "curl" с файлами easy.h и curl.h. Директория "lib" должна содержать файл libcurl.a.

Для Windows систем необходимо установить PHP с поддержкой данного модуля, а потом скопировать файлы libeay32.dll и ssleay32.dll из директории DLL Win32 дистрибутива PHP в директорию SYSTEM (Нпример C:\WINNT\SYSTEM32 или C:\WINDOWS\SYSTEM).

Что такое libcurl Libcurl – это библиотека функций, которая позволяет взаимодействовать движок php с удалёнными серверами, по различным протоколам. Пример получения контента с удалённой страницы через PROXY:

<?php
//создаём функцию
function get_proxy($url, $proxy) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
curl_setopt($ch, CURLOPT_PROXY, "$proxy");
$ss=curl_exec($ch);
curl_close($ch);
return $ss;
}

//вызываем функцию
$proxy = '112.25.12.37:80';
$content = get_proxy('http://300kbit.ru/',$proxy);
echo $content;
?>

Идём дальше.

Обработка данных полученных с сайта-донора т. е. непосредственно парсинг сайта на php.

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

подробнее

Balls on Lift Table of Records / Шарики на лифте Таблица рекордов

#name / имяscore / счётdate time / дата время
    
1Dlor21845            2016-08-27 20:55:22
2electroman12230            2016-08-24 21:04:50
3juny_technic8120            2016-09-07 22:07:54
4Dasha7130            2016-08-19 19:09:25
5megainformatic3455            2016-08-19 21:05:19
6supergamer11745            2016-09-30 20:56:03
7pragmatos1605            2016-08-20 08:53:01
8wild_winD1518            2016-08-19 20:18:03
9master1165            2016-08-24 10:10:45
10megainformatic21065            2016-08-20 20:25:19
11finalgate1000            2016-08-28 21:13:10
12hagbard866            2016-08-23 11:56:42
13alex416            2016-08-20 07:47:45
14dumta_Sw189401            2016-08-19 13:35:54
15kar400            2016-07-31 10:12:54
16parabolooid75381            2016-08-19 14:07:30
17yevherts355            2016-08-04 07:27:00
18omega355            2016-08-01 18:00:10
19pokendist355            2016-08-01 15:51:53
20diotranzz355            2016-07-30 02:01:42
21VOVA2000350            2016-10-03 21:27:57
22moningx336            2016-08-20 07:18:48
23summer257            2016-08-20 09:47:10
24sergey.rezov255            2016-08-02 11:15:07
25trix248            2016-08-20 08:19:10
26forwarder248            2016-08-20 08:18:11
27SHadow223            2016-08-19 20:22:03
28bessyt219            2016-09-11 07:43:08
29supergamer210            2016-08-19 13:46:15
30tron202            2016-10-04 20:07:28
31dickfrencis182            2016-09-02 10:24:01
32Domix155            2016-08-03 04:21:16
33danny140            2016-09-07 21:01:57
34sen100            2016-08-20 08:11:20
35bIG_Ball100            2016-08-20 08:03:42
36proger158            2016-08-19 13:28:33
37dance57            2016-08-19 11:34:47
38ygrek53            2016-08-23 12:56:39
39digimuz9118            2016-08-19 12:02:41
40r.o.b.o3            2016-08-05 16:45:19
41olgavi2            2016-08-05 05:22:11
42roger1270            2016-08-19 11:53:43
43Maks3-5            2016-08-05 03:35:16



Здесь показаны рекорды игроков, представляющие игровой счёт набранный в игре Шарики на лифте / Balls on Lift

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



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

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

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

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



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


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