Понедельник, 11 Ноября 2024, 00:55

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [357]
Статьи об общих понятиях связанных с созданием игр.
Программирование [83]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [147]
Статьи о программах для создания игр, уроки и описания.
Софт [43]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [17]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [167]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [131]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Какую графическую систему API вы используете?
Всего ответов: 10248
Главная » Статьи » Создание игр

Создаём своими руками - скринсейвер!
Приветствую всех игроделов и просто посетителей сайта GcUp.ru!
Это - мой второй урок по языку программирования Dark Basic. Урок довольно сложный, при его написании, автор полагает - что вы изучили предыдущий урок Урок 1
Кто этого не сделал, настоятельно рекомендую - изучить сначала предыдущий урок, а потом приступать к этому... Ну, а с остальными читателями, мы двинемся дальше! Сейчас рассмотрим в подробностях - как же создать такое приложение. Для темы скринсейвера, я выбрал довольно популярную тему космоса... Давайте создадим - целую планетную систему, тем более что в прошлый раз, мы заложили основу... И так - приступим!
Запускаем DBPro и создаём новое приложение (как это сделать - вы знаете по прошлому уроку). Назовём его - Space screensaver. Теперь проведём небольшие приготовления. Для урока, используется довольно много графического контента, поэтому я запаковал его в архив Контент. Этот архив, требуется распаковать в папку \Dark Basic Pro\Projects\Space Screensaver. Ну вот, теперь мы готовы к началу!
Идея реализации - довольно проста, создаём из сферы Солнце, потом так же создаём из сфер все остальные планеты, прикрепляем их к Солнцу и заставляем вращаться вокруг по круговым орбитам. Ну что же, начнём воплощать нашу задумку в жизнь.

flush video memory
set display mode 1024,768,32
sync on :sync rate 50 : backdrop on
autocam off
set camera range 1,25000
randomize timer()
set global object creation 0
hide mouse

Дальше, я буду пояснять только новые команды, которых нет в первом уроке.
flush video memory - эта команда очищает видеопамять
autocam off - отключение автоматической камеры
set camera range 1,25000 - установка передней и задней границ отсечения изображения.
randomize timer - мы будем использовать случайные числа, поэтому зададим вход в цепочку случайных чисел, зависимым от значения таймера.
set global object creation 0 - зададим специальный метод создания объектов, что-бы после выхода можно было корректно освободить ресурсы.
hide mouse - скроем указатель мыши.

Текстурим задник.
load image "image\cosmic.jpg",100
texture backdrop 100

Теперь займёмся Солнцем. Сначала сделаем плоскость, затекстурим её и расположим в пространстве - это будет Солнечная корона. Потом создадим сферу, затекстурим и расположим там же, где и плоскость.
load image "image\sun1.jpg",10
make object plain 10,512,512 - создадим плоскость
texture object 10,10
position object 10,400,0,800 - расположим плоскость в т. Х=400 Y=0 Z=800
scale object 10,55,55,0 - подгоним размер
position camera 0,0,0 - расположим камеру в т. 0,0,0
ghost object on 10 - сделаем плоскость полупрозрачной.
set object light 10,0 - отключим влияние света
fade object 10,350 - сделаем плоскость ярче
load image "image\sunmap.jpg",11
make object sphere 11,150,25,25
texture object 11,11
position object 11,400,0,800
set object light 11,0
fade object 11,650
*К новым операторам, даны пояснения...

Далее создаём планеты и приклеиваем их - к невидимым сферам, которые помещаем в центр солнца. Если теперь, невидимую сферу покрутить вокруг оси Z, то планета как привязанная - будет двигаться вокруг неё, т.е. фактически вокруг солнца. На планетах, где есть атмосфера - создадим дополнительно, ещё одну сферу чуть побольше. Сделаем её полупрозрачной и затекстурим той же картинкой что и саму планету - это будет атмосфера. В приведённом далее куске кода - нет ничего сложного и все команды нам известны, поэтому комментировать его, я не буду... Единственное - добавлю, что у Земли таким же способом создаётся Луна. А у Сатурна - создаются плоскостью кольца.

