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


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

megainformatic - Рельефные изображения
        [к содержанию] [назад] [далее]       &n
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Работа с сокетами fsocket из php

megainformatic - Как создать игру Создание игровых панелей и индикаторов

megainformatic - Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

megainformatic - Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс

megainformatic - Система управления сайтом на php - megainformatic cms admin files

megainformatic - обзор антивирусных средств защиты

megainformatic - как работает антивирус ?

megainformatic - Создание сайта для бизнеса

megainformatic - Новый взгляд на очевидные вещи

megainformatic - Разработка программ на c++

megainformatic - Немного о музыке

megainformatic - GET и POST запросы

megainformatic - для чего нужна карта сайта

megainformatic - Web Администрирование

megainformatic - Мысли о разном

megainformatic - Легко ли быть программистом

megainformatic - Глубины программирования на C++

megainformatic - Убираем лимит на размер импортируемого файла в PhpMyAdmin

megainformatic - Как создать torrent файл

megainformatic - Нужна ли валидация вашему сайту ?

megainformatic - Антивирус DrWeb

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

megainformatic - Что такое BitTorrent (БитТоррент)

megainformatic - Миссис Даутфайр 1993 фильм torrent

megainformatic - Как скачивать торрент-раздачу ?

megainformatic - Автотелега фильтр

megainformatic - Фильмы

megainformatic - Fahrengeit Фаренгейт игра 2006 для PC

megainformatic - Fez игра для PC 2013

megainformatic - Дневник памяти - фильм 2004

megainformatic - Scooter - The night - Video and Lyrics - Скутер - Ночь - Видео и лирика

megainformatic - Если всё же неудача

megainformatic - Смерть или искупление или избавление

megainformatic - По ту сторону

cj megainformatic - музыкальный альбом БЕСКОНЕЧНОЕ ДВИЖЕНИЕ ОЖИДАНИЕ И ДЕЙСТВИЕ

megainformatic - Костя Коробкин - Секретный проект - интерактивный комикс

megainformatic - Основы анимации во флеш на примере анимирования простейшей окружности

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

megainformatic - Я пишу музыку для себя и для продажи

megainformatic - Статьи на околомузыкальные темы - осень 2014 часть 1

megainformatic - рассказ - Чужие воспоминания - автор Синицин Андрей - 24.09.2014

megainformatic - Сайты живущие вне поисковых систем. Есть ли такие и как их найти ?

megainformatic - Game craft - проект разработки игровых и мультимедийных проектов

megainformatic - Game craft - моделируем scv

megainformatic - Game craft - моделируем scv - шаг 1 (часть 2)

megainformatic - Game craft - моделируем scv - шаг 2 (часть 3)

megainformatic - Game craft - Наложение текстуры на модель робота scv (часть 4)

megainformatic - Game craft - Прорисовка текстуры робота SCV шаг 5

megainformatic - Game craft - Экспорт модели из 3ds max в формат X

megainformatic - Game craft - отображение scv модели в формате x в d3d9-приложении

megainformatic - Game craft - управление игрой от Direct Input в d3d9 - приложении

megainformatic - Game craft - игровая камера в d3d9 - приложении

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 1

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

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

подробнее

     
  Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2)  
     
  модель коммандного центраСкачать готовую модель вы можете кликнув по картинке.  
     
  Этот объемистый урок расскажет Вам как научиться создавать нечто подобное: всем известно, что вышла игра StarCraft 2 компании Blizzard. Об этой игре ходят легенды. Но не дожидаясь когда вам удастся засесть за игру, а также для того, чтобы пополнить свои навыки и умения попробуем вообразить себя "крутым дизайнером" (прямо как из Blizzard) и попробовать создать модель и текстуру для коммандного центра из StarCraft 2.  
     
 

Часть 3

Следующая часть нашего урока - это создание стойки (support). Всего их будет 4. Однако для создания достаточно и одной. Остальные мы получим путем создания копий созданной стойки операцией клонирования.

 
     
  Как можно заметить готовая стойка (которую Вы вскоре создадите) включает два элемента в основе которых лежит примитив цилиндр.  
     
  готовая стойка для Коммандного Центра  
     
  Поэтому - создадим цилиндр. Радиус 0,5 единиц, Высота 0,1, Количество сегментов по высоте - 1, в основании (cap) - 1, количество сторон (Sides) - 8;  
     
 

Размеры даны в относительных единицах (в качестве них могут быть метры, дюймы или другие допустимые единицы - в зависимости от того какая система единиц измерения у Вас установлена - Customize > Units Setup). Количество сегментов (сторон) следует выбирать опытным путем исходя из того, как Вы будете далее видоизменять созданный примитив.

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

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

 
     
  будущая стойка - а пока - сплюснутый цилиндр  
     
  Щелчком правой кнопки мыши в окне стека модификаиций преобразуем объект в editable mesh. Используя технологию выдавливаний, которую Вы уже применяли при создании основания Коммандного Центра, формируем основу стойки -  
     
   
     
   
     
   
     
  На рисунках выше показано как последовательно нужно производить выдавливания со скосами (Bevel) для придания нужной формы.  
     
  Следующий этап - выдавливание 4 маленьких ножек и формирование держателя к которому будет крепиться второй видоизмененный цилиндр опоры. Тут будет одна маленькая особенность - дело в том, что опоры должны располагаться относительно основания коммандного центра повернутыми относительно своего первоночального положения на 23,5 градуса. Вам нужно путем выбора инструмента Select And Rotate повернуть заготовку будущей опоры на этот угол относительно оси Z.  
     
  Выберите весь объект в целом (editable mesh) в стеке модификаций и поверните на нужный угол.  
     
   
     
  Теперь, прежде чем выдавливать ножки, нужно сформировать в верхней части стойки грань. Мы выполним это путем надреза -  
     
   
     
  Сначала выберите в стеке модификаций пункт Edge или Face. Чтобы легче было выполнять надрез (создание нового ребра на поверхности грани или полигона) на панели инструментов включите 3-х мерное выравнивание. Нажмите кнопку Cut в группе Edit Geometry окна параметров editable poly. Обратите внимание в каком месте нужно выполнять надрезы, иначе держатель получится в неверном положении.  
     
   
     
  Аналогично выполните второй надрез. После этого отожмите кнопки Cut и Snaps Toggle (3-х мерную привязку).  
     
  Теперь дело за малым - выдавить держатель и 4 ножки -  
     
   
     
   
     
   
     
  На какое примерно расстояние выполнять сдвиг грани для формирования держателя? Можете ориентироваться на готовую модель опоры или подогнать по месту позднее.  
     
   
     
   
     
  Теперь создаем второй цилиндр - он будет играть роль промежуточного звена в прикреплении опоры к основанию Коммандного центра -  
     
   
     
  Для создания можете использовать следующие предварительные размеры - Radius = 0,2 Height = 0,4 Height segments = 1 Cap segments = 1 Sides = 8  
     
  Теперь Вам нужно выполнить 2 вращения - на 90 градусов по оси Y и на 45 по оси Z и разместить цилиндр в нужном месте опоры.  
     
   
     
   
     
   
     
   
     
   
     
  После проделанных манипуляций мы получим цилиндр лежащий на держателе ребром -  
     
   
     
  Казалось бы, достаточно повернуть его вокруг своей оси на нужный угол (-23,5 градуса) и уложить точно на держатель.  
     
   
     
  Но не тут то было. Все наши попытки привести к правильному повороту не приводят к оному. Почему? Да потому что мы повернули локальную систему координат относительно глобальной. Решением является выбор локальной системы координат объекта, относительно которой получится сделать задуманное -  
     
   
     
  Теперь остается только подобрать нужные размеры, преобразовать цилиндр в editable mesh и выполнить выдавливание нужной формы.  
     
  Думаю с этим Вы справитесь самостоятельно.  
     
  Теперь остается только сгруппировать или связать два элемента формирующие единую опору, чтобы они не "рассыпались" при дальнейших манипуляциях. Лучше конечно использовать связывание (Link), т.к. оно поддерживается форматом X.  
     
  Для выполнения связывания выберите связываемый объект (звено опоры), используя инструмент Select And Link протащите курсор к родительскому (корневому) объекту - опоре.  
     
   
     
  Связывание завершено. Теперь при перемещениях опоры звено опоры двигается совместно. О связывании подробно рассказывалось в уроке посвященном 3D-анимации .  
     
  Теперь Вам остается разместить опору в нужном месте основания базы -  
     
   
     
  Теперь если выполнять перемещения или вращения с нажатой клавишей [Shift] можно создать копии опор и разместить их в нужных местах. Только имейте в виду, что для клонирования нужно выбрать и опору и звено!  
     
   
     
   
     
   
     
  Корректируем положение созданной опопы, а после выделяем все элементы обоих полученных опор и с нажатой клавишей [Shift] поворачиваем на 90 градусов по оси Z в глобальной (view или world) системе координат.  
     
   
     
  [назад] [далее мы создадим элементы крыши]  
     
