Jump to content

  • Log In with Google      Sign In   
  • Create Account

OpenGL Simple game


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
5 replies to this topic

#1 Attemptedhippo   Members   -  Reputation: 101

Like
0Likes
Like

Posted 04 March 2012 - 12:51 PM

this site doesnt have an opengl Prefix >.<

anyway im a self taught programmer, i know more than enough c++ to get by, and im learning opengl.
I am running microsoft visual C++ 2010 express on XP sp 3 32-bit
Tutorial: http://www.codersour...l-with-bat.aspx
Above is the tutorial i am working on, and i have copied the code exactly, (from source) but it will not run.
The tutorial uses the sprintf function, and im nearly positive that it is the cause of my crashes.
The console window opens for a short time and then after flashing text it closes, I have read the text as fast as i could and it states: pixel format
with nececary compatabilities cannot be found.
The source is on the bottom of the page linked, and i can assure that the source is exactly the same(since niether mine nor owners will run)
when run through debug mode i get:
'Pong Game.exe': Loaded 'C:\Documents and Settings\Devon\Desktop\C++ portflio\Opengl 2d game\Pong Game\Release\Pong Game.exe', Symbols loaded.
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\opengl32.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\secur32.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\gdi32.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\user32.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\glu32.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\ddraw.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\dciman32.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system\glut32.dll', Binary was not built with debug information.
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\winmm.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\msvcr100.dll', Symbols loaded.
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\imm32.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\lpk.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\usp10.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\Syncor11.dll', Symbols loaded.
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\uxtheme.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\msctf.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\version.dll', Cannot find or open the PDB file
'Pong Game.exe': Unloaded 'C:\WINDOWS\system32\version.dll'
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\msctfime.ime', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\ole32.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\atioglxx.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\version.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\ws2_32.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\ws2help.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\atiadlxx.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.6195_x-ww_44262b86\msvcr80.dll', Cannot find or open the PDB file
'Pong Game.exe': Loaded 'C:\WINDOWS\system32\mcd32.dll', Cannot find or open the PDB file
'Pong Game.exe': Unloaded 'C:\WINDOWS\system32\mcd32.dll'
The program '[4584] Pong Game.exe: Native' has exited with code 1 (0x1).
any help? if you need more information just ask. i should be back in like 2-3 hours

Sponsor:

#2 Brother Bob   Moderators   -  Reputation: 8631

Like
0Likes
Like

Posted 04 March 2012 - 01:45 PM

Those are not errors, just messages that the debugger cannot find some symbols that will help you debug your application. It has nothing to do with your program running or not. You say that the console opens briefly, which indicates the the program does run, but exists immediately. Run the program outside the debugger instead (Ctrl+F5) instead of with the debugger (F5) and the console will stay open after the program exits.

#3 Attemptedhippo   Members   -  Reputation: 101

Like
0Likes
Like

Posted 04 March 2012 - 06:25 PM

ummm ive run the program in many ways.... all of them with the same result... using any way to run it, a console window will pop up and they close out within a fraction of a second. Like i said in my post "pixel format with nececary compatabilities cannot be found." is the error i get inside the console window that opens briefly. I have concluded that i am doing something wrong with storing and printing the text to screen. just incase you guys dont want to get the source from the site, i will throw it in code tags.