Code
`================== Создаём меркурий ======================
load image "image\mercury.jpg",1
make object sphere 1,70,20,20
texture object 1,1
position object 1,-250,0,0
make object sphere 21,10
glue object to limb 1,21,0,0
position object 21,400,0,800
hide object 21
`================== Создаём венеру ========================
load image "image\venus.jpg",2
make object sphere 2,110,20,20
texture object 2,2
make object sphere 32,120,20,20
texture object 32,2
ghost object on 32
fade object 32,150
glue object to limb 32,2,0,0
position object 2,-400,0,0
make object sphere 22,10
glue object to limb 2,22,0,0
position object 22,400,0,800
hide object 22
`================== Создаём землю ===========================
load image "image\earth.jpg",3
make object sphere 3,120,20,20
texture object 3,3
make object sphere 30,130,20,20
load image "image\Clouds.jpg",30
texture object 30,30
glue object to limb 30,3,0,0
ghost object on 30
fade object 30,300
set object light 30,0
position object 3,-700,0,0
make object sphere 31,50
position object 31,-150,0,0
load image "image\MOON.JPG",31
texture object 31,31
glue object to limb 31,3,0,0
make object sphere 23,10
glue object to limb 3,23,0,0
position object 23,400,0,800
hide object 23
`=================== Создаём марс ============================
load image "image\mars.jpg",4
make object sphere 4,100,20,20
texture object 4,4
make object sphere 41,108,20,20
texture object 41,4
ghost object on 41
fade object 41,350
glue object to limb 41,4,0,0
position object 4,-1000,0,0
make object sphere 24,10
glue object to limb 4,24,0,0
position object 24,400,0,800
hide object 24
`==================== Создаём юпитер ==========================
load image "image\jupiter.jpg",5
make object sphere 5,150,20,20
texture object 5,5
make object sphere 51,165,20,20
texture object 51,5
ghost object on 51
set object light 51,0
glue object to limb 51,5,0,0
position object 5,-1250,0,0
make object sphere 25,10
glue object to limb 5,25,0,0
position object 25,400,0,800
hide object 25
`====================== Создаём сатурн ========================
load image "image\saturn.jpg",6
make object sphere 6,140,20,20
texture object 6,6
make object sphere 61,150,20,20
texture object 61,6
ghost object on 61
set object light 61,0
glue object to limb 61,6,0,0
position object 6,-1600,0,0
make object plain 62,410,410
load image "image\Kolsa.jpg",62
texture object 62,62
ghost object on 62
glue object to limb 62,6,0,0
xrotate object 62,-60
make object sphere 26,10
glue object to limb 6,26,0,0
position object 26,400,0,800
hide object 26
`====================== Создаём Уран ========================
load image "image\uranus.jpg",7
make object sphere 7,130,20,20
texture object 7,7
make object sphere 71,140,20,20
texture object 71,7
ghost object on 71
set object light 71,0
glue object to limb 71,7,0,0
position object 7,-1950,0,0
make object sphere 27,10
glue object to limb 7,27,0,0
position object 27,400,0,800
hide object 27
`====================== Создаём Нептун =====================
load image "image\neptune.jpg",8
make object sphere 8,130,20,20
texture object 8,8
make object sphere 81,140,20,20
texture object 81,8
ghost object on 81
set object light 81,0
glue object to limb 81,8,0,0
position object 8,-2200,0,0
make object sphere 28,10
glue object to limb 8,28,0,0
position object 28,400,0,800
hide object 28
`====================== Создаём Плутон ===============
load image "image\pluton.jpg",9
make object sphere 9,110,20,20
texture object 9,9
position object 9,-2400,0,0
make object sphere 29,10
glue object to limb 9,29,0,0
position object 29,400,0,800
hide object 29

Теперь - случайно генерируем угол поворота невидимых сфер каждой из планет, вокруг оси Z. Причём прошу обратить внимание, что при повороте планеты вокруг солнца на какой-то угол, вертикальная ось собственного вращения планеты - тоже отклоняется на этот угол (т.е. планета будет вращаться вокруг своей оси не вертикально, а под углом). Что-бы это исправить, нам надо повернуть планеты в противоположную сторону на угол поворота вокруг оси Z. Например:
rogod1#=int(rnd(360)) - генерируем угол
zrotate object 21,rogod1# - поворачиваем невидимую сферу
zrotate object 1,-rogod1# - поворачиваем планету на столько-же обратно

Code
`=============== Случайно размещаем планеты на орбитах ========
rogod1#=int(rnd(360))
zrotate object 21,rogod1#
zrotate object 1,-rogod1#
rogod2#=int(rnd(360))
zrotate object 22,rogod2#
zrotate object 2,-rogod2#
rogod3#=int(rnd(360))
zrotate object 23,rogod3#
zrotate object 3,-rogod3#
rogod4#=int(rnd(360))
zrotate object 24,rogod4#
zrotate object 4,-rogod4#
rogod5#=int(rnd(360))
zrotate object 25,rogod5#
zrotate object 5,-rogod5#
rogod6#=int(rnd(360))
zrotate object 26,rogod6#
zrotate object 6,-rogod6#
rogod7#=int(rnd(360))
zrotate object 27,rogod7#
zrotate object 7,-rogod7#
rogod8#=int(rnd(360))
zrotate object 28,rogod8#
zrotate object 8,-rogod8#
rogod9#=int(rnd(360))
zrotate object 29,rogod9#
zrotate object 9,-rogod9#

