Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 26.12.2009, 09:56   #1
zinador
AnyKey`щик
 
Регистрация: 26.12.2009
Сообщений: 9
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос OpenGL арконойд проблема с отскакиванием шарика от платформы

всем здрасте.
я начал писать арконойд с помощью OpenGL
в с++ я ешо мало чего понимаю и поэтому прошу у вас помощи.
дело в том что я пытаюсь реализовать отскок шарика от платформы а у меня получаеться не так как надо тоесть платформа идет в лево шарик летит вверх,а платформа идет вправо шарик летит в низ и самое главное не происходит отскока от платформы для того чтобы вы поняли о чем я кидаю код
#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <GL/glaux.h>
#pragma comment (lib,"glut32.lib")
#pragma comment (lib,"glaux.lib")
#pragma comment (lib,"glu32.lib")
#pragma comment (lib,"opengl32.lib")
extern double xp=0.1;//координаты шарика	
extern double yp=0.1;//координаты шарика
extern double vx=0.1;//координаты скорости
extern double vy=0.1;//координаты скорости
extern double dt=0.1;  

void CALLBACK resize(int width,int height)
{
   glViewport(0,0,width,height);
   glMatrixMode( GL_PROJECTION );
   glLoadIdentity();
   glOrtho(-5,5, -5,5, 2,12);   
   gluLookAt( 0,0,5, 0,0,0, 0,1,0 );
   glMatrixMode( GL_MODELVIEW );
}    
void podstavka (void)
{
	glPushMatrix();
	glTranslated(vx/0.1, 0.0, 0.0);
	glTranslated(-1.0,-4.5, 0.0);
	glColor3d(0,0,1);
	auxSolidBox(3,0.2,1); 
    glPopMatrix();  
}
void sharik()
{
	glPushMatrix();       
	glTranslated(0, xp/1.0, 0.0);
    auxSolidSphere(0.3);
	xp = xp-vx*dt; 
    yp = yp-vy*dt;
	if(vy ==vx)
    vy = -vy;
    glPopMatrix();         
}

void CALLBACK display(void)
{
     glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
	 podstavka();
	 sharik();
	 auxSwapBuffers();
}
void CALLBACK levo(void)
{ 
	vx=vx-0.03;	
}
void CALLBACK pravo(void)
{    
	vx=vx+0.03;
}

void main()
{
	float pos[4] = {3,3,3,1};
	float dir[3] = {-1,-1,-1};
    auxInitPosition( 50, 10, 400, 400);
    auxInitDisplayMode( AUX_RGB | AUX_DEPTH | AUX_DOUBLE );
    auxInitWindow( L"Sphere2" );
    auxIdleFunc(display);
    auxKeyFunc(AUX_LEFT,levo);
	auxKeyFunc(AUX_RIGHT,pravo);
    auxReshapeFunc(resize);
    glEnable(GL_ALPHA_TEST);
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_COLOR_MATERIAL);
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glLightfv(GL_LIGHT0, GL_POSITION, pos);
    glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir);
	auxMainLoop(display);	
}
прошу помогите пожалуйста
(Offline)
 
Ответить с цитированием
Старый 26.12.2009, 14:51   #2
zinador
AnyKey`щик
 
Регистрация: 26.12.2009
Сообщений: 9
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: OpenGL арконойд проблема с отскакиванием шарика от платформы

что незнает некто как решить ету проблему если можно то с пояснением плиз
(Offline)
 
Ответить с цитированием
Старый 26.12.2009, 15:37   #3
Hurrit
Мастер
 
Аватар для Hurrit
 
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений
(для 2,207 пользователей)
Ответ: OpenGL арконойд проблема с отскакиванием шарика от платформы

Имей терпение, здесь некоторые днями, а то и неделями ждут ответа
(Offline)
 
Ответить с цитированием
Старый 26.12.2009, 23:23   #4
zinador
AnyKey`щик
 
Регистрация: 26.12.2009
Сообщений: 9
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: OpenGL арконойд проблема с отскакиванием шарика от платформы

все разобрался ! надо через через переменные которые за координаты x и y отвечают делать проверку!
кстате в .NET MsgBox - ето вылазинье окно с сообщением ,а в OpenGL как ета функция выглядит? вроде где-то смотрел ,но забыл где ,и вспомнить немогу прошу подскажите
(Offline)
 
Ответить с цитированием
Старый 27.12.2009, 15:19   #5
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Ответ: OpenGL арконойд проблема с отскакиванием шарика от платформы

Для того, чтобы отобразить MessageBox, надо вызывать функцию, специфичную для выбранной оконной системы. Если у тебя программа под виндой запускается, можно написать так:
void main(int argc, char **argv)
{
    // ...

    // по имени приложения находим HWND окна
    HWND winHandle = FindWindow(NULL, argv[0]);
    MessageBox(winHandle, "сообщение", "заголовок", MB_OKCANCEL);

    // ...
}
Код взят отсюда: http://www.gamedev.net/community/for...age=1&#3298324

Или еще проще - создать немодальный диалог:
MessageBox(NULL, "сообщение", "заголовок", MB_OKCANCEL);
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
zinador (27.12.2009)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
АВТОМАТ,я замучился с отскаливанием модели в примере с регдолом Ganociy Blitz3D 6 26.11.2009 21:11
opengl NitE C++ 6 11.11.2009 21:50
Отскок шарика от угла Romanzes Математика 6 13.10.2008 18:17
Help:::OpenGl!!! zheland 3D-программирование 30 08.05.2008 20:52


Часовой пояс GMT +4, время: 08:38.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com