PMG

Форумы по созданию игр
Текущее время: 28 сен 2021 08:45

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: простенькая 2D игра
СообщениеДобавлено: 18 ноя 2009 14:12 
Не в сети
Любитель

Зарегистрирован: 18 ноя 2009 13:50
Сообщения: 22
Вообщем задача не из простых (лично для меня) , т.к. что-то могу , а чему-то мне нужно научиться .
В институте задали курсовую работу - запрограммировать игру на C/C++
Я это сделал , правда в консольном(Win32 console appl..) приложении ... сами понимаете игра в консольном приложении - вообще без наглядности ... бредово...

Игра:
Перед вами в ряд выложены 13 монет , играют 2 игрока , первый может взять только 1 монету , следующий игрок может брать не больше удвоенного количества монет, от тех что взял предыдущий . например если я взял 2 монеты , то вы можете взять 1, 2, 3, 4 но не больше , и т д . Ход обязательно должен быть результативным.
Выигрывает тот, кто последним возьмёт 13ю монету .

примерно на экране должно быть так : зеленое поле , на нём 13 монет , 12 чёрных , 13я - красная , если ходит компьютер - его монеты сдвигаются вверх , если игрок - вниз .

Подскажите плз как это всё в графику перевести и реализовать ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: простенькая 2D игра
СообщениеДобавлено: 18 ноя 2009 15:45 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
читай http://pmg.org.ru/nehe/index.html и скачивай исходники, там всё понятно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: простенькая 2D игра
СообщениеДобавлено: 20 ноя 2009 11:51 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
С точки зрения OpenGL у тебя есть есть несколько объектов:
1. поле
2. монеты с разной текстурой.

У каждого объекта есть координаты и форма представления, например в 3DS.

Выводишь все объекты в нужном местоположении и повороте и все.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: простенькая 2D игра
СообщениеДобавлено: 13 апр 2010 15:06 
Не в сети
Новичок

Зарегистрирован: 13 апр 2010 14:48
Сообщения: 3
=))) спустя несколько месяцев я всё-таки решил вернуться к начатому проекту, решил делать так как могу и то что умею полагаясь на свои силы, я обошёл этот не известный до сих пор для меня момент:
когда рисую монеты слева направо и если значение ячейки z[i] = 1 я сдвигаюсь на 0.15 по оси Y , если z[i] = 2 вниз , а если z[i] = 0 то Y =0
получается картина , каждая последующая монета расположена не на 1м уровне а на 0.15 по Y выше предыдущей или ниже в зависимости от значение z[i] , ( i = 0->12);

обошёл этот момент путём замены этих передвижений на простое закрашивание в разные цвета, например человек взял 5 монет , компьютер берёт 8 , и на экране вырисовывается первые 5 монет в зелёный цвет а остальные 8 в красный , не взятые монеты перекрашены в белый , понимаю детсадовская игра получается , но как мог так и сделал.

кстате как поле создать я пока не понимаю .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: простенькая 2D игра
СообщениеДобавлено: 13 апр 2010 19:35 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
>кстате как поле создать я пока не понимаю .

В каком смысле. Надо где-то создать модельку поля и выводит ее.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: простенькая 2D игра
СообщениеДобавлено: 01 июн 2010 13:58 
Не в сети
Новичок

Зарегистрирован: 13 апр 2010 14:48
Сообщения: 3
не, я имел ввиду поле как прямоугольник 3 х 13 (строка столбец) , по логике , самая центральная строка - 2я , в ней распологаются 13 монет в строчку , если игрок 1 берёт 1 монету, монета сдвигается в 1ю строчку , если вторые 2 монеты берёт 2й игрок то , 2я,3я монеты сдвигаются на строчку вниз .
это получается матрица , это я понял . Вопрос у меня был и остаётся до сих пор только , как рисовать с openGL монеты как отдельные друг от друга обьекты . А то рисую 1ю монету , затем вторую а она смещается относительно первой , 3я относительно 2й , в своей игре пришлось писать так:

Код:
glTranslated(0,0,0);   
     glColor3d(0.8,0.4,0.0);
     auxSolidSphere(7.0);

    glPopMatrix;

    glTranslated(X1,Y1,0); 
     glColor3d(0.5,0.1,0.1);
     auxSolidSphere(0.2);

    glTranslated(-X1,-Y1,0);
    glPopMatrix;

    glTranslated(X2,Y2,0); 
     glColor3d(0.4,0.2,0.2);
     auxSolidSphere(0.4);

    glTranslated(-X2,-Y2,0);
    glPopMatrix;

    glTranslated(X3,Y3,0);   
     glColor3d(0,0.1,1);
     auxSolidSphere(0.65);

    glPopMatrix;

    glTranslated(X4,Y4,0); 
     glColor3d(0.1,0.2,0.2);
     auxSolidSphere(0.1);

    glTranslated(-X4,-Y4,0);
    glPopMatrix;

    glTranslated(-X3,-Y3,0);
    glPopMatrix;

    glTranslated(X5,Y5,0); 
     glColor3d(0.8,0.5,0.1);
     auxSolidSphere(0.55);

    glTranslated(-X5,-Y5,0);
    glPopMatrix;

    glTranslated(X6,Y6,0); 
     glColor3d(0.6,0.5,0.1);
     auxSolidSphere(2.4);


мне приходилось перемещать на нулевое расстояние .

кстате у меня почему то glPopMatrix; и glPushMatrix; не пашет , как я их н ставил в какой последовательности, может я не доконца понял что эти команды делают?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: простенькая 2D игра
СообщениеДобавлено: 01 июн 2010 14:11 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
glPushMatrix - сохраняет какую-то матрицу в стеке, glPopMatrix - извлекает из стека.

Смысл такой. Берешь какую-то матрицу, например, модели и вида. Сохраняешь ее в стеке, потом как-то ее меняешь, выводишь то, что нужно, и извлекаешь из стека.

Лучше всего почитать Эйнджела.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: простенькая 2D игра
СообщениеДобавлено: 01 июн 2010 19:08 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
AlexFalcoN писал(а):
получается картина , каждая последующая монета расположена не на 1м уровне а на 0.15 по Y выше предыдущей или ниже в зависимости от значение z[i]
Это как раз и получается из-за отсутствия glPushMatrix() и glPopMatrix(), матрица для каждой следующей фигуры зависит от предыдущей фигуры, а если расставить glPushMatrix() и glPopMatrix() в нужных местах, то они будут независимыми. Расставить их нужно примерно так:
Код:
glPushMatrix();
glTranslated(0,0,0);   
glColor3d(0.8,0.4,0.0);
auxSolidSphere(7.0);
glPopMatrix;

glPushMatrix();
glTranslated(X1,Y1,0);
glColor3d(0.5,0.1,0.1);
auxSolidSphere(0.2);
glPopMatrix;

glPushMatrix();
glTranslated(X2,Y2,0);
glColor3d(0.4,0.2,0.2);
auxSolidSphere(0.4);
glPopMatrix;


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB