如何在pygame中加入数字?

时间:2018-05-04 05:30:19

标签: pygame numbers geometry blit

目前,我正在制作一个游戏,在这个游戏中,您会被问到2 + 1这样的数学问题,并且数字会从屏幕顶部掉落。玩家必须在屏幕下方点击正确的答案。但是,我不想下载这些数字的图像,因为这会浪费很多时间。有没有办法绘制或blit数字?如果有,那么数字可以是圆形而不是矩形吗?

编辑:我可以通过将数字显示为文字来创建数字。但是,这意味着我必须为每个可能的答案创建数百个不同的矩形。那么我的问题是,有没有办法告诉Python生成数字并将它们放在一个矩形上而不必手动完成?

1 个答案:

答案 0 :(得分:1)

一种解决方案是创建一个类,在该类中存储实际答案,文本表面和用于碰撞检测的矩形。我在这里使用pygame.sprite.Sprite子类,但你可以用普通的类做同样的事情。当一个新问题被问到时,你可以创建一堆实例并将它们添加到一个sprite组,这样你就可以在主循环中完全更新它们。您可以使用pygame.Rect.collidepoint方法进行碰撞检测。

[...]
SqlDataReader srd = mon_search.ExecuteReader();

flag = false;
while (srd.Read())
{
    if (srd[1].ToString() == rawword)
    {
        flag = true;
        break;
    }
}
[...]

(右键单击以生成数字,左键单击以触摸单个数字。)