Пример #1
0
void SoundPlayer::init()
{
  assert(initOpenAL());
  while(mThreads.size() < LEFT_SOUNDPLAYER_THREADCOUNT) {
    SoundThread * current = new SoundThread;
    current->handle = CreateThread(0, 0, &stream_run, current, CREATE_SUSPENDED, 0);
    current->running = true;
    current->occupied = false;
    current->sound = 0;
    mThreads.push_back(current);
  }
}
Пример #2
0
int main(int argc,char **argv)
{
	
	initRandNum("scripts/mines.lua");										//call for Lua to do the random number generator
	int *pScreen;
	pScreen = configScreen();											//pScreen now becomes the array returned by configScreen

	player one;															//creates a player struct
	configPlayer(one);													//fills player struct
	startX = one.StartPosX;												//takes variables from player struct for OpenGL to use
	startY = one.StartPosY;
 
	int number;
	cout << "\nHow many mines do you want in the game  " << endl;
	cin >> number;

	mineGenerator(number);												//Calls function to randomly generate mines

	initOpenAL();
    alGetError();
    if (loadALData() == AL_FALSE)
        return 0;
    setListenerValues();
    atexit(killALData);
    alSourcePlay(Sources[LOOP]);

	glutInit(&argc,argv);												
	glutInitWindowPosition(100,100);
	glutInitWindowSize(pScreen[0],pScreen[1]);						
	glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

	init();	
	win = glutCreateWindow("Mine Sweeper");
	createMenu();

	glutDisplayFunc(drawScene);
	glutKeyboardFunc(handleKeypress);
	glutIdleFunc(handleIdle);
	glutSpecialFunc(handleSpecialKeys);								

	glOrtho(-1,16,-1,16,0,-1);
	//gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);

	
	glutMainLoop();

	
}
Пример #3
0
void c3dInitGame(){
	//----start global timer
	Cc3dGlobalTimer::sharedGlobalTimer()->start();
	//----随机数--abc
    srand(time(0));
	//----初始化openal
	initOpenAL();
	//----初始化opengl
	initOpenGL();
	//----openal状态--abc
	alDistanceModel(AL_INVERSE_DISTANCE_CLAMPED);//设置距离模型--abc
    alListenerf(AL_GAIN, 1.0);//set listener gain
    //----opengl状态--abc
    glEnable(GL_BLEND);
    glEnable(GL_DEPTH_TEST);
#if (C3D_TARGET_PLATFORM == C3D_PLATFORM_WIN32)
	glEnable(GL_TEXTURE_2D);//on windows, do not forget this!!!
	glEnable(GL_TEXTURE_CUBE_MAP);
#endif
    ////glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);// Enable point size by default on windows.(wait, it is not support on iOS!)
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glClearColor(0, 0, 0, 0);//指定清理color buffers时所用的颜色,默认值为(0,0,0,0),见:http://msdn.microsoft.com/en-us/library/windows/desktop/dd318377(v=vs.85).aspx
    glEnableVertexAttribArray(ATTRIB_LOC_position);
    glEnableVertexAttribArray(ATTRIB_LOC_texCoord);
    glEnableVertexAttribArray(ATTRIB_LOC_normal);
	glEnableVertexAttribArray(ATTRIB_LOC_color);
    glEnableVertexAttribArray(ATTRIB_LOC_texCoord2);
	//----show system info
    Cc3dDeviceAndOSInfo::sharedDeviceAndOSInfo()->showSystemInfo();
	//----获取设备信息--abc
    cout<<"screenSize: "<<Cc3dDeviceAndOSInfo::sharedDeviceAndOSInfo()->getScreenSize().x()<<" "<<Cc3dDeviceAndOSInfo::sharedDeviceAndOSInfo()->getScreenSize().y()<<endl;
    cout<<"resolution: "<<Cc3dDeviceAndOSInfo::sharedDeviceAndOSInfo()->getResolutionSize().x()<<" "<<Cc3dDeviceAndOSInfo::sharedDeviceAndOSInfo()->getResolutionSize().y()<<endl;
    //----创建默认shaderProgam
    buildinProgramSetUp();
   

}
Пример #4
0
void Game::init() {
  if (initialized) {
    return;
  }
  initGlobals();
  initialized = true;
  
  // SDL
  if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0) {
    Log::message(Log::Error, SDL_GetError());
    exit(0);
  }
  
  // TTF
  if (TTF_Init()) {
    Log::message(Log::Error, TTF_GetError());
    exit(0);
  }
  
  // SDLNet
  if (SDLNet_Init()) {
    Log::message(Log::Error, SDLNet_GetError());
    exit(0);
  }
  
  // OpenAL
  if (!initOpenAL()) {
    Log::message(Log::Error, alError);
    exit(0);
  }
  
  initLocks();
  
  Graphics::init();
  Audio::init();
}
Пример #5
0
Audio::Audio()
{
    initOpenAL();
}