0

プレイヤーが画面上でマウスをクリックした位置に移動する RuneScape と同様に、クリックしたときにスプライトをカーソル位置に移動できるシステムを設計しようとしています。以下は私のコードです:

    for event in pygame.event.get ():
    if event.type == QUIT:
        pygame.quit ()
        sys.exit (0)

    elif event.type == KEYDOWN:
        if event.key == K_UP:
            Shrin_y -= 5
        elif event.key == K_LEFT:
            Shrin_x -= 5
        elif event.key == K_RIGHT:  
            Shrin_x += 5 
        elif event.key == K_DOWN:   
            Shrin_y += 5 
    elif event.type == MOUSEBUTTONDOWN:
        (Shrin_x, Shrin_y) = pygame.mouse.get_pos
        print pygame.mouse.get_pos

Surface.blit (Shrin, (Shrin_x, Shrin_y))

pygame.display.update ()

注: Shrin はスプライトの名前です。よろしければ、コード内の Shrin のすべてのインスタンスを「スプライト」に置き換えてください。

では、 によって返された値をどのように格納しますpygame.mouse.get_pos(Shrin_x, Shrin_y)?

4

2 に答える 2

6
(Shrin_x, Shrin_y) = pygame.mouse.get_pos

この行は、1 つの値 (関数またはメソッド オブジェクト) を 2 つの変数にアンパックしようとしているため、エラーが発生するはずです。あなたが望むものは:

(Shrin_x, Shrin_y) = pygame.mouse.get_pos()

違いは、()が呼び出し可能なオブジェクトを呼び出す演算子であることです。

于 2012-07-19T15:30:41.107 に答える
1

に電話する必要がありますpygame.mouse.get_pos。コードでそれを使用する方法は、メソッドを見ているだけです。したがって、変更は1行変更するだけです:

(Shrin_x, Shrin_y) = pygame.mouse.get_pos() 
于 2012-07-19T15:31:16.990 に答える