python 바다거북 그림 으로 뱀 탐식 게임 쓰기

3115 단어 python탐식 사
뱀 을 탐식 하 는 간단 한 절차 입 니 다.여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
그림 참조

바다거북 그림 갤러리 가 져 오기

from turtle import *
from random import randrange
상수 설정

food_x = randrange(-20, 20) * 20
food_y = randrange(-20, 20) * 20
snack = [[0, 0], [20, 0], [40, 0], [40, 20]]
dir_x = 20
dir_y = 0
주 함수

if __name__ == '__main__':
    #            
    # width,height,startx,starty(               ,    )
    setup(800, 800)
    #       
    tracer(False)
    loop_view()
    listen()
    onkey(lambda: control(0, 20), "w")
    onkey(lambda: control(0, -20), "s")
    onkey(lambda: control(-20, 0), "a")
    onkey(lambda: control(20, 0), "d")
    #       
    #    Tkinter   mainloop   
    #                  
    done()
정사각형 을 그리다

def draw_square(x, y, size, color_name):
    '''
        
    :param x       x  
    :param y      y  
    :param size         
    :param color_name         
    :return
    '''

    #     ,        
    up()
    #       
    ht()
    #           
    goto(x, y)

    #      --       
    down()
    color("red", color_name)
    begin_fill()
    forward(size)
    left(90)
    forward(size)
    left(90)
    forward(size)
    left(90)
    forward(size)
    left(90)
    end_fill()

    pass
캔버스 에 음식 과 뱀 을 그 려 요.

def loop_view():
    '''
        
    '''
    global food_x, food_y
    if not is_zhangqiang():
        return

    snack.append([snack[-1][0] + dir_x, snack[-1][1] + dir_y])
    if snack[-1][0] != food_x or snack[-1][1] != food_y:
        snack.pop(0)
    else:
        food_x = randrange(-20, 20) * 20
        food_y = randrange(-20, 20) * 20
    clear()
    #    
    draw_square(food_x, food_y, 20, "red")
    #   
    for s in range(len(snack)):
        if s == len(snack) - 1:
            draw_square(snack[s][0], snack[s][1], 20, "yellow")
            continue
        draw_square(snack[s][0], snack[s][1], 20, "black")



    ontimer(loop_view, 100)
    #      TurtleScreen   。        
    update()
방향 을 제어 하 다

def control(x,y):
    global dir_x, dir_y
    dir_x = x
    dir_y = y
충돌 검출

def is_zhangqiang():
    if -400 <= snack[-1][0] <= 380 and -400 <= snack[-1][1] <= 380:
        return True
    else:
        return False
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기