[Py]一个贪吃蛇小游戏的雏形

来源:互联网 发布:保罗加索尔总决赛数据 编辑:程序博客网 时间:2024/05/29 13:20
# -*- coding: utf-8 -*-# file : pygame1.py#----2013年12月11日------#----2013年12月12日------import pygamefrom pygame.locals import *from sys import exitfrom random import randintpygame.init()DISPLAYSURF = pygame.display.set_mode((640,480))pygame.display.set_caption('Pygame1')FPSCLOCK=pygame.time.Clock()FPS=10startx=50starty=50directA='right'directB='left'snackA=[{'x':startx,'y':starty},{'x':startx-1,'y':starty},\{'x':startx-2,'y':starty},{'x':startx-3,'y':starty},\{'x':startx-4,'y':starty} ]snackB=[{'x':startx,'y':starty},{'x':startx-1,'y':starty},\{'x':startx-2,'y':starty},{'x':startx-3,'y':starty},\{'x':startx-4,'y':starty} ]lengthA=6lengthB=6applex=2appley=2while True:        for event in pygame.event.get():        if event.type == QUIT:            pygame.quit()            exit()        if event.type == KEYDOWN:            if event.key==K_q:                pygame.quit()                exit()            elif event.key==K_UP:                directA='up'            elif event.key==K_DOWN:                directA='down'            elif event.key==K_LEFT:                directA='left'            elif event.key==K_RIGHT:                directA='right'            elif event.key==K_w:                directB='up'            elif event.key==K_s:                directB='down'            elif event.key==K_a:                directB='left'            elif event.key==K_d:                directB='right'                                    if directA=='up':        NewheadA={'x':snackA[0]['x'],'y':snackA[0]['y']-1}    elif directA=='down':        NewheadA={'x':snackA[0]['x'],'y':snackA[0]['y']+1}    elif directA=='left':        NewheadA={'x':snackA[0]['x']-1,'y':snackA[0]['y']}    elif directA=='right':        NewheadA={'x':snackA[0]['x']+1,'y':snackA[0]['y']}    if directB=='up':        NewheadB={'x':snackB[0]['x'],'y':snackB[0]['y']-1}    elif directB=='down':        NewheadB={'x':snackB[0]['x'],'y':snackB[0]['y']+1}    elif directB=='left':        NewheadB={'x':snackB[0]['x']-1,'y':snackB[0]['y']}    elif directB=='right':        NewheadB={'x':snackB[0]['x']+1,'y':snackB[0]['y']}    if snackA[0]['x']==applex and snackA[0]['y']==appley:        applex=randint(0,50)        appley=randint(0,50)        lengthA=lengthA+1;            if snackB[0]['x']==applex and snackB[0]['y']==appley:        applex=randint(0,50)        appley=randint(0,50)        lengthB=lengthB+1;    snackA.insert(0,NewheadA)    snackB.insert(0,NewheadB)    DISPLAYSURF.fill((0,0,0))               #draw snack:        for point in snackA[0:lengthA]:        x=point['x']*5        y=point['y']*5        Rect = pygame.Rect(x, y, 5, 5)        pygame.draw.rect(DISPLAYSURF, (0,255,0), Rect)    for point in snackB[0:lengthB]:        x=point['x']*5        y=point['y']*5        Rect = pygame.Rect(x, y, 5, 5)        pygame.draw.rect(DISPLAYSURF, (255,0,0), Rect) #            #draw apple    x=applex*5    y=appley*5    Rect = pygame.Rect(x,y,5,5)    pygame.draw.rect(DISPLAYSURF,(255,255,255),Rect) #        pygame.display.update()    FPSCLOCK.tick(FPS)

。。。。

接下来,应该做成面向对象,再丰富一下细节。。= =

0 0
原创粉丝点击