现在在我的游戏中,我正在绘制这样的真实字体:
for(int i = linesSkipped; i <= maxitems + linesSkipped; ++i)
{
if(i >= (int)textRows.size())
{
break;
}
paintargs.graphics()->drawText(AguiPoint(textX - 2,
textY - 2 + (i * getFont().getLineHeight())),
textRows[i].c_str(),AguiColor(0,0,0),getFont());
paintargs.graphics()->drawText(AguiPoint(textX + 2,
textY + 2 + (i * getFont().getLineHeight())),
textRows[i].c_str(),AguiColor(0,0,0),getFont());
paintargs.graphics()->drawText(AguiPoint(textX,
textY + (i * getFont().getLineHeight())),
textRows[i].c_str(),AguiColor(255,128,0),getFont());
}
所以我用偏移量2绘制它,然后偏移量为-1。
它几乎可以实现我想要的效果,但右上角和左下角仍然未被旋转:
有没有办法绘制它,使它看起来像在Photoshop中抚摸?
由于
答案 0 :(得分:0)
您使用的是哪种API?是GDI +吗?
在绘制内部之前,您可以在更多位置绘制轮廓:
(x-2, y-2) (x, y-2) (x+2,y-2)
(x-2, y ) (x+2,y )
(x-2, y+2) (x, y+2) (x+2,y+2)
或者你可以看看你的图形API是否有类似路径的东西。使用路径,您可以告诉要开始路径的图形库,然后绘制一次文本,然后结束路径。完成后,您告诉图形库“抚摸并填充”路径。这是最干净的解决方案。
答案 1 :(得分:-1)
如果您无法影响文本呈现方法,请在第一步中绘制文本,在第二步中绘制笔划,如此
r=5; //pixel-thickness of stroke
for ( x = xmin; x<=xmax; x++ )
for( y = ymin; y=<max; y++ )
if ( isWhite(x,y) && orangePixelNearby(r,x,y) )
putPixel(x,y)
当然,有更有效的方法可以做到这一点,但这个方法最能说明如何渲染笔画。
答案 2 :(得分:-1)
您需要在各个角落绘制文字!你正在做的是画在左上角和右下角,分别是X=-2, Y=-2
和X=2, Y=2
。
您需要做的是在左下角和右上角绘制它们,分别是X=-2, Y=2
和X=2, Y=-2
。