Уникальный онлайн проект Рунета!   [ "Легенда"- виртуальный мир, где все реально! Стань одним из нас! ]
Gosub (Dark Basic) - Dark Basic - Программинг - Каталог статей - Развлекательный сайт для программистов-игроделов



Категории каталога

Программинг [35]
Программинг, уроки, формулы, туториалы
Dark Basic [30]
Помощь начинающим в Dark Basic (Статьи,учебники,книги)
Blitz 3d [7]
Статьи и уроки по Blitz 3d
C/C++ [7]
Статьи по C/C++
Delphi [12]
книги, уроки, статьи, программирование в Delphi
Game Maker [12]
Статьи, помощь для программистов игроделов на Game Maker
Ассемблер (Assembler) [5]
Стати по Ассемблеру для начинающих и продвинутых программистов
ВЕБ-ПРОГРАММИРОВАНИЕ [5]
Уроки и статьи по ВЕБ-программированию

Форма входа

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

E-mail:
Пароль:

Поиск

Друзья сайта



    Случайное фото

    Счётчики



    Rambler's Top100 Seo анализ сайта оптимизация

    Статистика

    Онлайн всего: 2
    Гостей: 2
    Пользователей: 0

Поддержите наш проект

WebMoney:
R309699065243
U292079291240
Z373355457648

Наш опрос

Каким проигрывателем вы пользуетесь?:
Всего ответов: 103

Статистика

$COUNTERdiv>
Seven Quadrats of Hell

Каталог статей

Главная » Статьи » Программинг » Dark Basic

Gosub (Dark Basic)
РУКОВОДСТВО ПО СОЗДАНИЮ 3D-ИГР
III. ИГРА

8. Gosub
Цель урока: показать действие команды Gosub.

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

  If BulletLife > 0 then Gosub ShootBullet
 

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

  ShootBullet:
  Dec BulletLife
  Move object 2,10

  bX#=Object position X(2)
  bY#=Object position Y(2)
  bZ#=Object position Z(2)

  inc Pn
  if Pn=21 then Pn=10
  Scale object Pn,100,100,100
  Position object Pn,bX#,bY#,bZ#
  point object Pn,X#,Y#,Z#
  Zrotate object Pn,rnd(180)
  for x = 1 to 10
   scale object int((Wrapvalue((Pn-9+x)*36))/36)+10,100+x*25,100+x*25,100+x*25
  set cursor 10,10
  next x

  if bY# < Get Ground height(1,bX#,bZ#) then BulletLife=0
  Position sound 2,bX#,bY#,bZ#
  set cursor 10,10
  if Sqrt((mX# - bX#)^2 + (mY#+25 - bY#)^2 + (mZ# - bZ#)^2) <20
   print "Цель поражена"
   BulletLife = 0
  endif
  if BulletLife = 0
   Hide object 2
   stop sound 2
   for x=10 to 20
    hide object x
   next x
   Explode = 20
  endif
Return
 

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



Ресурсы к урокам на Dark Basic

Категория: Dark Basic | Добавил: quadrathell (29.10.2008)
Просмотров: 490 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email:
Код *:

Реклама




Новости от Radeant.com



Каталоги

Весь интернет в одном каталоге! Украинский портАл

Ещё

Весь интернет в одном каталоге!

Скрипт каталога ссылок

Партнёры Сайта

Все Партнёры

программирование:
LoBoSoFt Team - небольшая компания разрабатывающая разные игры и программки
игры софт mobile музыка:
Новости игр, новости hardware
разное - обо всём:
Сайт Эврика Моё смешное Огненный форум Phoenomix !!! Бесплатный софт - качать бесплатно Уроки фотошоп для начинающих Заработай с нами!

Стать Партнёром