подробнее

Веселый Буквоежка - онлайн комикс - страница 21

представляем Веселый Буквоежка - онлайн комикс.

Я давно уже сам собирался его поменять, да всё времени не было.

Веселый Буквоежка - онлайн комикс - страница 21

если кликать картинку она будет последовательно меняться в размерах от 620 до 2048 пиксель.

[страница 1]  [страница 2]  [страница 3]  [страница 4]  [страница 5]  [страница 6]  [страница 7]  [страница 8]  [страница 9]  [страница 10]  [страница 11]  [страница 12]  [страница 13]  [страница 14]  [страница 15]  [страница 16]  [страница 17]  [страница 18]  [страница 19]  [страница 20]  [страница 21]  [страница 22]  [страница 23] 

подробнее


[к содержанию] [другие статьи Тимонина Андрея]

Поиск файлов. Получаем список файлов каталога.

автор: Тимонин Андрей

дата публикации на сайте Мега Информатик: 18.11.2012

Добро пожаловать в цикл моих уроков посвященных программированию.

Эта статья будет посвящена поиску файлов, использую функции Win32 API.


Задача поиска тесно связана с операционной системой. В API каждой ОС можно найти свои функции для работы с файлами и каталогами. Также существует универсальные кроссплатформенные библиотеки, где реализованы свои функции для работы с файлами и каталогами с любой осью. В частности в библиотеке Boost.Filesystem , которую можно загрузить с официального сайта по адресу http://www.boost.org.

В данной статье мы рассмотрим, как можно реализовать поиск файлов, используя только функции Win32 API.

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

Вот такой получился класс, который я назвал ресурс. Смотрим его объявление.

//Resource.h
#pragma once
#include "Shlwapi.h"
#include
class Resource
{
typedef std::vector ListStr;
private:
//имя директории для поиска
std::string _Path;
//маска поиска
std::string _Mask;
//название ресурса
std::string _name;

BOOL Find (CHAR *Directory, std::string ext);
//список ресурсов(имен файлов данного типа в выбранной папке)
ListStr mlist;
public:
//конструктор
Resource(std::string name , std::string Path, std::string Mask );
//загрузка
bool load();
ListStr getList() const;

};

Тут открыты: конструктор, функция загрузки и функция получения списка загруженных файлов. Для хранения списка использую STL класс вектор. Функция Find, по сути, рекурсивна, используется в данном примере как обычная функция. Смотрим на реализацию класса.

//Resource.cpp
#include “Resource.h”
//---------------------------------------------------------------------------------------------------------------------------------------------------------
Resource :: Resource(std::string name , std::string Path, std::string Mask ):_Path(Path),_Mask(Mask),_name(name){ }
bool Resource:: load(){
return Find((CHAR *)_Path.c_str(),_Mask);
}
//-------------------------------------------------
ListStr Resource:: getList() cons{
return mlist;
}
//----------------------------------------------------------------------
BOOL Resource ::Find (CHAR *Directory, std::string ext)
{ if (Directory == NULL) return FALSE;
//добавляем обратный слеш к имени каталога
PathAddBackslash(Directory);
//прицепляем маску поиска
lstrcat(Directory, ext.c_str());
//структура данных поиска
WIN32_FIND_DATA FileData;
//Ищем первый файл
HANDLE hSearch = FindFirstFile(Directory, &FileData);
while (TRUE)
{
if (hSearch == INVALID_HANDLE_VALUE) break;
if (FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// Если нашли каталог(в данном примере не рассматриваем)
}
else
{
//получен нужный файл, заносим в список
mlist.push_back(FileData.cFileName);
}
if (!FindNextFile(hSearch, &FileData)) break; // ищем следующий файл
}
return TRUE;
}

