Example #1
0
void drawEntities(void)
{
	int i;
	Entity *e, **candidates;
	
	candidates = getAllEntsWithin(battle.camera.x, battle.camera.y, SCREEN_WIDTH, SCREEN_HEIGHT, NULL);
	
	/* counting entities to draw */
	for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) {};
	
	qsort(candidates, i, sizeof(Entity*), drawComparator);

	for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i])
	{
		self = e;

		if (e->draw)
		{
			e->draw();
		}
		else
		{
			drawEntity(e);
		}
		
		drawHealthBar(e);
		
		drawTargetRects(e);
		
		drawRope(e);
	}
}
Example #2
0
//draw!
void twoNailBalls::draw()
{
    glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
    glEnable(GL_DEPTH_TEST);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    //BIND NAIL SHADER
    glActiveTexture(GL_TEXTURE0);
    glBindTexture(GL_TEXTURE_CUBE_MAP, textures_->value("cube_map_1"));
    shader_programs_->value(NAIL_SHADER)->bind();
    shader_programs_->value(NAIL_SHADER)->setUniformValue("CubeMap",GL_TEXTURE0);
    shader_programs_->value(NAIL_SHADER)->setUniformValue("eyept",m_engine->camera_.eye.x, m_engine->camera_.eye.y, m_engine->camera_.eye.z);
    //******* DO STUFF


    glPushMatrix();
    glTranslatef(p1.x,p1.y,p1.z);
    drawNailBall();
    glPopMatrix();

    glPushMatrix();
    glTranslatef(p2.x,p2.y,p2.z);
    drawNailBall();
    glPopMatrix();

    //****************
    //RELEASE NAIL SHADER
    shader_programs_->value(NAIL_SHADER)->release();

    //***** BIND ROPE SHADER
    shader_programs_->value(ROPE_SHADER)->bind();
    glActiveTexture(GL_TEXTURE0);
    glBindTexture(GL_TEXTURE_2D,textures_->value(ROPE_OCC));
    shader_programs_->value(ROPE_SHADER)->setUniformValue("colormap",0);

    glActiveTexture(GL_TEXTURE1);
    glBindTexture(GL_TEXTURE_2D,textures_->value(ROPE_NORM));

    shader_programs_->value(ROPE_SHADER)->setUniformValue("normalmap",1);

    shader_programs_->value(ROPE_SHADER)->setUniformValue("sag",(GLfloat)(0.5 + 0.01*(m_framesElapsed%100)));
    shader_programs_->value(ROPE_SHADER)->setUniformValue("eyept",m_engine->camera_.eye.x, m_engine->camera_.eye.y, m_engine->camera_.eye.z);


    drawRope(*myrope,true);
    shader_programs_->value(ROPE_SHADER)->release();

}
 bool ElasticRope::init(){
      initStyle(1);
      //left point draw;
    leftOutCircle = FixationPoint::create();
      leftOutCircle->setColor(_circleColorR,_circleColorG,_circleColorB,_circleColorA);
      leftOutCircle->setRadius(_circleOutRadius);
      leftOutCircle->setPosition(_leftPoint.x,_leftPoint.y);
      
    leftBetweenCircle = FixationPoint::create();
      leftBetweenCircle->setColor(_circleBetweenColorR,_circleBetweenColorG,_circleBetweenColorB,_circleBetweenColorA);
      leftBetweenCircle->setRadius(_circleBetweenRadius);
      leftBetweenCircle->setPosition(_leftPoint.x,_leftPoint.y);
      
    leftInCircle = FixationPoint::create();
      leftInCircle->setColor(_circleColorR,_circleColorG,_circleColorB,_circleColorA);
      leftInCircle->setRadius(_circleInRadius);
      leftInCircle->setPosition(_leftPoint.x,_leftPoint.y);
      
      
      //right point draw;
    rightOutCircle = FixationPoint::create();
      rightOutCircle->setColor(_circleColorR,_circleColorG,_circleColorB,_circleColorA);
      rightOutCircle->setRadius(_circleOutRadius);
      rightOutCircle->setPosition(_rightPoint.x,_rightPoint.y);
      
    rightBetweenCircle = FixationPoint::create();
      rightBetweenCircle->setColor(_circleBetweenColorR,_circleBetweenColorG,_circleBetweenColorB,_circleBetweenColorA);
      rightBetweenCircle->setRadius(_circleBetweenRadius);
      rightBetweenCircle->setPosition(_rightPoint.x,_rightPoint.y);
      
    rightInCircle = FixationPoint::create();
      rightInCircle->setColor(_circleColorR,_circleColorG,_circleColorB,_circleColorA);
      rightInCircle->setRadius(_circleInRadius);
      rightInCircle->setPosition(_rightPoint.x,_rightPoint.y);
      //        auto leftRopePoint = Sprite::create("ropepoint1.png");
      //        leftRopePoint->setPosition(_leftPoint.x,_leftPoint.y);
      //        leftRopePoint->setScale(0.1f);
      //        addChild(leftRopePoint);
      //        auto rightRopePoint = Sprite::create("ropepoint1.png");
      //        rightRopePoint->setPosition(_rightPoint.x,_rightPoint.y);
      //        rightRopePoint->setScale(0.1f);
      //        addChild(rightRopePoint);
      
      
      drawRope();
      //show draw
     
      //draw curve rope;
     _curveRope = CurveRope::create();
     _curveRope->setPeak(Vec2(Director::getInstance()->getVisibleSize().width/2,400));
     _curveRope->setFixationPoint(_leftPoint, _rightPoint);
     _curveRope->setCurvature(70);
      addChild(rightOutCircle);
      addChild(leftOutCircle);
       addChild(_curveRope);
     addChild(leftBetweenCircle);
      addChild(leftInCircle);
      
     
      addChild(rightBetweenCircle);
      addChild(rightInCircle);
    
     addChild(_graphics);
    
      scheduleUpdate();
      return true;
 }
