[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: MiniTiv2008  
Форум » Создание игр » Программирование » Урок по созданию Игр на С++ (Создание Игр на Visual С++)
Урок по созданию Игр на С++
Призрачный_ГонщикДата: Понедельник, 24.08.2009, 16:07 | Сообщение # 1
Рядовой
Группа: Администратор
Сообщений: 109
Награды: 1
Репутация: 7
Статус:
Создание Игр на Visual С++

Уроки написаны пользователем nkn-coder

Урок Первый как создать 3D-Window

Для начяла создайте новый проект Win32 Console

и пишем

Code
#include "stdafx.h"
#include <gl/gl.h>
#include "windows.h"

void main()
{
glBegin(GL_QUADS);
glColor3d(-0,-5,rgb(255,00,00,255));
glEnd();
};

И вот у нас уже есть 3D о_К_н_О (о_О)

Урок Второй как Загрузить Текстуры в формате *.dds
пишем

Code
#include "stdafx.h"
#include <gl/gl.h>
#include "windows.h"

void main()
{
glBegin(GL_QUADS);
glColor3d(-0,-5,rgb(255,00,00,255));
float x, z, y;
if (!x)
{
int yzxxzy;
for (x = z and y)
}
else
{
}
glColor2d(-5,-0,rgb("255"));
T t; t=mciSendString(SW_NORMAL,SW_COLOR,SW_IMAGE,"Путь до текстуры DDS");
GL_SET_RENDER_TEXTURE_2D(t);
GL_X(x);
GL_Z(z);
GL_Y(y);
glEnd();
};

и вот у нас уже есть 3D Окно с Текстурой (о_О)

Урок Загрузка 3D Моделий в формате *.X
пишем

Code
void main()
{
glBegin(GL_QUADS);
glColor3d(-0,-5,rgb(255,00,00,255));
float x, z, y;
if (!x)
{
int yzxxzy;
for (x = z and y)
}
else
{
}
glColor2d(-5,-0,rgb("255"));
T t; t=mciSendString(SW_NORMAL,SW_COLOR,SW_IMAGE,"Путь до текстуры DDS");
GL_SET_RENDER_TEXTURE_2D(t);
GL_X(x);
GL_Z(z);
GL_Y(y);
GL_3D_SET_RENDER(*.x);
for (x, z, y)continue;
float y, z, x;
CreateWindow(SW_3D);
CreateMenu(GL_STANDART);
while (do [3D]);
for (3D)
glEnd();
};

И вот у нас уже есть 3Д-Виндов с Текстурами и Меню на X Моделях Продолжение Урока Следуит...

 
NDV89Дата: Вторник, 25.08.2009, 22:13 | Сообщение # 2
Учитель форума
Группа: Пользователь
Сообщений: 27
Награды: 1
Репутация: 4
Статус:
Упс... А чё это второй инклуд без параметров? Чё инклудит то ? Не ОпенГЛ случайно?? Если да, то его ещё достать нужно)) В комплекте со студией его нет(
 
SanAVДата: Понедельник, 30.11.2009, 22:13 | Сообщение # 3
Рядовой
Группа: Пользователь
Сообщений: 8
Награды: 0
Репутация: 1
Статус:
Quote (Призрачный_Гонщик)

Урок Загрузка 3D Моделий в формате *.X
пишем

void main()
{
glBegin(GL_QUADS);
glColor3d(-0,-5,rgb(255,00,00,255));
float x, z, y;
if (!x)
{
int yzxxzy;
for (x = z and y)
}
else
{
}
glColor2d(-5,-0,rgb("255"));
T t; t=mciSendString(SW_NORMAL,SW_COLOR,SW_IMAGE,"Путь до текстуры DDS");


исправь на "Путь до модели *.x"

Добавлено (30.11.2009, 22:13)
---------------------------------------------
да, и выдели коды тегами [ code ] и [ / code ], без пробелов)

 
Призрачный_ГонщикДата: Вторник, 01.12.2009, 20:37 | Сообщение # 4
Рядовой
Группа: Администратор
Сообщений: 109
Награды: 1
Репутация: 7
Статус:
Это не моя статья...
 
LepardChihДата: Среда, 02.12.2009, 01:20 | Сообщение # 5
Сержант
Группа: Пользователь
Сообщений: 12
Награды: 0
Репутация: 0
Статус:
О! У инклуда появился параметр!(вообще-то по умному это кажется называется "директива препроцессора")

А что делает эта конструкция(по моему это запускает цикл нахождения случайного числа):
float x, z, y;
if (!x) //если x=1 и больше(отличное от 0), то это true.
{ //А если 0 - то false. !0=true, !1=false. Значит !x "выполнить если ноль"
int yzxxzy;
for (x = z and y) //и разве уже можно and? Раньше вроде && было
} //смысл тут такой "x = 1 если z>0 и y>0 или z=0 и y=0". "x = 0 если z=0 и y>0 или наоборот"
else
{
}
1. Похоже на задание 1 или 0 x, но зачем так сложно?
2. И особенно переменная int yzxxzy; - зачем она нужна?
3. А else почему пустое?
4. В
for (x = z and y)
}
в конце цикла нет точки с запятой. Значит, предполагается, что будет выполняться нижняя часть программы? Если так, то система получается мудрёная...
И особенно для обучения новичков.

