所以我搜索了这些问题中的每一个,但我找不到任何帮助我的东西。
我还是相对较新的Python,我有一个简单的对话框显示一些文本:
var images=Array("1.png","2.jpg","3.png");
var visibleImage=0;
var a = document.getElementById("link");
function change()
{
img = document.getElementById("image");
visibleImage++;
if(visibleImage>=images.length)
{
visibleImage=0;
}
img.src=images[visibleImage];
console.log(img.src);
}
无论如何,我接着
<img src="1.png" onclick="change();" id='image'>
<a href="#" onclick="change();">Click to change</a>
并获得错误
class DialogueBox(object):
def __init__(self, text, font, size, wh, pos="center", padding=20):
self.text = text
self.font = font
self.size = size
self.width = wh[0]
self.height = wh[1]
self.image = pygame.image.load("img/dialogue_box_background.png")
self.image = pygame.transform.scale(self.image, (self.width, self.height))
if pos == "center":
self.pos[0] = screensize[0] - (self.width / 2)
self.pos[1] = screensize[1] - (self.height / 2)
else:
self.pos = pos
self.textpos = tuple(self.pos[0] + (padding / 2), self.pos[1] + (padding / 2))
self.rect = pygame.Rect(self.pos[0], self.pos[1], self.width, self.height)
self.textfont = pygame.font.Font(font,size)
self.textsurf = self.textfont.render(text, 1, (255,255,255))
if self.textsurf.get_width() > (width - padding):
self.mode = "long"
else:
self.mode = "short"
def draw(self):
screen.blit(self.image, self.pos)
if self.mode == "short":
textfunc(self.text, self.font, (self.textpos[0] + (self.width / 2), self.textpos[1] + (self.height / 2), (255,255,255)))
else:
blit_text(screen, self.text, self.textpos, self.textfont, pygame.Color("white"))
这非常奇怪,因为该类只有4个必需参数。
真的很抱歉,如果这是一个愚蠢的问题,但我不明白为什么我会收到此错误。
编辑:我现在看到我实际上是愚蠢和监督,我没有传递足够的论据,我确信我做到了。谢谢你的回答,抱歉浪费你的时间。
答案 0 :(得分:3)
你只传递了三个参数。 (100,100)是一个元组(一个参数而不是两个)。
哈努哈利
答案 1 :(得分:2)
opts_rsto_box = DialogueBox(curlang["cfdial"][0],genfont,(100,100))
(100,100)
是一个元组,它只是一个参数,而不是两个不同的参数。
答案 2 :(得分:1)
第五个参数是self
本身,它会自动传递。您没有在构造函数中传递wh
参数。可能是作为一个参数的元组(100,100)应该被分成两个独立的元组以符合构造函数签名。