JREGC

Главная | Регистрация | Вход Приветствую Вас Инопланетяне | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: wawe  
Форум » PROGRAMMING CATEGORY » Уроки LWJGL » Делаем 3D игру вместе#1
Делаем 3D игру вместе#1
waweДата: Четверг, 11.10.2012, 19:17 | Сообщение # 1
Просто человек...
Группа: Администраторы
Сообщений: 50
Награды: 3
Статус: Offline
Доброго дня, с сегодняшнего дня мы начнем делать 3D игру. Я постараюсь объяснить вам как делаются шейдеры, цикл игры, как загружать 3D модель и т.д.

Что нам необходимо...


Но давайте начнем с самого простого, посмотрите на эту заготовку для будущей игры.

Code

public class Main {

    // конструктор главного класса Main.
    public Main() {
     // TODO Auto-generated constructor stub
    }

    // заготовка для настройки дисплея.
    public void GET_INIT_DISPLAY() {

    }

    // заготовка для настройки 3D OpenGL.
    public void GET_INIT_GL3D() {

    }

           // про это я расскажу позже
    public void GET_INIT_UPDATE() {

    }

    // ну а здесь будет главный цикл игры.
    public void GET_INIT_RUNNING() {

    }

    // здесь и так все понятно.
    public static void main(String[] args) {
     Main main = new Main();
     main.GET_INIT_DISPLAY();
    }
}


В методе GET_INIT_DiSPLAY(){} мы создадим самое же окно(window) в котором и будет все происходить.
Как написано в коде, метод GET_INIT_GL3D(){} служит для настройки 3D графики(какой материал будет иметь модель, игра будет 3D или 2D, и т.д).

Ну, а в методе GET_INIT_RUNNING(){} будет работать все происходящее.

Пока вы здесь читали, я уже модернизировал код выше и вот что у меня вышло

Code

import org.lwjgl.LWJGLException;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;

public class Main {

    public static boolean[] keys = new boolean[256];
    public static final int DISPLAY_WIDTH = 800;
    public static final int DISPLAY_HEIGHT = 600;
    public String TITLE = "GL3Dgame";
    public boolean VSYNC_ENABLED = false;
    public boolean RUNNING = true;

    // конструктор главного класса Main.
    public Main() {
     // TODO Auto-generated constructor stub
    }

    // заготовка для настройки дисплея.
    public void GET_INIT_DISPLAY() {
     try {
      // настраиваем размеры окна, в моем случае это 800x600
      Display.setDisplayMode(new DisplayMode(DISPLAY_WIDTH,
        DISPLAY_HEIGHT));
      // меняем заголовок окна
      Display.setTitle(TITLE);
      // вертикальная синхронизация в этот момент отключена
      Display.setVSyncEnabled(VSYNC_ENABLED);
      // создаем окно
      Display.create();
      // если появилась ошибка...
     } catch (LWJGLException e) {
      // выводим в консоль сообщение об ошибке
      System.err.println("Error: Display.create");
      // здесь объяснять не буду.
      e.printStackTrace();
      // asCrash == true это число 1, сообщаем всем, что причина очистки
      // из за ошибки
      cleanUp(true);
     }

     // это настройка Opengl
     GET_INIT_GL3D();
     // запускаем цикл
     GET_INIT_RUNNING();
    }

    // заготовка для настройки 3D OpenGL.
    public void GET_INIT_GL3D() {

    }

    // обновление содержимого
    public void GET_INIT_UPDATE() {
     mapKeys();
    }

    // ну а здесь будет главный цикл игры.
    public void GET_INIT_RUNNING() {
     // цикл будет работать до тех пор, пока RUNNING не будет равен false;
     // окно не будет закрыто; пользователь не нажмет клавишу ESC.
     while (RUNNING && !Display.isCloseRequested()
       && !keys[Keyboard.KEY_ESCAPE]) {
      GET_INIT_UPDATE();
      Display.update();
     }
     // asCrash == false это число 0. Выход в нормальном состоянии
     cleanUp(false);
    }

    // массив для хранения Keyboard
    public void mapKeys() {
     for (int i = 0; i < keys.length; i++) {
      keys[i] = Keyboard.isKeyDown(i);
     }
    }

    // очистка и разрушение окна
    public void cleanUp(boolean asCrash) {
     Display.destroy();
     System.exit(asCrash ? 1 : 0);
    }

    // здесь и так все понятно.
    public static void main(String[] args) {
     Main main = new Main();
     main.GET_INIT_DISPLAY();
    }
}

Когда вы запустите программу, вы увидите на мониторе окно размером 800x600 пикселей.
На этом все, по-позже я вам расскажу, как настроить наконец-то же GL3D. И какие преимущества этот метод нам даст. mobnotch
 
kodoДата: Понедельник, 14.01.2013, 02:45 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 7
Награды: 0
Репутация: 0
Статус: Offline
А можно поподробнее рассказать, что за slick.jar ?
Лично я качал здесь: http://slick.cokeandcode.com/downloads/slick.jar - пока работает mobsheep
 
waweДата: Понедельник, 14.01.2013, 11:05 | Сообщение # 3
Просто человек...
Группа: Администраторы
Сообщений: 50
Награды: 3
Статус: Offline
Slick - библиотека для разработки 2D игр.
 
Форум » PROGRAMMING CATEGORY » Уроки LWJGL » Делаем 3D игру вместе#1
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024
Используются технологии uCoz