Quote (SanAV)
исправь на "Путь до модели *.x"

Может быть не там, а это исправить на "Путь до модели *.x"?:
Quote
GL_3D_SET_RENDER(*.x);

Далее

Quote (Призрачный_Гонщик)
GL_X(x);
GL_Z(z);
GL_Y(y);

Это относится к:
Quote (Призрачный_Гонщик)
GL_SET_RENDER_TEXTURE_2D(t);

Или к:
Quote (Призрачный_Гонщик)
GL_3D_SET_RENDER(*.x);

?

Quote
"Путь до текстуры DDS"

А *.jpg не подойдёт?

Quote
for (x, z, y) continue;

Quote
while (do [3D]);

Quote
for (3D)
glEnd();

Что делают эти экзотичные конструкции с циклами? Они что, стопорят программу, пока данные переменные не станут отличными от нуля?

Quote (NDV89)
Не ОпенГЛ случайно??Если да, то его ещё достать нужно

Источник:
Где взять последнюю версию OpenGL?
http://www.gamedev.ru/code/faq/OpenGL_download
Последняя версия OpenGL устанавливается при установке драйверов от вашей графической карты.

Достаточно зайти на сайт NVIDIA http://www.nvidia.com или ATI http://www.ati.com и скачать последние драйвера для вашей карты и установить их.

Источник:
Где взять последние заголовки для OpenGL?
http://www.gamedev.ru/code/faq/?id=3566