Example #4
0
//draw!
void PolarAnimated::draw(){
    glMatrixMode(GL_MODELVIEW);

    m_framecount++;

    double framecount = m_framecount * .3;

    glPushMatrix();
    glRotated(framecount / 3,0,-1,0);
    double scale = (60 - framecount) / 20;
    scale = MAX(scale, .2);
    glScaled(scale, scale, scale);


    glPushMatrix();
    glTranslatef(0,-1.0,0);
    glScalef(100,1,50);
    //shader stuff
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D,textures_->value(CRACK_COLOR));
shader_programs_->value(CRACK_SHADER)->setUniformValue("colormap",0);
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D,textures_->value(CRACK_NORM));
shader_programs_->value(CRACK_SHADER)->setUniformValue("normalmap",1);
shader_programs_->value(CRACK_SHADER)->bind();
shader_programs_->value(CRACK_SHADER)->setUniformValue("eyept",m_engine->camera_.eye.x, m_engine->camera_.eye.y, m_engine->camera_.eye.z);
    //glEnable(GL_TEXTURE_2D);
    //glBindTexture(GL_TEXTURE_2D,textures_->value(CRACK_COLOR));
    //end shader stuff
    ground->draw();
shader_programs_->value(CRACK_SHADER)->release();

    glPopMatrix();

    glPushMatrix();
    glScaled(.1,.1,.1);
    glRotated(90,1,0,0);



//    glPushMatrix();
//    glTranslated(0,0,2);
//    gluDisk(m_quadric,0,100,4,4);
//    gluDisk(m_quadric,0,400,30,30);
//    glPopMatrix();

    glActiveTexture(GL_TEXTURE0);
    glBindTexture(GL_TEXTURE_CUBE_MAP, textures_->value("cube_map_1"));
    shader_programs_->value(NAIL_SHADER)->bind();
    shader_programs_->value(NAIL_SHADER)->setUniformValue("CubeMap",GL_TEXTURE0);
    shader_programs_->value(NAIL_SHADER)->setUniformValue("eyept",m_engine->camera_.eye.x, m_engine->camera_.eye.y, m_engine->camera_.eye.z);

    for(int i = 0; i < m_shapes->length(); i++){
        Shapes s = m_shapes->at(i);

        glPushMatrix();
        glTranslated(s.t.x,s.t.y,0);
        glRotated(s.r.angle, s.r.x,s.r.y,s.r.z);
        //glTranslated(s.t.x,s.t.y,5 * sin(m_framecount / 20 + s.polt));
        //glTranslated(s.t.x,s.t.y,(40 - s.polr) * sin(m_framecount / 20 - s.polr / 15) / (m_framecount / 20 - s.polr / 15));
        //gluCylinder(m_quadric,.25,0,10,10,10);

        double temp = framecount / 15 - s.polr / 10 - 3;
        temp = MAX(temp, .1);
        glTranslated(0,0,10 * sin(temp) / (temp * temp * temp * temp));

        glRotated(-90,1,0,0);
        glScaled(5,5,5);
        if (s.shape){
            glCallList(models_->value(BRAD_MODEL).idx);
        } else {
            glScaled(1,2,1);
            glCallList(models_->value(NAIL_MODEL).idx);
        }
        glPopMatrix();
    }

    for (int i = 0; i < m_shapes_ring->length(); i++){
        Shapes s = m_shapes_ring->at(i);

        glPushMatrix();
        glTranslated(s.t.x,s.t.y,0);

        glRotated(-90,1,0,0);
        glScaled(5,5,5);

        glScaled(1,2,1);
        glCallList(models_->value(NAIL_MODEL).idx);

        glPopMatrix();
    }


    shader_programs_->value(NAIL_SHADER)->release();

     glActiveTexture(GL_TEXTURE0);
     glBindTexture(GL_TEXTURE_2D,textures_->value(ROPE_OCC));
     shader_programs_->value(ROPE_SHADER)->setUniformValue("colormap",0);

     glActiveTexture(GL_TEXTURE1);
     glBindTexture(GL_TEXTURE_2D,textures_->value(ROPE_NORM));

     shader_programs_->value(ROPE_SHADER)->setUniformValue("normalmap",1);


     //shader_programs_->value(ROPE_SHADER)->setUniformValue("sag",(GLfloat)(0.5 + 0.01*(m_framesElapsed%100)));
     shader_programs_->value(ROPE_SHADER)->setUniformValue("eyept",m_engine->camera_.eye.x, m_engine->camera_.eye.y, m_engine->camera_.eye.z);
     shader_programs_->value(ROPE_SHADER)->bind();


     float wtf=25;
    for (int i = 0; i < m_ropes->length(); i++){
        glPushMatrix();
        glScaled(wtf,wtf,wtf);

        rope r = m_ropes->at(i);

        //glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
        drawRope(r,true);

        glPopMatrix();
    }

    shader_programs_->value(ROPE_SHADER)->release();

    glPopMatrix();
    glPopMatrix();
}