Поиск, как видите, происходит в два приема. Сначала вызываем функцию FindFirstFile с директорией поиска, которая ищет первый файл и возвращает дескриптор. Если все прошло успешно мы в цикле проверяем результат этой функции в структуре поиска и заносим имя файла в список. Следующий файл определяется вызовом функции FindNextFile. Когда эта функция вернет значение FALSE, поиск прекращаем.

Для примера загрузим список фотографий каталога image:

Resource* mImage = new Resource( "JPEG"," image", "*.jpg");
mImage->load();

На этом статью заканчиваю. Надеюсь, эта информация была вам интересна.
C уважением, Андрей.

[к содержанию] [другие статьи Тимонина Андрея]

подробнее

     
     
  Путешествие в мир 3d  
     
 
[содержание] [страница 1] [далее]
 
 
В данном уроке - Путешествие в мир 3d мы попробуем создать небольшую сцену, включающую земной холмистый рельеф, небесный фон, деревья, траву, участок железной дороги и товарный вагон В данном уроке - Путешествие в мир 3d мы попробуем создать небольшую сцену, включающую земной холмистый рельеф, небесный фон, деревья, траву, участок железной дороги и товарный вагон - щелкнув по изображению можно загрузить полномасштабный вариант
 
Для нашей работы мы будем использовать 3ds max 7.0 и photoshop cs2, если у Вас версии выше или ниже - ничего страшного. Никаких особых изменений Вы скорее всего не обнаружите, ну а уж если обнаружите - пишите вопрос мне или на форум
 
Создаем земную поверхность - в панели Create расположенной справа выбираем примитив Plane, нажимаем и удерживаем левую кнопку мыши, растягиваем будущую плоскость в окне перспективы (Perspective Viewport) и задаем следующие параметры
 

Начинаем! Создаем земную поверхность - в панели Create расположенной справа выбираем примитив Plane, нажимаем и удерживаем левую кнопку мыши, растягиваем будущую плоскость в окне перспективы (Perspective Viewport) и задаем следующие параметры

Length = 512,0 - это длина нашей плоскости (единицы измерения - Customize > Units Setup - здесь Вы можете задать нужную Вам систему единиц - метры, дюймы, сантимеры или что-то еще)

Width = 512,0 - это соответственно её ширина

Lenght Segs = 64 - это количество сегментов в длину

Width Segs = 64 - это - в ширину

остальное оставляем без изменений

В поле Name можно задать имя, например ground.

 
Выровняем нашу земную поверхность относительно центра оси координат - выбираем инструмент Select And Move и в поля X, Y в нижней части экрана вводим нулевые значения
 

Выровняем нашу земную поверхность относительно центра оси координат - выбираем инструмент Select And Move и в поля X, Y в нижней части экрана вводим нулевые значения

Для чего мы это делали, а для того, чтобы в будущем все объекты были смещены относительно мировой системы координат, представленной её центром в точке X, Y, Z - 0, 0, 0 - это намного удобнее, чем потом при экспорте или других операциях удивляться почему всё не так ? Да и по многим причинам - так намного удобнее, советую это делать всегда, в дальнейшем избавив себя от многих проблем.

 
 
Наша земная поверхность должна быть холмистой, а не плоской. Именно поэтому мы задали сегментацию 64х64. Если она Вам не видна - нажмите клавишу [F4]. Клавиша [F3] переключает между каркасным и нормальным видом изображения.
 
 

Применим модификатор Noise со следующими параметрами -

Seed = 834 - начальное значение может быть любым - используется генератором случайных чисел

Roughness = 0,5 - "крутость" склонов

Iterations = 2,0 - число итераций влияет на проработанность рельефа, но и усложняет его

Z = 32,0 - диапазон варьирования z от 0 до данного значения

остальное оставим как есть

 
 
Модификатор Noise находится на вкладке Modify в выпадающем списке модификаторов
 
Аналогичным образом можно создать любые горы и холмы, но далее мы рассмотрим как нарисовать для данной земной поверхности текстуру и наложить её
 
 
 
[содержание] [страница 1] [далее]
 
Содержимое данной страницы доступно только зарегистрированным пользователям.



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

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

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

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



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


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