用户:
BKS乄MCproblem查看:3 回复:3 评论:3 创建时间:2021-06-20T20:41:36
【作品展示】

【作品介绍】
各位㚐佬,帮忙解决一下呗。键盘绑定函数无法执行,这是为啥呢?
【作品源代码】
"""
游戏规则:
黄色方形:蛇
绿色圆形:豆子
WSAD:控制蛇上下左右移动
蛇吃到豆子则加一分
蛇头碰到身体则游戏结束
"""
from turtle import *
import time
#定义蛇类
class Snake():
def __init__(self):
self.setup()
def setup(self):
#变量初始化
self.pen = Pen()
self.snake = Pen()
self.pea = Pen()
self.bg = Screen()
self.side=0
self.if_over=False
self.score=0
#初始化背景
self.bg.bgcolor("light blue")
self.bg.setworldcoordinates(0,0,500,500)
self.bg.tracer(10)
self.bg.title("贪吃蛇")
#绑定键盘函数
self.bg.onkey(self.change_side_up, "W")
self.bg.onkey(self.change_side_down, "S")
self.bg.onkey(self.change_side_left, "A")
self.bg.onkey(self.change_side_right, "D")
self.bg.listen()
#初始化蛇
self.snake.shape("喵")
self.snake.fillcolor("yellow")
self.snake.turtlesize(3.6)
self.snake.pu()
self.snake.setpos(275,275)
self.snake.showturtle()
#初始化豆子
self.pea.shape("circle")
self.pea.fillcolor("green")
self.pea.pu()
self.pea.setpos(275,275)
self.pea.hideturtle()
#初始化画笔
self.pen.pencolor("blue")
self.pen.hideturtle()
while not self.if_over:
# time.sleep(1)
# self.bg.clear()
self.snake.showturtle()
# self.bg.bgcolor("light blue")
#绘制格线
self.extra()
#绑定键盘函数
self.bg.onkey(self.change_side_up, "W")
self.bg.onkey(self.change_side_down, "S")
self.bg.onkey(self.change_side_left, "A")
self.bg.onkey(self.change_side_right, "D")
self.bg.listen()
#蛇移动
self.snake_move(self.side)
def extra(self):
#绘制表格
for y in range(0,500,50):
#横向线条
self.pen.setpos(0, y)
self.pen.pd()
self.pen.setheading(0)
self.pen.forward(500)
self.pen.setpos(0,y)
self.pen.pu()
for x in range(0,500,50):
#纵向线条
self.pen.pd()
self.pen.setpos(x, y)
self.pen.setheading(90)
self.pen.forward(50)
self.pen.setpos(x, y)
self.pen.pu()
#改变方向
def change_side_up(self):
#上
self.side=90
print("up")
def change_side_down(self):
#下
self.side=-90
print("down")
def change_side_left(self):
#左
self.side=180
print("left")
def change_side_right(self):
#右
self.side=0
print("right")
def snake_move(self, side):
# 蛇移动
self.snake.setheading(side)
self.snake.forward(50)
if __name__ == "__main__":
#实例化蛇类并展示窗口
window = Snake()
done()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn改成这样
#绑定键盘函数
onkey(self.change_side_up, "W")
onkey(self.change_side_down, "S")
onkey(self.change_side_left, "A")
onkey(self.change_side_right, "D")
原因:onkey是turtle提供的,而不是screen
点赞0
评论
BKS乄MCproblem感谢lsk666666的帮助
又出新问题了
报错信息为:ArrtibuteErrow;'Snake'object has no attribute'onkey'
属性错误:“蛇”对象没有“onkey”属性
好像是对象的问题

点赞0
评论