Windel | Дата: Суббота, 02 Апреля 2011, 01:06 | Сообщение # 1 | Тема: Змея, условие выхода Pygame |
уже был
Сейчас нет на сайте
| Можете помочь с разборкой кода? Я все никак не могу понять почему не работают условия смерти змеи. Уже пытался "клеить" змейку из готовых программ, но тоже что то не то получается... Буду очень признателен за помочь. Code import pygame,sys,random,os from pygame.locals import *
def main(): os.environ["SDL_VIDEO_CENTERED"] = "1" pygame.init() pygame.display.set_caption("SNAKE") screen = pygame.display.set_mode((320,320)) snakeHead = [160,304] snakeBody = [[160,304],[144,304],[128,304]] angle = 0 snakeDead = False while 1: while snakeDead == False: for e in pygame.event.get(): if e.type == QUIT: pygame.quit() return if e.type == KEYDOWN: if e.key == K_ESCAPE: pygame.quit() return if e.key == K_UP: angle = 0 if e.key == K_LEFT: angle = 90 if e.key == K_DOWN: angle = 180 if e.key == K_RIGHT: angle = 270
update(angle, snakeHead,snakeBody,snakeDead) screen.fill((255,255,255)) draw(screen,snakeBody,snakeHead) pygame. display.update() pygame.time.wait(100)
if snakeDead == True: font = pygame.font.SysFont("arial",48) ren = font.render("GAME OVER",True,(0,255,0)) screen.blit(ren,(5,5)) pygame.display.update() pygame.time.wait(10000) d ef update(angle,snakeHead,snakeBody,snakeDead): snakeBody.insert(0, list(snakeHead)) snakeBody.pop() if angle == 0: snakeHead[1] -= 16 if angle == 90: snakeHead[0] -=16 if angle == 180: snakeHead[1] += 16 if angle == 270: snakeHead[0] += 16
for b in snakeBody: if snakeHead == b: snakeDead = True
if snakeHead[0] not in range(320): # вот эти условия snakeDead = True if snakeHead[1] not in range(320): snakeDead = True
def draw(screen,snakeBody,snakeHead): screen.fill((255,0,0),(snakeHead[0],snakeHead[1], 16,16)) for b in snakeBody: screen.fill((255,0,0),(b[0],b[1],16,16))
if __name__ == "__main__": main()
Сообщение отредактировал Windel - Суббота, 02 Апреля 2011, 01:06 |
|
| |