我认为它会起作用,但它并不是XD 它每次点击只移动图像一次 请帮帮我
from django.http import HttpRequest
from wkhtmltopdf.views import PDFTemplateResponse
def generate_invoice_pdf(download_pdf=False, **kwargs):
"""
Render html to PDF
"""
file_name = kwargs['file_name']
template = kwargs['template']
context = {
"first_Name": "John",
"last_name": "Doe"
}
# Create request object
request = HttpRequest()
params = {
'request': request,
'template': template,
'filename': os.path.basename(file_name),
'context': context,
'cmd_options': {'margin-top': 10, },
'show_content_in_browser': True
}
response = PDFTemplateResponse(**params)
# write the rendered content to a file
with open(file_name, "wb") as f:
f.write(response.rendered_content) # Part throwing the error
if download_pdf:
return response
else:
msg = 'PDF Generated: {}'.format(file_name)
return msg
答案 0 :(得分:1)
我认为您想要使用pygame.key.get_pressed()
,如下所示。
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
pressed_keys = pygame.key.get_pressed()
if pressed_keys[K_RIGHT]:
posX += velocidad
if pressed_keys[K_LEFT]:
posX -= velocidad
event.type == pygame.KEYDOWN仅在首次按下键时捕获。 如果你想使用它,你可以切换一些属性,如your_object.moving_right = True。然后使用keyup将其关闭。
答案 1 :(得分:0)
总的来说,我认为您想要的是使用if语句检查event.key
。
然而,您的代码存在多个问题(结构和语法)。 event.type
不会更改,因此使用while
没有意义(这将永远运行并使您的程序挂起)。我不确定你对== 1
比较的意图是什么,因为K_RIGHT和K_LEFT是关键代码值的任意常量。更不用说right == K_RIGHT
是一个什么都不做的表达式(你的意思是right = K_RIGHT
吗?)并且你得到了lef
的明显拼写错误。我认为你提供的结构最接近的工作代码(假设其他代码没有显示也有效)看起来像这样:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
right = K_RIGHT
left = K_LEFT
if event.key == right:
posX += velocidad
elif event.key == left:
posX -= velocidad