Суббота, 23 Ноября 2024, 05:10

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
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
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг