キー入力の方法は1つしかありません。以下2つの方法(movementspriteとmovementspritevert)があります。1つの作業しかできないことがわかりました。両方を開始すると、一番上のものが実行され、2番目のものは何もしません。これを回避する方法はありますか?私は何か間違ったことをしていますか?
オリジナルプログラム
----移動ファイル------
import pygame
import os, sys
from itertools import *
from oryxsprites import *
from oryxdisplay import *
spritex = 320
spritey = 320
screen = pygame.display.set_mode((640, 640))
def movementsprite():
global spritex
keys = pygame.key.get_pressed()
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
if spritex == 576:
spritex += 0
else:
spritex += 32
elif event.key == pygame.K_LEFT:
if spritex == 32:
spritex -= 0
else:
spritex -= 32
return spritex
def movementspritevert():
global spritey
keys = pygame.key.get_pressed()
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_DOWN:
if spritey == 576:
spritey += 0
else:
spritey += 32
elif event.key == pygame.K_UP:
if spritey == 32:
spritey -= 0
else:
spritey -= 32
return spritey
-------メインファイル------]
running = True
while running:
backgroundmain()
pygame.display.set_caption('OryxGame')
#pygame.display.set_icon(grasstile)
movementsprite()
movementspritevert()
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()
------表示ファイル----
def backgroundmain():
spritex = movementsprite()
spritey = movementspritevert()
backdrop = pygame.Rect(0, 0, 640, 640)
screen.fill((50,50,50))
playingfeildwidth = (32, 608)
playingfeildheight = (32, 608)
screen.blit(warrior1, (spritex, spritey))
------可能な解決策-------------
-メインファイル----
while running:
backgroundmain()
pygame.display.set_caption('OryxGame')
#pygame.display.set_icon(grasstile)
movementsprite(events)
movementspritevert(events)
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()
-----ファイルの表示-----
def backgroundmain():
events = pygame.event.get()
spritex = movementsprite(events)
spritey = movementspritevert(events)
backdrop = pygame.Rect(0, 0, 640, 640)
screen.fill((50,50,50))
playingfeildwidth = (32, 608)
playingfeildheight = (32, 608)
------キー入力ファイル-----------
spritex = 320
spritey = 320
screen = pygame.display.set_mode((640, 640))
def movementsprite(events):
global spritex
keys = pygame.key.get_pressed()
for event in events:
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
if spritex == 576:
spritex += 0
else:
spritex += 32
elif event.key == pygame.K_LEFT:
if spritex == 32:
spritex -= 0
else:
spritex -= 32
return spritex
def movementspritevert(events):
global spritey
keys = pygame.key.get_pressed()
for event in events:
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_DOWN:
if spritey == 576:
spritey += 0
else:
spritey += 32
elif event.key == pygame.K_UP:
if spritey == 32:
spritey -= 0
else:
spritey -= 32
return spritey
- -エラー - -
Traceback (most recent call last):
File "C:\Users\Eric\Dropbox\oryxgame\oryxgame.py", line 12, in <module>
backgroundmain()
File "C:\Users\Eric\Dropbox\oryxgame\oryxdisplay.py", line 11, in backgroundmain
spritey = movementspritevert(events)
TypeError: movementspritevert() takes no arguments (1 given)
----完全なコード----