Создать игру, создание игр, конструктора игр, игровые движки, разработка игр, сделать игру
Приветствую Вас Гость · Вход · Регистрация  ·  Новые сообщения · Участники · Правила · Поиск · RSS
Страница 1 из 11
Форум разработчиков игр » Полезные статьи, Примеры и Исходники » Game Maker » Пример дождя в 3D
Пример дождя в 3D
Филипенко_Андрей Дата: Понедельник, 22.10.2012, 12:39 | Сообщение # 1
( Идей много игр ноль))) )
Просмотр профиля: Филипенко_Андрей

Сообщений: [511]

Переведен на русский Tusan специально для make-games.ru.

P.S. Все что в коде написано после двух слэшей (//) это комментарий кода, его писать не обязательно.
Создаем объект капли дождя, назовем его obj_gota. В создании(create) пишем:
Code
//Высота дождя при создании
z = 1024

В шаге(step) пишем:
Code
//Скорость падения дождя
z-=12

//Если капля ниже земли то удаляем ее
if z < -8 then {instance_destroy()}

В рисовании(draw):
Code
draw_set_color(c_blue) // Цвет дождя
d3d_primitive_begin(pr_linelist) // Инициация 3D примитива

// Рисуем линию из двух вершин
d3d_vertex(x,y,z-8)
d3d_vertex(x,y,z+8)

d3d_primitive_end() // Конец примитива


Теперь создаем объект obj_emissor. Он будет создавать капли дождя. В шаге(step) пишем:
Code
//Создание капель дождя в случайных позициях
instance_create(random_range(-256,256),random_range(-256,256),obj_gota)


И создаем еще один объект obj_camera. Это собственно камера. В создании(create) пишем:
Code
//Инициация 3D
d3d_start()
d3d_set_culling(false)
d3d_set_hidden(false)
d3d_set_lighting(false)
d3d_set_perspective(true)
d3d_set_shading(false)
texture_set_interpolation(true)

//Переменные камеры
bearing=0
strafe=0
z=32
pitch=0

vector_x=0
vector_y=0
vector_z=0

//Создание obj_emissor который будет создавать капли дождя
//чем больше будет образцов этого объекта тем интенсивнее будет дождь
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)
instance_create(0,0,obj_emissor)

В рисовании(draw):
Code
//Рисование камеры
draw_set_color(c_white)
bearing -= (display_mouse_get_x() -display_get_width()/2)/10;

pitch += (display_mouse_get_y() -display_get_height()/2)/10;
pitch = max(min(pitch,65),-80);

ss = sin(degtorad(bearing));cc = cos(degtorad(bearing));
vector_x=cc*cos(degtorad(-pitch));
vector_y=ss*-cos(degtorad(-pitch));
vector_z=sin(degtorad(-pitch));

d3d_set_projection(x,y,z,x+vector_x,y+vector_y,z+vector_z,0,0,1)

display_mouse_set(display_get_width()/2,display_get_height()/2)

draw_set_color(c_white)

//Рисование пола
d3d_draw_floor(-256,-256,0,256,256,0,background_get_texture(tex_chao),5,5)


Создаем фон(background) tex_chao. Это текстура пола.

Все! Готово! Можете запускать пример cool

Версия game maker: 8.0
Описание: Хороший пример дождя в трехмерном пространстве. Выглядит неплохо, игру не замедляет. Собственно все. Пример небольшой, но полезный.
Прикрепления к посту: 3D_rain_effect_.gmk(80Kb)


Сообщение отредактировал: Tusan - Понедельник, 22.10.2012, 15:08
Rainbow_Sparkle Дата: Понедельник, 22.10.2012, 13:09 | Сообщение # 2
Просмотр профиля: Rainbow_Sparkle

Сообщений: [390]
Где-то уже видел.
Филипенко_Андрей Дата: Понедельник, 22.10.2012, 13:20 | Сообщение # 3
( Идей много игр ноль))) )
Просмотр профиля: Филипенко_Андрей

Сообщений: [511]
Rainbow_Sparkle Дата: Понедельник, 22.10.2012, 13:32 | Сообщение # 4
Просмотр профиля: Rainbow_Sparkle

Сообщений: [390]
Quote (Tusan)
На game-maker.ru

Точно. У меня GM не распознаёт русские буквы.
Хоббитс Дата: Понедельник, 22.10.2012, 14:26 | Сообщение # 5
Просмотр профиля: Хоббитс

Сообщений: [984]
Tusan, выложи код прям тут
и если можно оформи в виде урока


Дневники разработчиков игр. Обращайтесь в лс, если интересна определённая игра.
Переводы официальных туториалов по движку Maratis.
Переводы официальных туториалов по движку Yogurt 3d.
Общие принципы создания интерфейсов.
Филипенко_Андрей Дата: Понедельник, 22.10.2012, 15:09 | Сообщение # 6
( Идей много игр ноль))) )
Просмотр профиля: Филипенко_Андрей

Сообщений: [511]
Rooffy, Пожалуйста, готово cool
Хоббитс Дата: Понедельник, 22.10.2012, 15:19 | Сообщение # 7
Просмотр профиля: Хоббитс

Сообщений: [984]
Tusan, я вижу,
лови пулс


Дневники разработчиков игр. Обращайтесь в лс, если интересна определённая игра.
Переводы официальных туториалов по движку Maratis.
Переводы официальных туториалов по движку Yogurt 3d.
Общие принципы создания интерфейсов.
ZiP Дата: Понедельник, 22.10.2012, 19:10 | Сообщение # 8
( περιμετρ )
Просмотр профиля: ZiP

Сообщений: [865]
Хороший пример, правильно сделал что перевёл.

☼Настройка профиля|↕Написать жалобу на пользователя|▲Правила сайта|░мои темы
BSC Hard|Death Jeep|WSC B&W|Моб.платформер|BSC Hard 2|Последняя Миссия|Christmas Story
░▒▓ Z7NV ▓▒░
Форум разработчиков игр » Полезные статьи, Примеры и Исходники » Game Maker » Пример дождя в 3D
Страница 1 из 11
Поиск:

При полном или частичном копировании материалов сайта ссылка на Make-Games.ru обязательна. Make-Games.ru © 2008 - 2016 Хостинг от uWeb
Топ Разработка игр Рейтинг@Mail.ru