我刚刚编写了一些在命令行中运行的代码,所以现在我想给它一些图形。现在,这是我的第一个编程项目,因此在试图解释问题时请耐心等待:
我正在使用PyGame并按如下方式初始化窗口:
import pygame, pygame.midi,pygame.font, random
(width, height) = (600, 400)
background = (220,220,220)
pygame.midi.init()
pygame.font.init()
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Chord trainer")
screen.fill(background)
pygame.display.flip()
然后我尝试渲染文本(没有任何错误):
myfont = pygame.font.SysFont("Arial", 80)
letter = myfont.render("SOME WEIRD TEST TO TRY AND GET THINGS WORKING",0,(0,0,0))
screen.blit(letter,(100,100))
因为我想在程序关闭之前实际看到我的文本,所以我设置了一个无限循环:
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
当我运行它时,我只得到我想要的灰色屏幕,但没有任何文本,这会让我觉得我的blit命令有问题,但我无法弄清楚是什么。
最初我将渲染设置在一个循环中,但这只是让程序没有响应所以我拿出来进行调试。为了完整起见,这是循环:
while True:
# Decide on random chord
c1 = random.choice(chords)
# Make sure that no repitition takes place.
if c1==c2:
while c1==c2:
c1=random.choice(chords)
c2 = c1
myfont = pygame.font.SysFont("Arial", 80)
letter = myfont.render(str(c1),0,(0,0,0))
screen.blit(letter,(100,100))
# Listen to Midi device and search for c.
midi_listen(inp,sorted(c1))
score += 1
答案 0 :(得分:3)
您需要添加
class Program
{
static void SetProcessAffinity(ulong groupMask)
{
Process.GetCurrentProcess().ProcessorAffinity = new IntPtr((long)groupMask);
}
static void Main(string[] args)
{
SetProcessAffinity(1); // group 0
// binary literals are a C# 7 feature for which you need VS 2017 or later.
SetProcessAffinity(0b11); // Both groups 0 and 1
SetProcessAffinity(0b1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111); // for all cpu groups all 64 bits enabled
}
}
之后
pygame.display.flip()
它会更新您的屏幕,通常您将能够看到您的文字。