本文整理汇总了C++中World::Draw方法的典型用法代码示例。如果您正苦于以下问题:C++ World::Draw方法的具体用法?C++ World::Draw怎么用?C++ World::Draw使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类World
的用法示例。
在下文中一共展示了World::Draw方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: display
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity(); // camera functionality must be in display method
cam.Update();//MUST UPDATE CAMERA BEFORE DRAWING OBJECTS
//obj.Draw();
if (worldTwoCount == -1)
world.Draw(); //VERY IMPORTANT
else
world2.Draw();
glutSwapBuffers();
}
示例2: display
//Main display function
void display(void)
{
glClearColor(0.2f, 0.3f, 1.0f, 0.9f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0.0f, 0.0f, 0.0f);
glPushMatrix();
glMatrixMode(GL_MODELVIEW);
glViewport(0, (WINDOW_HEIGHT / 3) * 2, WINDOW_WIDTH, WINDOW_HEIGHT - (WINDOW_HEIGHT / 3) * 2);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, (GLdouble)WINDOW_WIDTH, (WINDOW_HEIGHT / 3) * 2, (GLdouble)WINDOW_HEIGHT, -1.0, 1.0);
//draw the user interface **NOT THE MINI MAP**
drawUI();
glPopMatrix();
glPushMatrix();
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
//draw the actual world, with lighting
theWorld.Draw(continuousRendering);
glDisable(GL_LIGHTING);
glPopMatrix();
//draw the mini map interface
drawMap();
glutSwapBuffers();
}
示例3: main
int main(int argc, char*argv[])
{
EventManager::Initialize();
Renderer::Initialize();
World world;
if (argc > 1)
{
world.LoadScene(argv[1]);
}
else
{
// TODO - You can alternate between different scenes for testing different things
// Static Scene contains no animation
// Animated Scene does
#if defined(PLATFORM_OSX) //Bad OS!
// world.LoadScene("Scenes/AnimatedScene.scene");
// world.LoadScene("Scenes/StaticScene.scene");
// world.LoadScene("Scenes/CoordinateSystem.scene");
#else
// world.LoadScene("../Assets/Scenes/AnimatedSceneWithParticles.scene");
world.LoadScene("../Assets/Scenes/NOISE.scene");
// world.LoadScene("../Assets/Scenes/AnimatedScene.scene");
// world.LoadScene("../Assets/Scenes/StaticScene.scene");
// world.LoadScene("../Assets/Scenes/CoordinateSystem.scene");
#endif
}
// Main Loop
do
{
// Update Event Manager - Frame time / input / events processing / sound
EventManager::Update();
// Update World
float dt = EventManager::GetFrameTime();
float currentVolume = EventManager::GetCurrentVolume();
float* currentSpec = EventManager::GetCurrentSpec();
world.Update(dt, currentVolume, currentSpec);
// Draw World
world.Draw();
}
while(EventManager::ExitRequested() == false);
Renderer::Shutdown();
EventManager::Shutdown();
return 0;
}
示例4: onDrawCb
void onDrawCb()
{
// Keep track of time
theFpsTracker.timestamp();
// Draw Scene and overlay
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
theCamera.draw();
//drawAxes();
vec3 cpos = theCamera.getPosition();
float pos[4] = {cpos[0], cpos[1]+2.0, cpos[2],0.0};
glLightfv(GL_LIGHT0, GL_POSITION, pos);
theWorld.Draw();
theJello.Draw(cpos);
//drawOverlay();
glutSwapBuffers();
}
示例5: main
int main(int argc, char** argv){
//ShowWindow(GetForegroundWindow(), SW_HIDE);
Display display(WIDTH, HEIGHT, "OpenGL");
if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 2048) < 0){ std::cout << "ERROR: MixOpenAudio: " << Mix_GetError() << std::endl; }
World world; Shader* shader = world.GetShader();
Brush br(24, 6, 24, &world, "./res/tex/pxl_cuboid.jpg"); br.Move(-2, 0, -2);
Brush c1(1, 0.5, 3, &world, "./res/tex/pxl_cuboid.jpg"); c1.Move(2, 0, 2);
Brush c2(1, 1.0, 3, &world, "./res/tex/pxl_cuboid.jpg"); c2.Move(3, 0, 2);
Brush c3(1, 0.2, 1.5, &world, "./res/tex/pxl_cuboid.jpg"); c3.Move(6, 0.9, 2);
Brush c4(1, 0.2, 1.5, &world, "./res/tex/pxl_cuboid.jpg"); c4.Move(6, 1.1, 3.5);
Brush box(1, 1, 1, &world, "./res/tex/pxl_cuboid.jpg"); box.Move(6, 0.5, 6);
Player player(shader); display.SetPlayer(player);
Camera cammy; cammy.Init(glm::vec3(0, 0, 0), 70.0f, 1600 / 900, 0.01f, 1000.0f);
Ambient amb1; shader->AddAmbient(&amb1); amb1.m_range = 3; amb1.m_intensity = 0.2;
Ambient amb2; shader->AddAmbient(&amb2); amb2.SetPosition(1, 1, 1);
Ambient amb3; shader->AddAmbient(&amb3); amb3.SetPosition(15, 1, 10); amb3.SetColor(0.2, 0.5, 0.7);
Prop prop(world.GetMesh("./res/models/cucco.obj"), world.GetTexture("./res/models/cucco.jpg"), shader); world.AddProp(&prop);
Prop stone(world.GetMesh("./res/models/salesman.obj"), world.GetTexture("./res/models/salesman.jpg"), shader); world.AddProp(&stone); stone.Scale(0.01); stone.Teleport(0, -10, 0);
Sound laugh; laugh.Init("./res/sounds/sale_laugh.wav", 0.7); laugh.Load();
player.SetListener(Player_OnClick, OnClick);
float count = 0.0f;
while (!display.IsClosed()){
display.Clear(0.1f, 0.3f, 0.8f, 1.0f);
world.Draw(&player.GetCamera());
player.DrawHUD();
display.Update();
laugh.Update(player.GetCamera().GetPos());
if (count >= 2 * PI){ count = 0; }
count += 0.05f;
c4.Rotate(0, 1, 0);
if (glm::distance(prop.position, player.GetCamera().GetPos()) >= 2){
prop.velocity = (player.GetCamera().GetPos() - prop.position) / 64.0f;
prop.velocity.y = 0;
prop.SetRotate(0, PI / 2 - GetAngleRad(glm::vec2(0, 0), GetXZ(prop.velocity)), 0);
}
else{
prop.velocity *= 0;
}
prop.Rotate(0, sin(count) * PI / 360, 0);
amb1.m_position = player.GetCamera().GetPos();
if (player.mouse_buttons[0]){//Left Clicking
player.mouse_buttons[0] = false;
stone.Teleport(world.GetAimPoint(&player));
stone.SetRotate(0, PI / 2 - GetAngleRad(glm::vec2(0, 0), GetXZ(player.GetCamera().GetPos() - stone.position)), 0);
laugh.pos = stone.position;
laugh.Emit(player.GetCamera().GetPos());
}
world.Update();
player.Update();
world.IsCollide(&player);
player.CommenceVelocity();
}
Mix_CloseAudio();
Mix_Quit();
return 0;
}
示例6: main
int main(int argc, char*argv[])
{
EventManager::Initialize();
Renderer::Initialize();
World world;
// If Running on Windows Then Play Background Music
// PlaySound(TEXT("../Assets/Sounds/Danger-Zone.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);
/*loading screen block*/ {
LoadingScreen loadingScreen;
loadingScreen.Draw();
// world.LoadScene("../Assets/Scenes/AnimatedSceneWithParticles.scene");
// world.LoadScene("../Assets/Scenes/AnimatedScene.scene");
// world.LoadScene("../Assets/Scenes/Spline.scene");
// world.LoadScene("../Assets/Scenes/StaticScene.scene");
// world.LoadScene("../Assets/Scenes/CoordinateSystem.scene");
// world.LoadScene("../Assets/Scenes/CollisionDemo.scene");
// world.LoadScene("../Assets/Scenes/Animal.scene");
// world.LoadScene("../Assets/Scenes/StaticScene.scene");
// world.LoadScene("../Assets/Scenes/CoordinateSystem.scene");
// world.LoadScene("../Assets/Scenes/Discoball.scene");
// world.LoadScene("../Assets/Scenes/Player.scene");
world.LoadScene();
}
double fps = 1.0f / FPS;
double dtStep = 1.0f / PHYSICS_FPS;
double dtAcc = 0;
#ifdef DEBUG_FRAME_RATE
long seconds = 0;
double currentTime = 0.0;
long remainingMsAcc = 0;
long sleepCtr = 0;
#endif
// Reset the polled values in the EventManager because scene loading is long.
EventManager::Update();
do
{
double start = glfwGetTime();
// Update Event Manager - Frame time / input / events processing
EventManager::Update();
float dt = EventManager::GetFrameTime();
// Apply fixed delta time steps to each world update,
// and drawing can be done if at least 1 world update was done.
dtAcc += dt;
bool draw = false;
while (dtAcc >= dtStep) {
dtAcc -= dtStep;
world.Update(dtStep);
draw = true;
}
if (draw) {
world.Draw();
}
#ifndef DEBUG_FRAME_RATE
// Each frame should be "fps" seconds long.
// If updating and rendering took less than fps seconds long then sleep for the remainder.
int remainingMs = (start + fps - glfwGetTime()) * 1000;
if (remainingMs > 0) {
SLEEP_FUNC(remainingMs);
}
#else
long remainingMs = (start + fps - glfwGetTime()) * 1000;
remainingMsAcc += remainingMs;
currentTime += dt;
if (currentTime - seconds >= 1) {
seconds++;
double avgRemaingMs = remainingMsAcc / (double)sleepCtr;
cout << "avg remaining ms " << avgRemaingMs << endl;
remainingMsAcc = 0;
sleepCtr = 0;
}
if (remainingMs < 0) {
cout << "OVER FRAME TIME BY " << abs(remainingMs) << " ms" << endl;
}
if (remainingMs > 0) {
sleepCtr++;
SLEEP_FUNC(remainingMs);
}
#endif
}
while(EventManager::ExitRequested() == false);
//.........这里部分代码省略.........
示例7: main
int main(int argc, char*argv[])
{
EventManager::Initialize();
Renderer::Initialize();
World world;
world.LoadScene();
// If Running on Windows Then Play Background Music
// PlaySound(TEXT("../Assets/Sounds/RainbowRoad.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);
// if (argc > 1)
// {
// world.LoadScene(argv[1]);
// }
// else
// {
// // TODO - You can alternate between different scenes for testing different things
// // Static Scene contains no animation
// // Animated Scene does
// world.LoadScene("../Assets/Scenes/AnimatedSceneWithParticles.scene");
// world.LoadScene("../Assets/Scenes/AnimatedScene.scene");
if (argc > 1)
{
world.LoadScene(argv[1]);
}
else
{
// TODO - You can alternate between different scenes for testing different things
// Static Scene contains no animation
// Animated Scene does
// world.LoadScene("../Assets/Scenes/AnimatedSceneWithParticles.scene");
// world.LoadScene("../Assets/Scenes/AnimatedScene.scene");
// world.LoadScene("../Assets/Scenes/Spline.scene");
// world.LoadScene("../Assets/Scenes/StaticScene.scene");
// world.LoadScene("../Assets/Scenes/CoordinateSystem.scene");
// world.LoadScene("../Assets/Scenes/CollisionDemo.scene");
// world.LoadScene("../Assets/Scenes/Animal.scene");
// world.LoadScene("../Assets/Scenes/StaticScene.scene");
// world.LoadScene("../Assets/Scenes/CoordinateSystem.scene");
// world.LoadScene("../Assets/Scenes/Discoball.scene");
// world.LoadScene("../Assets/Scenes/Player.scene");
}
//#endif
// }
double fps = 1.0f / FPS;
double dtStep = fps;
double dtAcc = 0;
// Main Loop
do
{
double start = glfwGetTime();
// Update Event Manager - Frame time / input / events processing
EventManager::Update();
// Update World
float dt = EventManager::GetFrameTime();
bool draw = false;
// Apply fixed delta time steps to each world update,
// and drawing can be done if at least 1 world update was done.
dtAcc += dt;
while (dtAcc >= dtStep) {
dtAcc -= dtStep;
world.Update(dtStep);
draw = true;
}
// Draw World
if (draw) {
world.Draw();
}
// Each frame should be "fps" seconds long.
// If updating and rendering took less than fps seconds long then sleep for the remainder.
int remainingMs = (start + fps - glfwGetTime()) * 1000;
if (remainingMs > 0) {
SLEEP_FUNC(remainingMs);
}
world.Draw();
}
while(EventManager::ExitRequested() == false);
Renderer::Shutdown();
EventManager::Shutdown();
return 0;
}