跟着那个12岁的少年学pygame的时候,遇到点问题,原文地址:青少年如何使用Python开发游戏
http://www.oschina.net/translate/beginning-game-programming-for-teens-with-python?p=1#comments
做完第三步之后,怎么按键盘都反应,也没有报错,win32,pygame1.9.1,python2.7
#1 - Import library
import pygame
from pygame.locals import *
#2 - Initialize the game
pygame.init()
width, height = 640, 480
screen = pygame.display.set_mode((width, height))
keys = [False, False, False, False]
playerpos = [100, 100]
#3 - Load images
player = pygame.image.load('resources/images/dude.png')
grass = pygame.image.load('resources/images/grass.png')
castle = pygame.image.load('resources/images/castle.png')
#4 - keep looping through
while 1:
#5 - clear the screen before drawing it again
screen.fill(0)
#6 - draw the screen elements
for x in range(width/grass.get_width()+1):
for y in range(height/grass.get_height()+1):
screen.blit(grass,(x*100, y*100))
screen.blit(player, playerpos)
screen.blit(castle, (0,30))
screen.blit(castle, (0,135))
screen.blit(castle, (0,240))
screen.blit(castle, (0,345))
#7 - update the screen
pygame.display.flip()
#8 - loop through the events
for event in pygame.event.get():
#check if the event is the X button
if event.type == pygame.QUIT:
#if it is quit the game
pygame.quit()
exit(0)
if event.type == pygame.KEYDOWN:
if event.key == K_w:
keys[0] == True
elif event.key == K_a:
keys[1] == True
elif event.key == K_s:
keys[2] == True
elif event.key == K_d:
keys[3] == True
if event.type == pygame.KEYUP:
if event.key == pygame.K_w:
keys[0] = False
elif event.key == pygame.K_a:
keys[1] = False
elif event.key == pygame.K_s:
keys[2] = False
elif event.key == pygame.K_d:
keys[3] = False
#9 - Move player
if keys[0]:
playerpos[1] -= 5
elif keys[2]:
playerpos[1] += 5
if keys[1]:
playerpos[0] -= 5
elif keys[3]:
playerpos[0] += 5
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
问题已解决。。。原因是ifevent.type==pygame.KEYDOWN:代码块里的keys[n]==True改为keys[n]=True........低级错误,一开始检查了很多遍,怎么也看不出来,下午又仔细检查了一边才发现。。。。