Теперь делаем метеориты. Для этого, загрузим один 3D обьект из папки, затекстурим его. Случайно разместим на некоторой площади вправо-влево и сделаем в цикле необходимое количество копий, которые тоже случайным образом разместим в 3D сцене, немного варьируя их размеры.

Code
kam=200
load image "Models\Stone\stoneimg.jpg",101
load object "Models\Stone\stone1.DBO",101
texture object 101,101
scale object 101,400,400,400
position object 101,0,0,3000
for i=102 to kam
  x=int(rnd(12000)-6000):y=int(rnd(12000)-6000):z=int(rnd(2000)+5000)
  instance object i,101
  position object i,x,y,z
  ra=int(rnd(200)+400)
  scale object i,ra,ra,ra
  x=int(rnd(360))
  y=int(rnd(360))
  z=int(rnd(360))
  rotate object i,x,y,z
next i

Аналогичным образом расставим несколько галактик и нарисуем две кометы.

Code
`=============== Ставим фоновые Галактики ==================
restore galacto
for num=90 to 97
read gal$
load image gal$,num
make object plain num,500,310
texture object num,num
ghost object on num
x=int(rnd(22000)-11000):y=int(rnd(22000)-11000):z=int(rnd(10000)+11000)
position object num,x,y,z
set object light num,0
ra=int(rnd(600)+400)
scale object num,ra,ra,0
next num
galacto:
data "image\Gal1.jpeg","image\Gal2.jpeg","image\Gal3.jpeg","image\Gal4.jpeg"
data "image\Gal5.jpeg","image\Gal6.jpeg","image\Gal7.jpeg","image\Gal8.jpeg"

`======================== Рисуем Комету ==================
load image "image\Komet.jpg",300
make object plain 300,290,108
texture object 300,300
ghost object on 300
set object light 300,0
x=int(rnd(5000)-2500):y=int(rnd(5000)-2500)
position object 300,x,y,2000
scale object 300,400,300,0
yrotate object 300,90
fix object pivot 300
point object 300,0,0,2000

make object plain 301,290,108
texture object 301,300
ghost object on 301
set object light 301,0
x=int(rnd(5000)-2500):y=int(rnd(5000)-2500)
position object 301,x,y,2500
scale object 301,400,400,0
yrotate object 301,90
fix object pivot 301
point object 301,0,0,2500

Ну что же, все обьекты расставлены, можно писать тело программы. Тут требуют пояснений только команды wrapvalue (угол). Эта команда преобразует число в предел от 0 до 360 градусов.
yrotate object номер объекта,угол - эта команда поворачивает обьект вокруг оси у на определённый угол, а zrotate object поворачивает вокруг оси z.
Ну и наверное введём ещё - плавное движение камеры. Я выбрал движение - по закону синуса - косинуса, но каждый, волен придумать свою формулу движения.

