汇智学堂-phthon小游戏(贪吃蛇游戏之三-创建蛇并向右运动)

4.3创建蛇并向右运动
我们将在600*600像素的画布上,实现我们自己创建的蛇,向右运动。下面是我们要做的事情。
1、绘制蛇及食物。
2、控制蛇向右运动。

实现代码如下:

def init(self):
self.x1rec=40
self.y1rec=40
self.x2rec=60
self.y2rec=60
self.id3=self.canvas.create_rectangle(self.x1rec,self.y1rec,self.x2rec,
self.y2rec,fill=‘green’)
self.a=random.randint(1,30)
self.b=random.randint(1,30)
self.x11rec=self.a20
self.y12rec=self.b
20
self.x21rec=self.a20+20
self.y22rec=self.b
20+20
self.id4= self.canvas.create_rectangle(self.x11rec,self.y12rec,
self.x21rec,self.y22rec,fill=‘red’)
def draw(self):
self.canvas.move(self.id3,self.x,self.y)

这里我们处理的蛇及食物,用正方形来做示意的。

将代码整合起来,整合后完整代码如下:

from tkinter import*
import random
import time

‘’‘汇制蛇及矩形实物’’’

class Game:
def init(self):

    self.tk=Tk()
    self.canvas=Canvas(self.tk,width=600,height=600)
    self.canvas.pack()        
    #self.snake=PhotoImage(file='C:\\Users\\soft\\Desktop\\训练\\PYTHON\\ \

LYG-向荣\snake\snake\snake.gif’)
#self.food=PhotoImage(file=‘C:\Users\soft\Desktop\训练\PYTHON\
LYG-向荣\snake\snake\food.gif’)

    self.x1rec=40
    self.y1rec=40
    self.x2rec=60
    self.y2rec=60
    self.id3=self.canvas.create_rectangle(self.x1rec,self.y1rec,self.x2rec, \

self.y2rec,fill=‘green’)
self.a=random.randint(1,30)
self.b=random.randint(1,30)
self.x11rec=self.a20
self.y12rec=self.b
20
self.x21rec=self.a20+20
self.y22rec=self.b
20+20
self.id4= self.canvas.create_rectangle(self.x11rec,self.y12rec,
self.x21rec,self.y22rec,fill=‘red’)

    self.x=0
    self.y=0
    self.canvas.bind_all('<KeyPress-Left>',self.turn_left)
    self.canvas.bind_all('<KeyPress-Right>',self.turn_right)
    self.canvas.bind_all('<KeyPress-Up>',self.turn_up)
    self.canvas.bind_all('<KeyPress-Down>',self.turn_down)        


def draw(self):       
    self.canvas.move(self.id3,self.x,self.y)        
def turn_left(self,evt):
    self.x=-20
    self.y=0
def turn_right(self,evt):
    self.x=20
    self.y=0
def turn_up(self,evt):
    self.y=-20
    self.x=0
def turn_down(self,evt):
    self.y=20
    self.x=0

g=Game()
while 1:
g.draw()
g.tk.update_idletasks()
g.tk.update()
v=0.3
time.sleep(v)

运行这段代码,当我们按下向右箭头时,我们程序创建的方框会以我们设定的速度向右移动(见图4-5)向左、向上、向下都是这样。
在这里插入图片描述
图4-5

猜你喜欢

转载自blog.csdn.net/weixin_39593940/article/details/88362005