Jump to content

  • Log In with Google      Sign In   
  • Create Account


#ActualBrother Bob

Posted 22 July 2013 - 11:59 AM

Hopefully you will be able to make some sense of this.  The ship does a bit of a round about when the rotation transitions across 0-360 and 360-0 but aside from this it's working.  What I mean by round-about is the ship is not rotating by the shortest path possible.  It will require extra logic to fix this.  Sorry for not posting it in the format you are using(GLUT) and with all those control functions.  

       if(ship_01_ROTATION < targetAngle)       {               ship_01_ROTATION += 5.0;                                     }       if(ship_01_ROTATION > targetAngle)       {               ship_01_ROTATION -= 5.0;                                     }       //else if              //=======================================================================================================         glDisable(GL_CULL_FACE);     glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );glViewport(0, 0, nWidth, nHeight);            glMatrixMode( GL_PROJECTION );glLoadIdentity();       glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);                  glScalef(.1, .1, .1);        //=============================================================================================================        glPushMatrix();                DrawShip(ship_01_POSITION_X,ship_01_POSITION_Y,ship_01_POSITION_Z,ship_01_ROTATION, ship_01_COLOR);        glPopMatrix();        //=============================================================================================================        glPushMatrix();                DrawShip(ship_02_POSITION_X,ship_02_POSITION_Y,ship_02_POSITION_Z,ship_02_ROTATION, ship_02_COLOR);        glPopMatrix();        //=============================================================================================================        glPushMatrix();                DrawBullet(ship_01_bullet_POSITION_X,ship_01_POSITION_Y,ship_01_POSITION_Z, ship_01_ROTATION);        glPopMatrix();        //=============================================================================================================            SwapBuffers( g_hDC );}//=====================================================================================================================//---------------------------------------------------------------------------------------------------------------------//---------------------------------------------------------------------------------------------------------------------//=====================================================================================================================void ProcessKeyboard(void){    //=======================================================================================    if (keys[VK_UP] && !keys[VK_LEFT]  && !keys[VK_RIGHT])    {       ship_01_POSITION_Y +=   0.05;       targetAngle         =   0.0;    }    if (keys[VK_DOWN] && !keys[VK_LEFT]  && !keys[VK_RIGHT])    {       ship_01_POSITION_Y -=   0.05;       targetAngle         = 180.0;    }    if (keys[VK_LEFT] && !keys[VK_DOWN]  && !keys[VK_UP])    {       ship_01_POSITION_X -=   0.05;       targetAngle         =  90.0;    }    if (keys[VK_RIGHT] && !keys[VK_DOWN]  && !keys[VK_UP])    {       ship_01_POSITION_X +=   0.05;       targetAngle         = 270.0;    }    //=======================================================================================    if (keys[VK_UP] && keys[VK_LEFT])    {       ship_01_POSITION_X -=   0.05*0.7;        ship_01_POSITION_Y +=   0.05*0.7;       targetAngle         =  45.0;    }    if (keys[VK_DOWN] && keys[VK_LEFT])    {       ship_01_POSITION_X -=   0.05*0.7;              ship_01_POSITION_Y -=   0.05*0.7;       targetAngle         = 120.0;    }    if (keys[VK_DOWN] && keys[VK_RIGHT])    {       ship_01_POSITION_X +=   0.05*0.7;              ship_01_POSITION_Y -=   0.05*0.7;       targetAngle         = 225.0;    }            if (keys[VK_UP] && keys[VK_RIGHT])    {       ship_01_POSITION_X +=   0.05*0.7;        ship_01_POSITION_Y +=   0.05*0.7;       targetAngle         =  315.0;    }

#3marcClintDion

Posted 22 July 2013 - 03:08 AM

There is far too much arrogance and out right abuse by site moderators, they are teaching other people to behave this way.  The posts I've made will all be shorty removed and replaced with this notice.  Game development is not the only thing being taught here, bad behavior is being taught as well.


#2marcClintDion

Posted 08 July 2013 - 08:11 PM

Hopefully you will be able to make some sense of this.  The ship does a bit of a round about when the rotation transitions across 0-360 and 360-0 but aside from this it's working.  What I mean by round-about is the ship is not rotating by the shortest path possible.  It will require extra logic to fix this.  Sorry for not posting it in the format you are using(GLUT) and with all those control functions.  


       if(ship_01_ROTATION < targetAngle)
       {
               ship_01_ROTATION += 5.0;                              
       }
       if(ship_01_ROTATION > targetAngle)
       {
               ship_01_ROTATION -= 5.0;                              
       }
       //else if
         


     //=======================================================================================================
    
     glDisable(GL_CULL_FACE);


     glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );


glViewport(0, 0, nWidth, nHeight);
            glMatrixMode( GL_PROJECTION );
glLoadIdentity();
       glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); 
         
        glScalef(.1, .1, .1);
        //=============================================================================================================
        glPushMatrix();
                DrawShip(ship_01_POSITION_X,ship_01_POSITION_Y,ship_01_POSITION_Z,ship_01_ROTATION, ship_01_COLOR);
        glPopMatrix();
        //=============================================================================================================
        glPushMatrix();
                DrawShip(ship_02_POSITION_X,ship_02_POSITION_Y,ship_02_POSITION_Z,ship_02_ROTATION, ship_02_COLOR);
        glPopMatrix();
        //=============================================================================================================
        glPushMatrix();
                DrawBullet(ship_01_bullet_POSITION_X,ship_01_POSITION_Y,ship_01_POSITION_Z, ship_01_ROTATION);
        glPopMatrix();
        //=============================================================================================================




    
    
    SwapBuffers( g_hDC );
}


