1

わかりましたので、ここに私の現在のプログラムがあります:

bif="bg.jpg"
mif="pkmn.png"


import pygame
import sys

from pygame.locals import *

pygame.init()

screen=pygame.display.set_mode ((600,375),0,32)
background=pygame.image.load(bif).convert()
mouse_c=pygame.image.load(mif).convert_alpha()

x,y=0,0
movex, movey=0,0

while True:

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

        if event.type==KEYDOWN:
            if event.key==K_LEFT:
                movex=-1
            elif event.key==K_RIGHT:
                movex=+1
            elif event.key==K_UP:
                movey=-1
            elif event.key==K_DOWN:
                movey=+1

        if event.type==KEYUP:
            if event.key==K_LEFT:
                movex=0
            elif event.key==K_RIGHT:
                movex=0
            elif event.key==K_UP:
                movey=0
            elif event.key==K_DOWN:
                movey=0

    x+=movex
    y+=movey

    screen.blit(background,(0,0))
    screen.blit(mouse_c,(x,y))

    pygame.display.update()

問題は、すべての方向に移動できるにもかかわらず、たとえば右矢印キーを押すと右に移動し、右矢印キーを押したまま左矢印キーを押したままにすると左に移動することです。問題は次のとおりです。右のキーを離すと、左に移動しようとしても、スプライトが停止します。

問題は、右または左のいずれかがリリースされると、x が 0 になることです。

右を押して右に行き、次に左を押して左に行きたいのですが、右を押していたので、左を離して右に行きたいです

私は自分自身を説明したいと思います.私はすべてを試し、どこでも検索しました.誰かが私のコードを変更して、それを私に見せて分析することができれば、それは素晴らしいことです.

ありがとう

4

2 に答える 2