Самые последние заголовочные файлы для OpenGL всегда лежат на http://oss.sgi.com/projects/ogl-sample/registry/
(файлы glext.h (кросс-платформенные расширения), wglext.h (расширения win32) и glxext.h (расширения для *nixes).

Также эти файлы есть, например, в NVSDK.

Версии для Delphi есть здесь:
http://www.delphigl.com/do_download.php?f=12000, http://www.delphi3d.net/dot, http://www.clootie.ru

Что же касается lib-файлов для OpenGL, то вы их нигде не найдёте, потому что их не существует. Линкуйте к проекту стандартный файл opengl32.lib для стандартного в windows OpenGL 1.1, и подключайте нужные расширения OpenGL вручную.

Чтобы не получать вручную адрес каждой функции, попробуйте одну из библиотек GLEW (http://glew.sourceforge.net/, очень полная библиотека) или GLH (часть NVSDK, содержит, в основном, только расширения от NVidia).

Где взять простейшие файлы типа gl.h написано тут:
http://www.gamedev.ru/code/articles/?id=4268#initsializatsiya

Заголовочные файлы, которые могут понадобиться для работы с OpenGL, обычно находятся в папке GL, расположенной в стандартной папке Include.

Quote (LepardChih)
В моём Delphy7 они ЕСТЬ. В принципе и в VC++ должны быть.

Объявление стандартных функций OpenGL находится в файле gl.h, поэтому ваш файл исходного кода, содержащий функции OpenGL, должен включать gl.h:

#include <GL/gl.h>

Кроме того, линковщику нужно указать статические библиотеки, с внешними функциями. Например, для функций, объявленных в gl.h, необходимо добавить в проект opengl32.lib.

Quote (NDV89)
В комплекте со студией его нет(

Странно... в принципе должен быть. Если даже в моём Delphy7 есть, то почему в VC++ нет?
Может его нет в экспресс-версии?


Сообщение отредактировал LepardChih - Среда, 02.12.2009, 06:10
 
nkn-coderДата: Среда, 02.12.2009, 18:17 | Сообщение # 6
лошара
Группа: Заблокированный
Сообщений: 35
Награды: 0
Репутация: 0
Статус:
о_О сколько мессагов отвечяю


Вопрос(А *.jpg не подойдёт?) Ответ(нет для отображения jpg нужно писать форматирование)

Да OpenGL

Что делают эти экзотичные конструкции с циклами? Они что, стопорят программу, пока данные переменные не станут отличными от нуля? Ответ(нет не стапорят они выводят число по х кординатам в ответе будет всегда 0=5 + 1 =0 = 1
и в итоге можно завершать цыкл вообшем не совсем понял суть вопросов

С уважением nkn-coder


Aim Writing in C++,Delphi,HTML,PHP,PASCAL,CSS
 
LepardChihДата: Пятница, 04.12.2009, 21:44 | Сообщение # 7
Сержант
Группа: Пользователь
Сообщений: 12
Награды: 0
Репутация: 0
Статус:
Quote (nkn-coder)
Ответ(нет не стапорят они выводят число по х кординатам в ответе будет всегда 0=5 + 1 =0 = 1
и в итоге можно завершать цыкл вообшем не совсем понял суть вопросов

Может я чего то не понимаю...
НО:
1. 0=5 + 1 =0 = 1 - откуда цифры, если переменные НЕ ИНИЦИИРОВАНЫ?
Справка:
Конструкция float x,y,z;
Означает, что зарезервирована память по адресу x,y,z. По этому адресу может быть что угодно. Например оставшаяся текстовая информация. Но так как переменные объявлены как float эти ошмётки, чем бы они ни были будут переведены в формат float - число с плавающей точкой. ЛЮБОЕ ЧИСЛО. А не 0=5 + 1 =0 = 1...
2.
for (x = z and y)
}
Это ещё допустим выбирает случайное число. Ещё неплохо было бы объяснить z and y это обычное логическое сравнение или побитовое(коньюкция)?

а это

Quote
for (x, z, y) continue;

Что и кому устанавливает?

3. Может пока я не программировал в С++ что-то изменилось, но:
for (;x, z, y;) continue;
а это

Quote
for (x, z, y) continue;

Не должно компилироваться вообще.

Ибо конструкция С++ цикла примерно такова:
for(int i; i<=y;i++) ...;
Но можно и так
for( ; 1; ) ...if("условие") break;

Сообщение отредактировал LepardChih - Пятница, 04.12.2009, 21:48
 
MolchДата: Суббота, 05.12.2009, 12:04 | Сообщение # 8
Сержант
Группа: Пользователь
Сообщений: 12
Награды: 0
Репутация: 5
Статус:
Quote

Это не моя статья...

Понятно, конечно, но разве нельзя было хотя бы разобраться в неё, если свою писать неохота?.. Я уверен, вы и сами сможете пару примерчиков наклепать, ведь не трудно, правда?

 
Форум » Создание игр » Программирование » Урок по созданию Игр на С++ (Создание Игр на Visual С++)
  • Страница 1 из 1
  • 1
Поиск: