我的角色赢了';不要在python中移动
这是我使用的代码我的角色赢了';不要在python中移动,python,pygame,Python,Pygame,这是我使用的代码 import pygame, sys from pygame.locals import * pygame.init() def game(): width, height = 1000, 600 screen = pygame.display.set_mode((width,height)) pygame.display.set_caption('My game far now :P') #This command allows you make a title. b
import pygame, sys
from pygame.locals import *
pygame.init()
def game():
width, height = 1000, 600
screen = pygame.display.set_mode((width,height))
pygame.display.set_caption('My game far now :P') #This command allows you make a title.
background=pygame.image.load('AE.jpg')
background = pygame.transform.scale(background, (width,height))
screen.blit(background, (0,0))
#Load target image and player
player = pygame.image.load('little.png')
player = pygame.transform.scale(player, (40,40))
px,py = width/2,height/2
screen.blit(player, (px,py))
movex = movey = 0
#Running of the game loop
while True:
screen.blit(background, (0,0))
#screen.blit(target,targetpos)
screen.blit(player, (px,py))
pygame.display.update()
#keyboard an/or mouse movements
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
elif event.type == pygame.KEYDOWN:
if event.key == K_RIGHT:
movex = 2
if event.key == K_LEFT:
movex = -2
if event.key == K_UP:
movey = -2
if event.key == K_DOWN:
movey = 2
elif event.type == pygame.KEYUP:
if event.key == K_RIGHT:
movex = 0
if event.key == K_LEFT:
movex = 0
if event.key == K_UP:
movey = 0
if event.key == K_DOWN:
movey = 0
px = px + movex
py = py + movey
#Python 's way of running the main routine
if __name__=='__main__':
game()
当我运行程序时,它全部启动,屏幕打开,背景和播放器产卵在屏幕中间,但是当我试图移动什么都没有发生时,没有错误什么也没有。 我能得到任何帮助吗:)
感谢您抽出时间来帮助我。您在最后两行中似乎有代码缩进问题,这可能是导致错误的原因 当前代码相当于此if代码块:
elif event.type == pygame.KEYUP:
if event.key == K_RIGHT:
movex = 0
if event.key == K_LEFT:
movex = 0
if event.key == K_UP:
movey = 0
if event.key == K_DOWN # IF BLOCK STARTS
movey = 0
px = px + movex # THIS FALLS IN THE PREVIOUS IF BLOCK
py = py + movey
正确的代码是:
elif event.type == pygame.KEYUP:
if event.key == K_RIGHT:
movex = 0
if event.key == K_LEFT:
movex = 0
if event.key == K_UP:
movey = 0
if event.key == K_DOWN # IF BLOCK STARTS
movey = 0 #IF BLOCK ENDS
px = px + movex # NOW THIS IS OUT OF THE IF BLOCK
py = py + movey
在最后两行中,您似乎有代码缩进问题,这可能是导致错误的原因 当前代码相当于此if代码块:
elif event.type == pygame.KEYUP:
if event.key == K_RIGHT:
movex = 0
if event.key == K_LEFT:
movex = 0
if event.key == K_UP:
movey = 0
if event.key == K_DOWN # IF BLOCK STARTS
movey = 0
px = px + movex # THIS FALLS IN THE PREVIOUS IF BLOCK
py = py + movey
正确的代码是:
elif event.type == pygame.KEYUP:
if event.key == K_RIGHT:
movex = 0
if event.key == K_LEFT:
movex = 0
if event.key == K_UP:
movey = 0
if event.key == K_DOWN # IF BLOCK STARTS
movey = 0 #IF BLOCK ENDS
px = px + movex # NOW THIS IS OUT OF THE IF BLOCK
py = py + movey
在最后两行中,您似乎有代码缩进问题,这可能是导致错误的原因 当前代码相当于此if代码块:
elif event.type == pygame.KEYUP:
if event.key == K_RIGHT:
movex = 0
if event.key == K_LEFT:
movex = 0
if event.key == K_UP:
movey = 0
if event.key == K_DOWN # IF BLOCK STARTS
movey = 0
px = px + movex # THIS FALLS IN THE PREVIOUS IF BLOCK
py = py + movey
正确的代码是:
elif event.type == pygame.KEYUP:
if event.key == K_RIGHT:
movex = 0
if event.key == K_LEFT:
movex = 0
if event.key == K_UP:
movey = 0
if event.key == K_DOWN # IF BLOCK STARTS
movey = 0 #IF BLOCK ENDS
px = px + movex # NOW THIS IS OUT OF THE IF BLOCK
py = py + movey
在最后两行中,您似乎有代码缩进问题,这可能是导致错误的原因 当前代码相当于此if代码块:
elif event.type == pygame.KEYUP:
if event.key == K_RIGHT:
movex = 0
if event.key == K_LEFT:
movex = 0
if event.key == K_UP:
movey = 0
if event.key == K_DOWN # IF BLOCK STARTS
movey = 0
px = px + movex # THIS FALLS IN THE PREVIOUS IF BLOCK
py = py + movey
正确的代码是:
elif event.type == pygame.KEYUP:
if event.key == K_RIGHT:
movex = 0
if event.key == K_LEFT:
movex = 0
if event.key == K_UP:
movey = 0
if event.key == K_DOWN # IF BLOCK STARTS
movey = 0 #IF BLOCK ENDS
px = px + movex # NOW THIS IS OUT OF THE IF BLOCK
py = py + movey
两个问题
while True:
# input
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
elif event.type == pygame.KEYDOWN:
# ...snip...
# physics
px += movex
py += movey
# drawing
screen.blit(background, (0,0))
screen.blit(player, (px,py))
pygame.display.update()
两个问题
while True:
# input
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
elif event.type == pygame.KEYDOWN:
# ...snip...
# physics
px += movex
py += movey
# drawing
screen.blit(background, (0,0))
screen.blit(player, (px,py))
pygame.display.update()
两个问题
while True:
# input
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
elif event.type == pygame.KEYDOWN:
# ...snip...
# physics
px += movex
py += movey
# drawing
screen.blit(background, (0,0))
screen.blit(player, (px,py))
pygame.display.update()
两个问题
while True:
# input
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
elif event.type == pygame.KEYDOWN:
# ...snip...
# physics
px += movex
py += movey
# drawing
screen.blit(background, (0,0))
screen.blit(player, (px,py))
pygame.display.update()
以这个代码为例,移动是优化的。删除Useles代码。 我希望你能理解;)
以这个代码为例,移动是优化的。删除Useles代码。 我希望你能理解;)
以这个代码为例,移动是优化的。删除Useles代码。 我希望你能理解;)
以这个代码为例,移动是优化的。删除Useles代码。 我希望你能理解;)
你为什么不能把它贴在这里?“我的角色不会在屏幕上移动”的描述和上面的代码不允许任何人帮助您。(据猜测,你可能从未在按键事件中调整过
px
或py
,尽管缩进很重要,而且它们位于if
keyup块内-尝试让它们与if
对齐)px和py只会让玩家在屏幕的中间繁殖,PlayerX和PlayerY@JoelMadsen当您删除px
和py
两个级别时会发生什么?为什么不能将其粘贴到此处?“我的角色不会在屏幕上移动”的描述和上面的代码不允许任何人帮助您。(据猜测,你可能从未在按键事件中调整过px
或py
,尽管缩进很重要,而且它们位于if
keyup块内-尝试让它们与if
对齐)px和py只会让玩家在屏幕的中间繁殖,PlayerX和PlayerY@JoelMadsen当您删除px
和py
两个级别时会发生什么?为什么不能将其粘贴到此处?“我的角色不会在屏幕上移动”的描述和上面的代码不允许任何人帮助您。(据猜测,你可能从未在按键事件中调整过px
或py
,尽管缩进很重要,而且它们位于if
keyup块内-尝试让它们与if
对齐)px和py只会让玩家在屏幕的中间繁殖,PlayerX和PlayerY@JoelMadsen当您删除px
和py
两个级别时会发生什么?为什么不能将其粘贴到此处?“我的角色不会在屏幕上移动”的描述和上面的代码不允许任何人帮助您。(据猜测,你可能从未在按键事件中调整过px
或py
,尽管缩进很重要,而且它们位于if
keyup块内-尝试让它们与if
对齐)px和py只会让玩家在屏幕的中间繁殖,PlayerX和PlayerY@JoelMadsen当您删除px
和py
两个级别时会发生什么情况?乌尔克,请不要在Python的括号中这样做。我想你可能是对的,但是用其他的方式(比如评论)说出来。@thegrinner我认为这将是一种更直观的方式来说明这个错误。是的,但它不是有效的Python。最糟糕的情况是,它可能会使人困惑。当我添加它时,它只是因为一个bug而崩溃。@DhruvPathak您能在结束它的地方发布一个代码吗?如果它将Px和Py移到左边,这是我能找到的唯一区别,那么它似乎不起作用。我想你可能是对的,但是用其他的方式(比如评论)说出来。@thegrinner我认为这将是一种更直观的方式来说明这个错误。是的,但它不是有效的Python。最糟糕的情况是,它可能会使人困惑。当我添加它时,它只是因为一个bug而崩溃。@DhruvPathak您能在结束它的地方发布一个代码吗?如果它将Px和Py移到左边,这是我能找到的唯一区别,那么它似乎不起作用。我想你可能是对的,但是用其他的方式(比如评论)说出来。@thegrinner我认为这将是一种更直观的方式来说明这个错误。是的,但它不是有效的Python。最糟糕的情况是,它可能会使人困惑。当我添加它时,它只是因为一个bug而崩溃。@DhruvPathak您能在结束它的地方发布一个代码吗?如果它将Px和Py移到左边,这是我能找到的唯一区别,那么它似乎不起作用。我想你可能是对的,但是用其他的方式(比如评论)说出来。@thegrinner我认为这将是一种更直观的方式来说明这个错误。是的,但它不是有效的Python。最坏的情况可能是