Example #1
0
Zombie::Zombie(Scene* scene, const std::string& id, const sf::Vector2f& pos) : 
    Entity(scene, id),
    m_health(100.0f)
{
    setType(Entity::ZOMBIE);
    setDrawLayer(3);
    
    m_sprite.SetImage(*IM.GetResource("data/Images/zombie_1.png"));
    m_sprite.SetSubRect(sf::IntRect(0, 0, 45, 60));
    m_sprite.SetOrigin(m_sprite.GetSize() / 2.0f);
    
    b2BodyDef bodyDef;
    bodyDef.type = b2_dynamicBody;
    bodyDef.position.Set(pos.x / m_scene->getMeterPixelRatio(), pos.y / m_scene->getMeterPixelRatio());
    bodyDef.userData = this;
    
    m_body = m_scene->getB2World()->CreateBody(&bodyDef);
    
    b2CircleShape shape;
    shape.m_radius = 24.0f / m_scene->getMeterPixelRatio();
    
    b2FixtureDef fixtureDef;
    fixtureDef.shape = &shape;
    fixtureDef.friction = 0.3f;
    fixtureDef.density = 1.0f;
    fixtureDef.restitution = 0.1f;
    fixtureDef.filter.categoryBits = Entity::ZOMBIE;
    fixtureDef.filter.maskBits = Entity::OBJECT | Entity::PLAYER | Entity::PROJECTILE | Entity::ZOMBIE;
    
    m_body->CreateFixture(&fixtureDef);
}
Example #2
0
GameControl::GameControl(int x, int y, int width, int height) :
    Actor(Vector(), true),
	m_enabled(true)
{
    // set bounds will prepare the mesh. This has to be done there because every time
    // the bounds are changed there is a posibility that mesh modifications will be needed
	setBounds(Rectangle(x, y, width, height));

    getModel().getElement()->getMaterialInstance()->setMaterialName("hud");
    getModel().getElement()->getMaterialInstance()->setValue("u_enabled", 1.0f);
    getModel().getElement()->getMaterialInstance()->setValue("u_textureSampler", "dummy");
    setDrawLayer(Common::DL_FOREGROUND);
}