本文整理汇总了C++中gd::InitialInstance类的典型用法代码示例。如果您正苦于以下问题:C++ InitialInstance类的具体用法?C++ InitialInstance怎么用?C++ InitialInstance使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了InitialInstance类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetInitialInstanceSprite
sf::Vector2f SpriteObject::GetInitialInstanceOrigin(gd::InitialInstance & instance, gd::Project & project, gd::Layout & layout) const
{
const Sprite * associatedSprite = GetInitialInstanceSprite(instance, project, layout);
if ( associatedSprite == NULL || !associatedSprite->GetSFMLTexture() ) return sf::Vector2f(0,0);
float scaleX = instance.HasCustomSize() ? instance.GetCustomWidth()/associatedSprite->GetSFMLTexture()->texture.getSize().x : 1;
float scaleY = instance.HasCustomSize() ? instance.GetCustomHeight()/associatedSprite->GetSFMLTexture()->texture.getSize().y : 1;
return sf::Vector2f(((float)associatedSprite->GetOrigin().GetX())*fabs(scaleX),
((float)associatedSprite->GetOrigin().GetY())*fabs(scaleY));
}
示例2: DrawInitialInstance
void TextObject::DrawInitialInstance(gd::InitialInstance & instance, sf::RenderTarget & renderTarget, gd::Project & project, gd::Layout & layout)
{
sf::Text sfText;
sfText.setString(text);
sfText.setCharacterSize(characterSize);
sfText.setStyle((bold ? sf::Text::Bold : 0) |
(IsItalic() ? sf::Text::Italic : 0) |
(IsUnderlined() ? sf::Text::Underlined : 0) );
if ( font ) sfText.setFont(*font);
else sfText.setFont(*FontManager::Get()->GetFont(""));
sfText.setOrigin(sfText.getLocalBounds().width/2, sfText.getLocalBounds().height/2);
sfText.setPosition( instance.GetX()+sfText.getOrigin().x, instance.GetY()+sfText.getOrigin().y );
sfText.setRotation( instance.GetAngle() );
sfText.setColor(sf::Color(colorR, colorG, colorB));
renderTarget.draw(sfText);
}
示例3: DrawInitialInstance
/**
* Render object at edittime
*/
void TileMapObject::DrawInitialInstance(gd::InitialInstance & instance, sf::RenderTarget & renderTarget, gd::Project & project, gd::Layout & layout)
{
if(tileSet.Get().IsDirty())
return;
//Get the current view
sf::View currentView = renderTarget.getView();
sf::Vector2f centerPos = currentView.getCenter();
//Construct the transform
sf::Transform transform;
transform.translate(instance.GetX() + centerPos.x - floor(centerPos.x),
instance.GetY() + centerPos.y - floor(centerPos.y));
//Unsmooth the texture
bool wasSmooth = tileSet.Get().GetTexture().isSmooth();
tileSet.Get().GetTexture().setSmooth(false);
//Draw the tilemap
renderTarget.draw(vertexArray, sf::RenderStates(sf::BlendAlpha, transform, &tileSet.Get().GetTexture(), NULL));
tileSet.Get().GetTexture().setSmooth(wasSmooth);
}
示例4: DrawInitialInstance
void Object::DrawInitialInstance(gd::InitialInstance & instance, sf::RenderTarget & renderTarget, gd::Project & project, gd::Layout & layout)
{
#if !defined(GD_NO_WX_GUI)
sf::RectangleShape mask(instance.HasCustomSize() ?
sf::Vector2f(instance.GetCustomWidth(),instance.GetCustomHeight()) :
GetInitialInstanceDefaultSize(instance, project, layout));
mask.setPosition(instance.GetX(), instance.GetY());
mask.setRotation(instance.GetAngle());
mask.setFillColor(sf::Color( 147,151,255 ));
mask.setOutlineThickness(1);
mask.setOutlineColor(sf::Color( 255, 48, 69));
renderTarget.draw(mask);
#endif
}
示例5: DrawInitialInstance
/**
* Render object at edittime
*/
void TiledSpriteObject::DrawInitialInstance(gd::InitialInstance & instance, sf::RenderTarget & renderTarget, gd::Project & project, gd::Layout & layout)
{
if(!texture) return;
float width = instance.HasCustomSize() ? instance.GetCustomWidth() : GetInitialInstanceDefaultSize(instance, project, layout).x;
float height = instance.HasCustomSize() ? instance.GetCustomHeight() : GetInitialInstanceDefaultSize(instance, project, layout).y;
float xOffset = 0;
float yOffset = 0;
sf::Vector2f centerPosition = sf::Vector2f(instance.GetX()+width/2, instance.GetY()+height/2);
float angleInRad = instance.GetAngle()*3.14159/180.0;
texture->texture.setRepeated(true);
sf::Vertex vertices[] = {sf::Vertex( centerPosition+RotatePoint(sf::Vector2f(-width/2,-height/2), angleInRad), sf::Vector2f(0+xOffset,0+yOffset)),
sf::Vertex( centerPosition+RotatePoint(sf::Vector2f(+width/2,-height/2), angleInRad), sf::Vector2f(width+xOffset,0+yOffset)),
sf::Vertex( centerPosition+RotatePoint(sf::Vector2f(+width/2,+height/2), angleInRad), sf::Vector2f(width+xOffset, height+yOffset)),
sf::Vertex( centerPosition+RotatePoint(sf::Vector2f(-width/2,+height/2), angleInRad), sf::Vector2f(0+xOffset, height+yOffset))};
renderTarget.draw(vertices, 4, sf::Quads, &texture->texture);
texture->texture.setRepeated(false);
}
示例6: DrawInitialInstance
void SpriteObject::DrawInitialInstance(gd::InitialInstance & instance, sf::RenderTarget & renderTarget, gd::Project & project, gd::Layout & layout)
{
bool shouldNotRotate = false;
const Sprite * associatedSprite = GetInitialInstanceSprite(instance, project, layout, &shouldNotRotate);
if ( associatedSprite == NULL || !associatedSprite->GetSFMLTexture() ) return;
sf::Sprite sprite(associatedSprite->GetSFMLTexture()->texture);
float scaleX = instance.HasCustomSize() ? instance.GetCustomWidth()/associatedSprite->GetSFMLTexture()->texture.getSize().x : 1;
float scaleY = instance.HasCustomSize() ? instance.GetCustomHeight()/associatedSprite->GetSFMLTexture()->texture.getSize().y : 1;
sprite.setOrigin( associatedSprite->GetCenter().GetX(), associatedSprite->GetCenter().GetY() ); ;
sprite.setRotation( shouldNotRotate ? 0 : instance.GetAngle() );
sprite.setPosition( instance.GetX() + (associatedSprite->GetCenter().GetX() - associatedSprite->GetOrigin().GetX())*fabs(scaleX),
instance.GetY() + (associatedSprite->GetCenter().GetY() - associatedSprite->GetOrigin().GetY())*fabs(scaleY) );
sprite.setScale(scaleX, scaleY);
renderTarget.draw(sprite);
}
示例7: GetInitialInstanceDefaultSize
/**
* Render object at edittime
*/
void Box3DObject::DrawInitialInstance(gd::InitialInstance & instance, sf::RenderTarget & renderTarget, gd::Project & project, gd::Layout & layout)
{
if ( !topTexture || !bottomTexture || ! rightTexture || !leftTexture || !frontTexture || !backTexture ) return;
renderTarget.popGLStates();
float width = instance.HasCustomSize() ? instance.GetCustomWidth() : GetInitialInstanceDefaultSize(instance, project, layout).x;
float height = instance.HasCustomSize() ? instance.GetCustomHeight() : GetInitialInstanceDefaultSize(instance, project, layout).y;
float xView = renderTarget.getView().getCenter().x*0.25f;
float yView = -renderTarget.getView().getCenter().y*0.25f;
float zPosition = instance.floatInfos.find("z") != instance.floatInfos.end() ?
instance.floatInfos.find("z")->second :
0;
float pitch = instance.floatInfos.find("pitch") != instance.floatInfos.end() ?
instance.floatInfos.find("pitch")->second :
0;
float roll = instance.floatInfos.find("roll") != instance.floatInfos.end() ?
instance.floatInfos.find("roll")->second :
0;
float yaw = instance.GetAngle();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//Position
glRotatef(renderTarget.getView().getRotation(), 0, 0, 1);
glTranslatef(instance.GetX()*0.25f - xView, -instance.GetY()*0.25f - yView, zPosition*0.25f - 75.0f*(renderTarget.getView().getSize().y/600.0f));
float sizeWidth = width*0.25f;
float sizeHeight = -height*0.25f;
float sizeDepth = depth*0.25f;
//Rotation
glTranslatef(sizeWidth/2, sizeHeight/2, sizeDepth/2);
glRotatef(-yaw, 0, 0, 1);
glRotatef(pitch, 0, 1, 0);
glRotatef(roll, 1, 0, 0);
glTranslatef(-sizeWidth/2, -sizeHeight/2, -sizeDepth/2);
//Render the box
glEnable(GL_BLEND);
glEnable(GL_TEXTURE_2D);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
sf::Texture::bind(&backTexture->texture);
glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex3f(0 , 0, 0);
glTexCoord2f(0, 1); glVertex3f(0 , sizeHeight, 0);
glTexCoord2f(1, 1); glVertex3f(sizeWidth, sizeHeight, 0);
glTexCoord2f(1, 0); glVertex3f(sizeWidth, 0, 0);
glEnd();
sf::Texture::bind(&frontTexture->texture);
glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex3f(0 , 0, sizeDepth);
glTexCoord2f(0, 1); glVertex3f(0 , sizeHeight, sizeDepth);
glTexCoord2f(1, 1); glVertex3f(sizeWidth, sizeHeight, sizeDepth);
glTexCoord2f(1, 0); glVertex3f(sizeWidth, 0, sizeDepth);
glEnd();
sf::Texture::bind(&leftTexture->texture);
glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex3f(0, 0, 0);
glTexCoord2f(0, 1); glVertex3f(0, sizeHeight, 0);
glTexCoord2f(1, 1); glVertex3f(0, sizeHeight, sizeDepth);
glTexCoord2f(1, 0); glVertex3f(0, 0, sizeDepth);
glEnd();
sf::Texture::bind(&rightTexture->texture);
glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex3f(sizeWidth, 0, 0);
glTexCoord2f(0, 1); glVertex3f(sizeWidth, sizeHeight, 0);
glTexCoord2f(1, 1); glVertex3f(sizeWidth, sizeHeight, sizeDepth);
glTexCoord2f(1, 0); glVertex3f(sizeWidth, 0, sizeDepth);
glEnd();
sf::Texture::bind(&bottomTexture->texture);
glBegin(GL_QUADS);
glTexCoord2f(0, 1); glVertex3f(0, 0, sizeDepth);
glTexCoord2f(0, 0); glVertex3f(0, 0, 0);
glTexCoord2f(1, 0); glVertex3f(sizeWidth, 0, 0);
glTexCoord2f(1, 1); glVertex3f(sizeWidth, 0, sizeDepth);
glEnd();
sf::Texture::bind(&topTexture->texture);
glBegin(GL_QUADS);
glTexCoord2f(0, 1); glVertex3f(0, sizeHeight, sizeDepth);
glTexCoord2f(0, 0); glVertex3f(0, sizeHeight, 0);
glTexCoord2f(1, 0); glVertex3f(sizeWidth, sizeHeight, 0);
glTexCoord2f(1, 1); glVertex3f(sizeWidth, sizeHeight, sizeDepth);
glEnd();
renderTarget.pushGLStates();
}
示例8: DrawInitialInstance
/**
* Render object at edittime
*/
void ShapePainterObject::DrawInitialInstance(gd::InitialInstance & instance, sf::RenderTarget & renderTarget, gd::Project & project, gd::Layout & layout)
{
edittimeIcon.setPosition(instance.GetX(), instance.GetY());
renderTarget.draw(edittimeIcon);
}
示例9: DrawInitialInstance
void SoundObject::DrawInitialInstance(gd::InitialInstance & instance, sf::RenderTarget & renderTarget, gd::Project & project, gd::Layout & layout)
{
soundSprite.setPosition(instance.GetX(), instance.GetY());
renderTarget.draw(soundSprite);
}
示例10: DrawInitialInstance
/**
* Render object at edittime
*/
void ParticleEmitterObject::DrawInitialInstance(gd::InitialInstance& instance,
sf::RenderTarget& renderTarget,
gd::Project& project,
gd::Layout& layout) {
sf::CircleShape circle(3);
circle.setPosition(sf::Vector2f(instance.GetX() - 2, instance.GetY() - 2));
circle.setFillColor(
sf::Color(GetParticleRed1(), GetParticleGreen1(), GetParticleBlue1()));
float emitterAngle = instance.GetAngle() / 180.0 * 3.14159;
float line1Angle =
emitterAngle - (GetEmitterAngleB() / 2.0) / 180.0 * 3.14159;
float line2Angle =
emitterAngle + (GetEmitterAngleB() / 2.0) / 180.0 * 3.14159;
sf::Vertex line1[] = {
sf::Vertex(
sf::Vector2f(instance.GetX(), instance.GetY()),
sf::Color(
GetParticleRed1(), GetParticleGreen1(), GetParticleBlue1())),
sf::Vertex(
sf::Vector2f(cos(line1Angle) * 32 + instance.GetX(),
sin(line1Angle) * 32 + instance.GetY()),
sf::Color(
GetParticleRed2(), GetParticleGreen2(), GetParticleBlue2()))};
sf::Vertex line2[] = {
sf::Vertex(
sf::Vector2f(instance.GetX(), instance.GetY()),
sf::Color(
GetParticleRed1(), GetParticleGreen1(), GetParticleBlue1())),
sf::Vertex(
sf::Vector2f(cos(line2Angle) * 32 + instance.GetX(),
sin(line2Angle) * 32 + instance.GetY()),
sf::Color(
GetParticleRed2(), GetParticleGreen2(), GetParticleBlue2()))};
renderTarget.draw(circle);
renderTarget.draw(line1, 2, sf::Lines);
renderTarget.draw(line2, 2, sf::Lines);
}