예제 #1
0
void Score::Init(){
  std::vector<Point> points;
  points.push_back(Point(0,0));
  points.push_back(Point(width,0));
  points.push_back(Point(width,degree));
  points.push_back(Point(0,degree));
  Polygon polygon;
  polygon.SetPoints(points);
  back.SetPolygon(polygon);
  back.SetColor(Color(0.2,0.2,0.2,0.5));
  body.SetPolygon(polygon);
  body.SetColor(Color(1,0,1,0.5));
  UpdateBack();
  UpdateBody();
}
예제 #2
0
void CCar::PhDataUpdate(float step)
{
		if(m_repairing)Revert();
		LimitWheels();
		UpdateFuel(step);

	
		//if(fwp)
		{	
			UpdatePower();
			if(b_engine_on&&!b_starting && m_current_rpm<m_min_rpm)Stall();
		}

		if(bkp)
		{
			UpdateBack();
		}

		if(brp)
			HandBreak();
//////////////////////////////////////////////////////////
	for (int k=0; k<(int)m_doors_update.size(); ++k){
		SDoor* D = m_doors_update[k];
		if (!D->update)
		{
			m_doors_update.erase(m_doors_update.begin()+k);
			--k;
		}
		else
		{
			D->Update();
		}
	}
	
	m_steer_angle=m_steering_wheels.begin()->GetSteerAngle()*0.1f+m_steer_angle*0.9f;
	VERIFY(_valid(m_steer_angle));
}
예제 #3
0
void Score::SetPosition(Point pos){
  this->pos=pos;
  UpdateBack();
  UpdateBody();
}
예제 #4
0
void Score::SetMaxValue(float value){
  max_value=value;
  UpdateBack();
}