Школа создателей компьютерных игр

BannerDrive.ru
[Главная] [С чего начать?] [Дистанционное обучение] [Статьи] [Обучалки] [Книги] [Софт] [Форум] [Ссылки] [О сайте]

Функции



Подпишитесь на рассылку "Создание компьютерных игр"

Рассылки Subscribe.Ru
Создание компьютерных игр

Рассылка выходит раз в месяц.


Понравился сайт? Узнайте, как помочь сайту.


Рекомендуемые книги


Андре Ламот.
Программирование трехмерных игр для Windows. Советы профессионала по трехмерной графике и растеризации


Андре Ламот.
Программирование игр для Windows. Советы профессионала


Проголосуйте за сайт в рейтинге GameTop!
(нажмите на кнопку рейтинга)

GameTop - рейтинг игровых ресурсов. Портал Rolemancer (www.rolemancer.ru)

Не забывайте, что результаты рейтинга обновляются раз в неделю. Пожалуйста, голосуйте почаще!


Статистика посещаемости

Rambler's Top100

Директивы препроцессора | Все обучалки раздела | Функции часть 2

Описание

Объясняется, что такое функция, и показывается, как определять собственные функции.

Программа реализует с помощью функций простейшее "игровое меню", позволяя выбирать его пункты.

Скачать обучалку (Visual C++ 6)

Работа программы

Исходный код


//            - "Talk to me like I'm a 3 year old!" Programming Lessons -   
//                                                                       
//            $Author:            Ben Humphrey      digiben@gametutorials.com   
//                                                                            
//            $Program:            Functions                                  
//                                                                            
//            $Description:      Work with functions to create a menu.        
//                                                                            
//            $Date:                  6/5/00                                  
//                                                                            

// Перевод © 2004 Евгений Казеко
// www.gamecoder.kazeko.com
// evgeniy@kazeko.com

#include <windows.h>    // Заголовочная информация windows
#include <stdio.h>            // Мы должны включить этот файл, для того, чтобы мы могли
                                     // использовать функции, такие как printf()


void DrawMenu();           

/*  Так мы объявляем имя нашей функции и тип возвращаемых ей данных.
      Обычно это делается в другом файле, например functions.h

      Такое объявление дает компилятору знать о существовании функции и о параметрах, передаваемых
      в функцию. Это точно так же, как и объявление переменной. Мы инициализируем переменную в
      самом начале, затем как правило присваиваем ей значение позже. В данном случае, наша функция
      ничего не возвращает, поэтому мы пишем "void", в значении "ничего". 
      Если вы посмотрите на "main()" ниже, вы увидите, что мы тоже используем для нее "void".
      Обычно мы ничего не возвращаем из функции main().
      Когда объявляется функция, мы должны поставить в конце точку с запятой.*/

void DrawMenu()     
{                   

/*      Это место, где мы определяем действия, выполняемые функцией. Мы не используем
      точку с запятой, потому что функция не закончена. Мы начинаем ее с {, и заканчиваем ее } 
*/

      printf("\t\t ****************Game Menu**************** \n");
      printf("\t\t *                                       * \n");      
      printf("\t\t *   1) New Game                         * \n");      
      printf("\t\t *   2) Load Game                        * \n");      
      printf("\t\t *   3) Save Game                        * \n");      
      printf("\t\t *   4) Inventory                        * \n");      
      printf("\t\t *   5) Options                          * \n");      
      printf("\t\t *   6) Quit                             * \n");
      printf("\t\t *                                       * \n");
      printf("\t\t ***************************************** \n");
      
/*  Это наше игровое меню, выводимое с помощью printf() :) Красивое, не правда ли?
      Безусловно, вы можете использовать другие способы отображения меню.

      Символ "\t" работает так же как и "\n", но он означает табуляцию.
*/
}      // Конец функции

void main()
{
      BOOL StillPlaying=TRUE;    
      int choice=0;       
                                          
/*    Если подключить файл <windows.h>, то мы будем иметь возможность использовать переменные типа BOOL.
      Такие переменные имеют два значения  - TRUE (истинно) или FALSE (ложно). (TRUE определено с помощью
      #define как 1, FALSE как 0)
      В данном случае определим переменную со значением TRUE, показывающую, играем ли мы все еще в игру (StillPlaying)
      Когда будет выбрана опция Quit (Выход), мы установим переменной значение FALSE, заканчивая игровой цикл.
*/
/*
      Создадим цикл while, который будет продолжаться до тех пор, пока не будет нажата "6" для выхода.
*/
                                                            
      while (StillPlaying)     // Это значит, продолжать до тех пор, пока не настанет условие StillPlaying == FALSE.  
      {                                    
            DrawMenu();      
            
            /*  Все что нам нужно сделать, это вызвать функцию, как показано выше.
                  Так как мы не передаем никаких параметров, мы просто закрываем скобки () и ставим точку с запятой.
            */                                                      
            
            // Здесь мы выбираем пункт меню.
      
            printf("Choose from the menu: ");      // Сообщение пользователю

            scanf("%d", &choice); // Чтение выбора пользователя. Не забывайте, символ & позволяет изменять значение "choice".  
            /*
                  Ниже идет выражение switch. Оно обрабатывает то, что передается в него, и выполняет набор выражений
                  if else. Такая запись выглядит более понятно. Например, "case 1:" то же самое, что "if(choice == 1)"
            */  
            switch (choice)                                    
            {
                  case 1: printf("You chose a New Game!\n");  // if (choice == 1)
                              break;     // break - выход из switch 
                  case 2: printf("You chose to Load a Game!\n"); // if (choice == 2)
                              break;        // Напечатать выбор и выйти из switch
                  case 3: printf("You chose to Save a Game!\n"); // if (choice == 3)
                              break;        // Напечатать выбор и выйти из switch
                  case 4: printf("You chose your Inventory!\n"); // if (choice == 4)
                              break;        // Напечатать выбор и выйти из switch
                  case 5: printf("You chose Options!\n");        // if (choice == 5)
                              break;        // Напечатать выбор и выйти из switch
                  case 6: StillPlaying = FALSE;                  // if (choice == 6)
                              printf("Game Over Already?\n");
                              break;
            }
            /*
                  StillPlaying установлена в FALSE.  Это означает, что когда выполнится проверка while(StillPlaying),
                  произойдет выход из цикла. Что интересно в выражении switch - нам не нужны фигурные скобки
                  для записи нескольких строк. Нам нужен только break.
            */                  
      }      // while (StillPlaying)
            // Очень полезно отмечать, откуда берется закрывающая скобка.
            // Когда программа большая, довольно тяжело проверять, какая скобка к чему относится.
}  // void main()      // Когда пользователь нажимает 6, цикл завершается, и программа заканчивается.

// © 2001 GameTutorials
// Перевод © 2004 Евгений Казеко
// www.gamecoder.kazeko.com
// evgeniy@kazeko.com 

Скачать обучалку (Visual C++ 6)

Директивы препроцессора | Все обучалки раздела | Функции часть 2

[Главная] [С чего начать?] [Дистанционное обучение] [Статьи] [Обучалки] [Книги] [Софт] [Форум] [Ссылки] [О сайте]

Copyright © 2003-2005 Евгений Казеко. Все права защищены. E-mail: evgeniy@kazeko.com

опалубка широкий выбор , объемная опалубка со склада Фаворит , Материалы на деревянные дома можно купить у компании Интербудсервис. Очень качественно.