#include "main.h"
int pcResult = 0;
void Render() {
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
sprintf(string, "PC : %i", pcResult);
drawText(string, 10, 80);
sprintf(string, "Player : %i", playerResult);
drawText(string, 10, 120);

/****************************************************************************
**** I believe there are problems with the above section *******
****************************************************************************/

wall.left = wall.top = 0;
wall.right = WINDOW_WIDTH;
wall.bottom = WINDOW_HEIGHT;
DrawRectangle(ball);
if(Test_Ball_Wall(ball, wall) == FROM_RIGHT)
  Xspeed = -delta;
if(Test_Ball_Wall(ball, wall) == FROM_LEFT)
  Xspeed = delta;
if(Test_Ball_Wall(ball, wall) == FROM_TOP)
  Yspeed = -delta;
if(Test_Ball_Wall(ball, wall) == FROM_BOTTOM) {
  Yspeed = delta;
  pcResult += 1;
}
DrawRectangle(player_1);
player_1.left = mouse_x -30;
player_1.right = mouse_x +30;
if(Test_Ball_Player(ball, player_1) == true)
  Yspeed = -delta;
glutSwapBuffers();
}
int main(int argc, char** argv) {
glutInit(&argc,argv);
glutInitDisplayMode(GL_DOUBLE | GL_RGBA);
glutInitWindowSize(795, 500);
glutInitWindowPosition(0, 0);
glutCreateWindow("Pong Test");
Setting();
glutDisplayFunc(Render);
glutIdleFunc(Render);
glutTimerFunc(1, Timer, 1);
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
glutSpecialFunc(inputKey);
//glutSpecialUpFunc(upKey);
glutPassiveMotionFunc(MouseMotion);
glutMainLoop();
system("pause");
return 0;


#include<GL/gl.h>
#include<GL/glu.h>
#include<GL/glut.h>
#include<stdio.h>
#define FROM_RIGHT  1
#define FROM_LEFT   2
#define FROM_TOP    3
#define FROM_BOTTOM 4
static int WINDOW_WIDTH, WINDOW_HEIGHT;
int playerResult = 0;
static float Xspeed = 1, Yspeed = 1;
static float delta = 1;
char string[100];
struct RECTA {
float left, top, right, bottom;
};
RECTA ball = {100, 100, 120, 120};
RECTA wall;
RECTA player_1 = {0, 490, 40, 500};
void DrawRectangle (RECTA rect) {
glBegin(GL_QUADS);
glVertex2f(rect.left, rect.bottom);
glVertex2f(rect.right, rect.bottom);
glVertex2f(rect.right, rect.top);
glVertex2f(rect.left, rect.top);
glEnd();
}
void Timer(int v) {
ball.right += Xspeed;
ball.left += Xspeed;
ball.top += Yspeed;
ball.bottom += Yspeed;
glutTimerFunc(1, Timer, 1);
}
void drawText(char* string, int x, int y) {
char *c;
glPushMatrix();
glTranslatef(x, y, 0);
glScalef(0.1, -0.1, 1);
for(c = string; *c != '\0'; c++){
  glutStrokeCharacter(GLUT_STROKE_ROMAN, *c);
}
glPopMatrix();
}
int Test_Ball_Wall (RECTA ball, RECTA wall) {
if(ball.right >= wall.right)
  return FROM_RIGHT;
if(ball.left <= wall.left)
  return FROM_LEFT;
if(ball.top <= wall.top)
  return FROM_TOP;
if(ball.bottom >= wall.bottom)
  return FROM_BOTTOM;

else return 0;
}
bool Test_Ball_Player(RECTA ball, RECTA player) {
if(ball.bottom >=player.top && ball.left >= player.left && ball.right <= player.right){
  playerResult++;
  return true;
}
return false;
}
void keyboard (unsigned char key, int x, int y) {
switch (key) {
  case 27:
   exit(0);
  break;
}
}
void inputKey (int key, int x, int y){
switch (key){
case GLUT_KEY_LEFT:
  break;
case GLUT_KEY_RIGHT:
  break;
case GLUT_KEY_UP:
  break;
case GLUT_KEY_DOWN:
  break;
}
}
void upKey(int key, int x, int y) {
}
static int mouse_x = 0;
void MouseMotion (int x, int y) {
mouse_x = x;
}
//OpenGL settings
void Setting(void) {
glClearColor(0, 0, 0, 0);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}
void reshape (int w, int h) {
WINDOW_WIDTH = w;
WINDOW_HEIGHT = h;

glViewport(0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0, w, h, 0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}


#4 Attemptedhippo   Members   -  Reputation: 101

Like
0Likes
Like

Posted 04 March 2012 - 06:29 PM

Ok so after commenting out what i thought to be the problem code I still get the same issue. I now have no idea why it isnt working.

EDIT:
I have uncommented the lines to get two warnings(one for each call):
1>..\main.cpp(11): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>		  C:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdio.h(371) : see declaration of 'sprintf'

EDIT(again):
I tried using the Ctrl+F5 method and the console window still closes.

#5 sjaakiejj   Members   -  Reputation: 130

Like
2Likes
Like

Posted 04 March 2012 - 08:28 PM

This is your problem:

glutInitDisplayMode(GL_DOUBLE | GL_RGBA);

Should be
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);

Easy to identify on Linux (You get an X error if the window parameters are incorrect), though based on your error log I suppose it's not quite as easy on windows, where it just crashes because of invalid window parameters (without actually telling you why).

Edit:
Just for future reference, it's easy to remember which enumerations go where in OpenGL. If the function starts with "glut", then the parameters should always be "GLUT_", where as functions that start on "gl" should always have parameters starting with "GL_". They're two different libraries, though since GLUT complements OpenGL it's easy to get confused if you don't pay attention to this detail Posted Image

#6 Attemptedhippo   Members   -  Reputation: 101

Like
0Likes
Like

Posted 04 March 2012 - 09:23 PM

Thanks so much bro... lol it would be something so trivial but thus are computers :) Rep++




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS