| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
运行没有问题,但当用方向键控制乌龟移动时,会报错以下内容: 
        Traceback (most recent call last): 
  File "/Users/mac/PycharmProjects/fish_c/venv/78.py", line 76, in <module> 
    if event.key == k_LEFT: 
NameError: name 'k_LEFT' is not defined 
 
# 下面是代码: 
import pygame 
import sys 
from pygame.locals import * 
 
# 初始化pygame 
pygame.init() 
 
size = width, height = 1600, 900 
speed = [-2, 1] 
bg = (127, 127, 127) 
 
# 创建指定大小的窗口 Surface 
screen = pygame.display.set_mode([1600, 900]) 
# 设置窗口标题 
pygame.display.set_caption("初次见面,请大家多多关照!") 
 
# 加载图片 
turtle = pygame.image.load("turtle.png") 
# 获得图像的位置矩形 
position = turtle.get_rect() 
 
# 控制图形使用按键向左右移动时,头部调转相应方向 
l_head = turtle 
r_head = pygame.transform.flip(turtle, True, False) 
# 遍历事件循环,当检测到事件循环为QUIT时(也就是用户点下"X"状图标时),调用sys库里的exit()方法退出程序 
while True: 
    for event in pygame.event.get(): 
        if event.type == pygame.QUIT: 
            sys.exit() 
        # 通过按下控盘上的"上,下,左,右"按键控制图像移动 
        if event.type == KEYDOWN: 
            if event.key == k_LEFT: 
                turtle = l_head 
                speed = [-1, 0] 
            if event.key == k_RIGHT: 
                turtle = r_head 
                speed = [1, 0] 
            if event.key == k_UP: 
                speed = [0, -1] 
            if event.key == k_DOWN: 
                speed = [0, 1] 
    # 移动图像 
    position = position.move(speed) 
    if position.left < 0 or position.right > width: 
        # 翻转图像 
        turtle = pygame.transform.flip(turtle, True, False) 
        # 反向移动 
        speed[0] = -speed[0] 
    if position.top < 0 or position.bottom > height: 
        speed[1] = -speed[1] 
 
    # 填充背景 
    screen.fill(bg) 
    # 更新图像 
    screen.blit(turtle, position) 
    # 更新界面 
    pygame.display.flip() 
    # 延迟10毫秒 
    pygame.time.delay(10)
 本帖最后由 Daniel_Zhang 于 2021-1-27 21:16 编辑  
 
K_LEFT 和 k_LEFT 能看出区别吗 
 
 
 |   
 
 
 
 |