示例#1
0
void drawTextCentered(Game* g, Font* f, char* text, float x, float y)
{
    int offsetX = 0, 
        offsetY = 0, 
        length = strlen(text);
      
    if(f == 0)
        f = &g->font;
      
    offsetX = -getTextLineWidth(f, text) / 2;
    
    for(int i = 0; i < length; ++i)
    {
        char c = f->layout[(int)text[i]];
        if(text[i] == '\n')
        {
            if(i + 1 < length)
                offsetX = -getTextLineWidth(f, &text[i+1]) / 2;
            offsetY += f->lineSpacing;
            continue;
        }
        if(text[i] != ' ')
        {
            f->sprite.frame = c;
            spriteDraw(g, &f->sprite, x + offsetX, y + offsetY);
        }
        offsetX += f->letterWidth[(int)text[i]] + f->letterSpacing;
    }
}
示例#2
0
void drawText(Game* g, Font* f, char* text, float x, float y)
{
    int offsetX = 0, 
        offsetY = 0, 
        length = strlen(text);
    
    if(f == 0)
        f = &g->font;
    
    for(int i = 0; i < length; ++i)
    {
        char c = f->layout[(int)text[i]];
        if(f->singleCase)
            c = f->layout[toupper(text[i])];
        if(text[i] == '\n')
        {
            offsetX = 0;
            offsetY += f->lineSpacing;
            continue;
        }
        if(text[i] != ' ')
        {
            f->sprite.frame = c;
            spriteDraw(g, &f->sprite, x + offsetX, y + offsetY);
        }
        offsetX += f->letterWidth[(int)text[i]] + f->letterSpacing;
    }
}
示例#3
0
文件: screen.cpp 项目: segrax/DrCreep
void cScreen::refresh() {

	if(( mBitmapRedraw || mSpriteRedraw) && !mTextRedraw) {
		bitmapRefresh();
		spriteDraw();
	}

	if( mTextRedraw ) {
		mTextRedraw = false;
	}

	mWindow->RenderAt(mSurface, cPosition(8, 15));

	if(mCursorOn) {
		size_t x =  ((mCursorX) * 2 ) * mScale;
		size_t y =  70 + (mCursorY) * mScale;
			
		//TODO
		//mWindow->RenderAt( mSDLCursorSurface, cPosition(x,y) );
	}
	
	mWindow->FrameEnd();
}
示例#4
0
void EXPORT_THIS d_sprite_draw(void *sprite) {
	spriteDraw(sprite);

	return;
}