目前,我正在制作一个游戏,在这个游戏中,您会被问到2 + 1
这样的数学问题,并且数字会从屏幕顶部掉落。玩家必须在屏幕下方点击正确的答案。但是,我不想下载这些数字的图像,因为这会浪费很多时间。有没有办法绘制或blit数字?如果有,那么数字可以是圆形而不是矩形吗?
编辑:我可以通过将数字显示为文字来创建数字。但是,这意味着我必须为每个可能的答案创建数百个不同的矩形。那么我的问题是,有没有办法告诉Python生成数字并将它们放在一个矩形上而不必手动完成?
答案 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;
}
}
[...]
(右键单击以生成数字,左键单击以触摸单个数字。)