Code

do
`=================== Вращение планет суточное ===============
yrotate object 1,wrapvalue (rosut1#)
yrotate object 2,wrapvalue (rosut2#)
yrotate object 3,wrapvalue (rosut3#)
yrotate object 31,wrapvalue (rosut31#)
yrotate object 4,wrapvalue (rosut4#)
yrotate object 5,wrapvalue (rosut5#)
yrotate object 7,wrapvalue (rosut7#)
yrotate object 8,wrapvalue (rosut8#)
yrotate object 9,wrapvalue (rosut9#)
`=================== Вращение Атмосфер ====================
ro#=ro#+0.5
yrotate object 32,wrapvalue (ro#)`- Атмосфера Венера
yrotate object 41,wrapvalue (ro#)
yrotate object 51,wrapvalue (ro#)
yrotate object 61,wrapvalue (ro#)
yrotate object 71,wrapvalue (ro#)
yrotate object 81,wrapvalue (ro#)
roll object left 10,0.1 ` - поворот спрайта солнца
yrotate object 11,wrapvalue (ro#)` - поворот солнца
`======================== Вращение годовое ================
zrotate object 21,wrapvalue (rogod1#)
zrotate object 1,wrapvalue (-rogod1#)
zrotate object 22,wrapvalue (rogod2#)
zrotate object 2,wrapvalue (-rogod2#)
zrotate object 23,wrapvalue (rogod3#)
zrotate object 3,wrapvalue (-rogod3#)
zrotate object 24,wrapvalue (rogod4#)
zrotate object 4,wrapvalue (-rogod4#)
zrotate object 25,wrapvalue (rogod5#)
zrotate object 5,wrapvalue (-rogod5#)
zrotate object 26,wrapvalue (rogod6#)
zrotate object 6,wrapvalue (-rogod6#)
zrotate object 27,wrapvalue (rogod7#)
zrotate object 7,wrapvalue (-rogod7#)
zrotate object 28,wrapvalue (rogod8#)
zrotate object 8,wrapvalue (-rogod8#)
zrotate object 29,wrapvalue (rogod9#)
zrotate object 9,wrapvalue (-rogod9#)

if timer()-temp>20
  gosub vras
  temp=timer()
endif
pos#=wrapvalue (pos#+0.05)
position camera sin(pos#)*800,cos(pos#)*800,0
sync

loop
delete objects 1,301
end

`================= Подпрограмма поворота камней =============
vras:
for i=101 to kam
  if object in screen(i)=1
  if object size(i)<80
  k=floor(i/2)
  if k*2=i then rotate object i,roc,roc,roc else rotate object i,-roc,-roc,-roc
  endif
  endif
next i
  roc=wrapvalue (roc+1)
return

Ну вот и всё! Наша программа - написана! Запустим её, нажав F5, что-бы убедиться что всё без ошибок. У кого не получилось - ещё раз, всё тщательно проверьте. У вас должен получиться вот такой код:

Code
Rem Project: Space Scrinsaver
Rem Created: 22.11.2010 1:31:13

Rem ***** Main Source File *****
flush video memory
set display mode 1024,768,32
sync on : sync rate 50 : backdrop on
autocam off
set camera range 1,25000
randomize timer()
set global object creation 0
hide mouse

`================== Текстурим задник ====================
load image "image\cosmic.jpg",100
texture backdrop 100

`==================== Создаём Солнце ==================
load image "image\sun1.jpg",10
make object plain 10,512,512
texture object 10,10
position object 10,400,0,800
scale object 10,55,55,0
position camera 0,0,0
ghost object on 10
set object light 10,0
fade object 10,350
load image "image\sunmap.jpg",11
make object sphere 11,150,25,25
texture object 11,11
position object 11,400,0,800
set object light 11,0
fade object 11,650
`================== Создаём меркурий ==================
load image "image\mercury.jpg",1
make object sphere 1,70,20,20
texture object 1,1
position object 1,-250,0,0
make object sphere 21,10
glue object to limb 1,21,0,0
position object 21,400,0,800
hide object 21
`================== Создаём венеру ===================
load image "image\venus.jpg",2
make object sphere 2,110,20,20
texture object 2,2
make object sphere 32,120,20,20
texture object 32,2
ghost object on 32
fade object 32,150
glue object to limb 32,2,0,0
position object 2,-400,0,0
make object sphere 22,10
glue object to limb 2,22,0,0
position object 22,400,0,800
hide object 22
`================== Создаём землю ===================
load image "image\earth.jpg",3
make object sphere 3,120,20,20
texture object 3,3
make object sphere 30,130,20,20
load image "image\Clouds.jpg",30
texture object 30,30
glue object to limb 30,3,0,0
ghost object on 30
fade object 30,300
set object light 30,0
position object 3,-700,0,0
make object sphere 31,50
position object 31,-150,0,0
load image "image\MOON.JPG",31
texture object 31,31
glue object to limb 31,3,0,0
make object sphere 23,10
glue object to limb 3,23,0,0
position object 23,400,0,800
hide object 23
`=================== Создаём марс ==================
load image "image\mars.jpg",4
make object sphere 4,100,20,20
texture object 4,4
make object sphere 41,108,20,20
texture object 41,4
ghost object on 41
fade object 41,350
glue object to limb 41,4,0,0
position object 4,-1000,0,0
make object sphere 24,10
glue object to limb 4,24,0,0
position object 24,400,0,800
hide object 24
`==================== Создаём юпитер ===================
load image "image\jupiter.jpg",5
make object sphere 5,150,20,20
texture object 5,5
make object sphere 51,165,20,20
texture object 51,5
ghost object on 51
set object light 51,0
glue object to limb 51,5,0,0
position object 5,-1250,0,0
make object sphere 25,10
glue object to limb 5,25,0,0
position object 25,400,0,800
hide object 25
`====================== Создаём сатурн ================
load image "image\saturn.jpg",6
make object sphere 6,140,20,20
texture object 6,6
make object sphere 61,150,20,20
texture object 61,6
ghost object on 61
set object light 61,0
glue object to limb 61,6,0,0
position object 6,-1600,0,0
make object plain 62,410,410
load image "image\Kolsa.jpg",62
texture object 62,62
ghost object on 62
glue object to limb 62,6,0,0
xrotate object 62,-60
make object sphere 26,10
glue object to limb 6,26,0,0
position object 26,400,0,800
hide object 26
`====================== Создаём Уран ===================
load image "image\uranus.jpg",7
make object sphere 7,130,20,20
texture object 7,7
make object sphere 71,140,20,20
texture object 71,7
ghost object on 71
set object light 71,0
glue object to limb 71,7,0,0
position object 7,-1950,0,0
make object sphere 27,10
glue object to limb 7,27,0,0
position object 27,400,0,800
hide object 27
`====================== Создаём Нептун =================
load image "image\neptune.jpg",8
make object sphere 8,130,20,20
texture object 8,8
make object sphere 81,140,20,20
texture object 81,8
ghost object on 81
set object light 81,0
glue object to limb 81,8,0,0
position object 8,-2200,0,0
make object sphere 28,10
glue object to limb 8,28,0,0
position object 28,400,0,800
hide object 28
`====================== Создаём Плутон ================
load image "image\pluton.jpg",9
make object sphere 9,110,20,20
texture object 9,9
position object 9,-2400,0,0
make object sphere 29,10
glue object to limb 9,29,0,0
position object 29,400,0,800
hide object 29
`=============== Случайно размещаем планеты на орбитах =========
rogod1#=int(rnd(360))
zrotate object 21,rogod1#
zrotate object 1,-rogod1#
rogod2#=int(rnd(360))
zrotate object 22,rogod2#
zrotate object 2,-rogod2#
rogod3#=int(rnd(360))
zrotate object 23,rogod3#
zrotate object 3,-rogod3#
rogod4#=int(rnd(360))
zrotate object 24,rogod4#
zrotate object 4,-rogod4#
rogod5#=int(rnd(360))
zrotate object 25,rogod5#
zrotate object 5,-rogod5#
rogod6#=int(rnd(360))
zrotate object 26,rogod6#
zrotate object 6,-rogod6#
rogod7#=int(rnd(360))
zrotate object 27,rogod7#
zrotate object 7,-rogod7#
rogod8#=int(rnd(360))
zrotate object 28,rogod8#
zrotate object 8,-rogod8#
rogod9#=int(rnd(360))
zrotate object 29,rogod9#
zrotate object 9,-rogod9#

`=================== Делаем метеориты ================
kam=200
load image "Models\Stone\stoneimg.jpg",101
load object "Models\Stone\stone1.DBO",101
texture object 101,101
scale object 101,400,400,400
position object 101,0,0,3000
for i=102 to kam
  x=int(rnd(12000)-6000):y=int(rnd(12000)-6000):z=int(rnd(2000)+5000)
  instance object i,101
  position object i,x,y,z
  ra=int(rnd(200)+400)
  scale object i,ra,ra,ra
  x=int(rnd(360))
  y=int(rnd(360))
  z=int(rnd(360))
  rotate object i,x,y,z
next i
`================ Ставим фоновые Галактики =============
restore galacto
for num=90 to 97
read gal$
load image gal$,num
make object plain num,500,310
texture object num,num
ghost object on num
x=int(rnd(22000)-11000):y=int(rnd(22000)-11000):z=int(rnd(10000)+11000)
position object num,x,y,z
set object light num,0
ra=int(rnd(600)+400)
scale object num,ra,ra,0
next num
galacto:
data "image\Gal1.jpeg","image\Gal2.jpeg","image\Gal3.jpeg","image\Gal4.jpeg"
data "image\Gal5.jpeg","image\Gal6.jpeg","image\Gal7.jpeg","image\Gal8.jpeg"

`=================== Рисуем Комету ==================
load image "image\Komet.jpg",300
make object plain 300,290,108
texture object 300,300
ghost object on 300
set object light 300,0
x=int(rnd(5000)-2500):y=int(rnd(5000)-2500)
position object 300,x,y,2000
scale object 300,400,300,0
yrotate object 300,90
fix object pivot 300
point object 300,0,0,2000

make object plain 301,290,108
texture object 301,300
ghost object on 301
set object light 301,0
x=int(rnd(5000)-2500):y=int(rnd(5000)-2500)
position object 301,x,y,2500
scale object 301,400,400,0
yrotate object 301,90
fix object pivot 301
point object 301,0,0,2500

`====================================================
do

`======================= Двигаем кометы ==============
move object 300,1
move object 301,1
for l=300 to 301
xc=object position x(l)
yc=object position y(l)
zc=object position z(l)
  if xc>3000 or xc<-3000 or yc>3000 or yc<-3000
  point object l,0,0,zc
  ang=object angle z(l)
  dang=int(rnd(60)-30)
  zrotate object l,wrapvalue (ang+dang)
  endif
next l
`============= Константы суточных вращений планет =============
rosut1#=rosut1#+2
rosut2#=rosut2#+0.6
rosut3#=rosut3#+0.5
rosut31#=rosut31#+0.5 `- луна
rosut4#=rosut4#+0.4
rosut5#=rosut5#+0.3
rosut7#=rosut7#+0.3
rosut8#=rosut8#+0.2
rosut9#=rosut9#+0.8
`============== Константы годовых вращений планет ===========
rogod1#=rogod1#+0.2
rogod2#=rogod2#+0.15
rogod3#=rogod3#+0.1
rogod4#=rogod4#+0.075
rogod5#=rogod5#+0.06
rogod6#=rogod6#+0.05
rogod7#=rogod7#+0.03
rogod8#=rogod8#+0.02
rogod9#=rogod9#+0.012
rogod12#=rogod12#+0.01

`================ Вращение планет суточное ============
yrotate object 1,wrapvalue (rosut1#)
yrotate object 2,wrapvalue (rosut2#)
yrotate object 3,wrapvalue (rosut3#)
yrotate object 31,wrapvalue (rosut31#)
yrotate object 4,wrapvalue (rosut4#)
yrotate object 5,wrapvalue (rosut5#)
yrotate object 7,wrapvalue (rosut7#)
yrotate object 8,wrapvalue (rosut8#)
yrotate object 9,wrapvalue (rosut9#)
`================== Вращение Атмосфер =====================
ro#=ro#+0.5
yrotate object 32,wrapvalue (ro#)`- Атмосфера Венера
yrotate object 41,wrapvalue (ro#)
yrotate object 51,wrapvalue (ro#)
yrotate object 61,wrapvalue (ro#)
yrotate object 71,wrapvalue (ro#)
yrotate object 81,wrapvalue (ro#)
roll object left 10,0.1 ` - поворот спрайта солнца
yrotate object 11,wrapvalue (ro#)` - поворот солнца
`==================== Вращение годовое ===================
zrotate object 21,wrapvalue (rogod1#)
zrotate object 1,wrapvalue (-rogod1#)
zrotate object 22,wrapvalue (rogod2#)
zrotate object 2,wrapvalue (-rogod2#)
zrotate object 23,wrapvalue (rogod3#)
zrotate object 3,wrapvalue (-rogod3#)
zrotate object 24,wrapvalue (rogod4#)
zrotate object 4,wrapvalue (-rogod4#)
zrotate object 25,wrapvalue (rogod5#)
zrotate object 5,wrapvalue (-rogod5#)
zrotate object 26,wrapvalue (rogod6#)
zrotate object 6,wrapvalue (-rogod6#)
zrotate object 27,wrapvalue (rogod7#)
zrotate object 7,wrapvalue (-rogod7#)
zrotate object 28,wrapvalue (rogod8#)
zrotate object 8,wrapvalue (-rogod8#)
zrotate object 29,wrapvalue (rogod9#)
zrotate object 9,wrapvalue (-rogod9#)

if timer()-temp>20
  gosub vras
  temp=timer()
endif
pos#=wrapvalue (pos#+0.05)
position camera sin(pos#)*800,cos(pos#)*800,0
sync

loop
delete objects 1,301
end

`================= Подпрограмма поворота камней ==============
vras:
for i=101 to kam
  if object in screen(i)=1
  if object size(i)<80
  k=floor(i/2)
  if k*2=i then rotate object i,roc,roc,roc else rotate object i,-roc,-roc,-roc
  endif
  endif
next i
  roc=wrapvalue (roc+1)
return

У тех, у кого всё получилось правильно - продолжим дальше. Прежде всего, в свойствах проекта, нам необходимо добавить файлы мультимедиа... Для этого, во вкладке Меdia, с помощью кнопки Add добавляем все папки с контентом из нашего проекта.

Потом переключаемся на вкладку - Settings, ставим галочку напротив - EXE with attached media и компилируем с помощью F4.

Всё, можете забирать из папочки своего проекта - готовый файл ЕХЕ. Теперь, сменим расширение файла на SCR - и скринсейвер готов. Осталось положить его в папку \windows\system32 и всё, можете наслаждаться собственным скринсейвером, выбрав его в свойствах экрана! Ну а те пользователи, у которых совсем ничего не получилось - могут скачать готовый скринсейвер по ссылке:Космический скринсейвер
Всем удачи и до новых уроков!

Категория: Создание игр | Добавил: Serg1971 (22 Ноября 2010) | Автор: Serg1971
Просмотров: 8316 | Комментарии: 1 | Рейтинг: 5.0/9 |
Теги: Урок, Dark Basic Pro, урок по созданию, скринсейвер своими руками, Screensaver, программирование, сделать скринсейвер, Скринсейвер, создать скринсейвер
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Создаём своими руками - скринсейвер!», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 1
+2-
1 Stefan   (17 Декабря 2010 19:59) [Материал]
Надо сказать, что урок хороший! Все понятно! Побольше бы таких уроков! Сам с удовольствием прогаю на DarkBasicPro. Автор, больше таких уроков!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Ogre3D
  • Pyxel
  • Android FPS Maker
  • DizzyAGE
  • GameBryo
  • EDGE
  • Metagam
  • Dagor
  • K5Engine
  • Ray Game Designer
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг