• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

OpenGL Glut Błąd z Movmentem :/

Object Storage Arubacloud
0 głosów
132 wizyt
pytanie zadane 14 listopada 2016 w C i C++ przez Jakub Chomicz Początkujący (380 p.)

Witam robię grę opartą o bibliotekę Opengl dokładniej glut. Wszystko szło dobrze do puki nie zachciał działać mój program frown

KOD:

#include <math.h>
#include <iostream>
#include <windows.h>
#include <glut.h>
float X=0;
float Y=0;
float Z=0;
void Display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glClearColor(1.0,1.0,1.0,1.0);
    glTranslatef(X,Y,Z);
    glBegin(GL_QUADS);
    glColor3f(1.0,0.0,0.0);
    glVertex3f(0.5,0.5,0.5);
    glVertex3f(-0.5,0.5,0.5);
    glVertex3f(-0.5,-0.5,0.5);
    glVertex3f(0.5,-0.5,0.5);
    glEnd();
    glutPostRedisplay();
    glLoadIdentity();
    glutSwapBuffers();
}
void Reshape(int w,int h)
{
    Display();
    glMatrixMode(GL_MODELVIEW);
}
void KeyBoard(unsigned char c,int x,int y)
{
    if(c=='d')
    {
        X+=0.1;
    }
    if(c=='a')
    {
        X-=0.1;
    }
    if(c=='w')
    {
        Z+=0.1;
    }
    if(c=='s')
    {
        Z-=0.1;
    }
}
int main(int argc , char *argv[])
{
    glutInit(&argc , argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);
    glutInitWindowSize(800,600);
    glutCreateWindow("Game");
    glutKeyboardFunc(KeyBoard);
    glutDisplayFunc(Display);
    glutReshapeFunc(Reshape);
    glutMainLoop();
}
Chodzi mi głównie o to że pozycja Z się nie dodaje jedynie obiekt znika po kilku kliknięciach jak mam to zrobić pomóżcie PLS sad

1 odpowiedź

0 głosów
odpowiedź 16 listopada 2016 przez lnkoc Stary wyjadacz (13,960 p.)
edycja 16 listopada 2016 przez lnkoc
  glLoadIdentity(); 

Dodaj na początku funkcji Display () zaraz za wywołaniem funkcji glClear(). Poza tym powinieneś włączyć mechanizm z-bufora funkcją glEnable(GL_DEPTH_TEST); pisząc sobie funkcję np. MyInit() w której będziesz inicjalizował warunki startowe i uruchamiając ją w funkcji main po glutCreateWindow(). To tyle na początek.

Druga sprawa to całkiem możliwe, że rysowany obiekt znika po kilku kliknięciach zmian w osi Z, ponieważ kamera jest tak domyślnie ustawiona (jakby patrzy z tej osi) i kiedy przesuwasz obiekt poza zasięg kamery obiekt znika. To całkiem naturalne.

Ostatnia sprawa to gdy piszesz posta umieszczaj kod jako kod (taki przycisk podpisany małymi literkami "code" w panelu edycji). 

Podobne pytania

0 głosów
1 odpowiedź 256 wizyt
pytanie zadane 7 listopada 2016 w C i C++ przez Jakub Chomicz Początkujący (380 p.)
0 głosów
1 odpowiedź 2,072 wizyt
pytanie zadane 10 listopada 2016 w C i C++ przez Jakub Chomicz Początkujący (380 p.)
0 głosów
1 odpowiedź 273 wizyt
pytanie zadane 2 czerwca 2023 w C i C++ przez piotr_domanski Bywalec (2,080 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...