我创造这个来移动一个精灵。我在一个不同的文件中将sprite images cordinates设置为(spritex,300)。运行程序并按向右或向左箭头时,没有移动。在打印函数中,spritex的值会改变
我已经通过添加打印功能检查程序是否正在读取按键。我的程序设置错了吗?你知道吗
----移动功能文件
import pygame
import os, sys
from itertools import *
from oryxsprites import *
from oryxdisplay import *
spritex = 300
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
if keys[pygame.K_RIGHT]:
spritex += 10
print spritex
elif keys[pygame.K_LEFT]:
spritex -= 10
print spritex
------显示功能文件----------------
import pygame
import itertools
from oryxsprites import *
from McharMovement import *
screen = pygame.display.set_mode((640, 640))
spritex = 300
def backgroundmain():
movementsprite()
backdrop = pygame.Rect(0, 0, 640, 640)
screen.fill((50,50,50))
playingfeildwidth = (32, 608)
playingfeildheight = (32, 608)
screen.blit(warrior1, (spritex, 320))
pygame.display.flip()
----------主文件----------------
import pygame
import os, sys
from itertools import *
from oryxsprites import *
from oryxdisplay import *
from McharMovement import *
running = True
while running:
backgroundmain()
pygame.display.set_caption('OryxGame')
pygame.display.set_icon(grasstile)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()
将代码更改为:
那应该很管用
如果精灵仍然没有移动,那么现在的问题是调用函数来移动它。你怎么移动它?您需要从内部调用移动函数
def movementsprite():
如果要从另一个文件调用movement函数,请使用
from other_file import movement_func
甚至
from other_file import *
更新: 只需将return语句添加到移动函数
return spritex
然后在Display函数中,调用movement函数时,将行更改为
spritex=movementfunction()
这将改变文件之间spritex的值。你不必使spritex在你的移动功能的顶部全球。你知道吗
希望我能帮忙!:)
从外观上看,
spritex
变量超出范围。您需要使它对movementsprite()
函数可用。你知道吗把
global
放在变量声明前面可以解决这个问题相关问题 更多 >
编程相关推荐