//=====================================================================================================================
//---------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------
//=====================================================================================================================


void ProcessKeyboard(void)
{


    //=======================================================================================
    if (keys[VK_UP] && !keys[VK_LEFT]  && !keys[VK_RIGHT])
    {
       ship_01_POSITION_Y +=   0.05;
       targetAngle         =   0.0;
    }
    if (keys[VK_DOWN] && !keys[VK_LEFT]  && !keys[VK_RIGHT])
    {
       ship_01_POSITION_Y -=   0.05;
       targetAngle         = 180.0;
    }
    if (keys[VK_LEFT] && !keys[VK_DOWN]  && !keys[VK_UP])
    {
       ship_01_POSITION_X -=   0.05;
       targetAngle         =  90.0;
    }
    if (keys[VK_RIGHT] && !keys[VK_DOWN]  && !keys[VK_UP])
    {
       ship_01_POSITION_X +=   0.05;
       targetAngle         = 270.0;
    }
    //=======================================================================================
    if (keys[VK_UP] && keys[VK_LEFT])
    {
       ship_01_POSITION_X -=   0.05*0.7; 
       ship_01_POSITION_Y +=   0.05*0.7;
       targetAngle         =  45.0;
    }
    if (keys[VK_DOWN] && keys[VK_LEFT])
    {
       ship_01_POSITION_X -=   0.05*0.7;       
       ship_01_POSITION_Y -=   0.05*0.7;
       targetAngle         = 120.0;
    }
    if (keys[VK_DOWN] && keys[VK_RIGHT])
    {
       ship_01_POSITION_X +=   0.05*0.7;       
       ship_01_POSITION_Y -=   0.05*0.7;
       targetAngle         = 225.0;
    }        
    if (keys[VK_UP] && keys[VK_RIGHT])
    {
       ship_01_POSITION_X +=   0.05*0.7; 
       ship_01_POSITION_Y +=   0.05*0.7;
       targetAngle         =  315.0;
    }



#1marcClintDion

Posted 08 July 2013 - 08:05 PM

<pre class="prettyprint linenums:0">

 

       if(ship_01_ROTATION < targetAngle)
       {
               ship_01_ROTATION += 5.0;                               // When this was -= the ship kept spinning endlessly, this note is left here so people can see how a little thing can introduce bugs
       }
       if(ship_01_ROTATION > targetAngle)
       {
               ship_01_ROTATION -= 5.0;                               // When this was += the ship kept spinning endlessly
       }
       //else if
         
 
     //=======================================================================================================
    
     glDisable(GL_CULL_FACE);
 
     glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
 
glViewport(0, 0, nWidth, nHeight);
            glMatrixMode( GL_PROJECTION );
glLoadIdentity();
       glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); 
         
        glScalef(.1, .1, .1);
        //=============================================================================================================
 
 
 
        //=============================================================================================================
        glPushMatrix();
                DrawShip(ship_01_POSITION_X,ship_01_POSITION_Y,ship_01_POSITION_Z,ship_01_ROTATION, ship_01_COLOR);
        glPopMatrix();
        //=============================================================================================================
        glPushMatrix();
                DrawShip(ship_02_POSITION_X,ship_02_POSITION_Y,ship_02_POSITION_Z,ship_02_ROTATION, ship_02_COLOR);
        glPopMatrix();
        //=============================================================================================================
        glPushMatrix();
                DrawBullet(ship_01_bullet_POSITION_X,ship_01_POSITION_Y,ship_01_POSITION_Z, ship_01_ROTATION);
        glPopMatrix();
        //=============================================================================================================
 
 
    
    
    SwapBuffers( g_hDC );
}
 
//=====================================================================================================================
//---------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------
//=====================================================================================================================
 
void ProcessKeyboard(void)
{
 
    //=======================================================================================
    if (keys[VK_UP] && !keys[VK_LEFT]  && !keys[VK_RIGHT])
    {
       ship_01_POSITION_Y +=   0.05;
       targetAngle         =   0.0;
    }
    if (keys[VK_DOWN] && !keys[VK_LEFT]  && !keys[VK_RIGHT])
    {
       ship_01_POSITION_Y -=   0.05;
       targetAngle         = 180.0;
    }
    if (keys[VK_LEFT] && !keys[VK_DOWN]  && !keys[VK_UP])
    {
       ship_01_POSITION_X -=   0.05;
       targetAngle         =  90.0;
    }
    if (keys[VK_RIGHT] && !keys[VK_DOWN]  && !keys[VK_UP])
    {
       ship_01_POSITION_X +=   0.05;
       targetAngle         = 270.0;
    }
    //=======================================================================================
    if (keys[VK_UP] && keys[VK_LEFT])
    {
       ship_01_POSITION_X -=   0.05*0.7; 
       ship_01_POSITION_Y +=   0.05*0.7;
       targetAngle         =  45.0;
    }
    if (keys[VK_DOWN] && keys[VK_LEFT])
    {
       ship_01_POSITION_X -=   0.05*0.7;       
       ship_01_POSITION_Y -=   0.05*0.7;
       targetAngle         = 120.0;
    }
    if (keys[VK_DOWN] && keys[VK_RIGHT])
    {
       ship_01_POSITION_X +=   0.05*0.7;       
       ship_01_POSITION_Y -=   0.05*0.7;
       targetAngle         = 225.0;
    }        
    if (keys[VK_UP] && keys[VK_RIGHT])
    {
       ship_01_POSITION_X +=   0.05*0.7; 
       ship_01_POSITION_Y +=   0.05*0.7;
       targetAngle         =  315.0;
    }
 

 

</pre>


PARTNERS