Среда, 08 Мая 2024, 10:34

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Скриптовые языки программирования » Змея, условие выхода Pygame
Змея, условие выхода Pygame
WindelДата: Суббота, 02 Апреля 2011, 01:06 | Сообщение # 1
уже был
Сейчас нет на сайте
Можете помочь с разборкой кода? Я все никак не могу понять почему не работают условия смерти змеи. Уже пытался "клеить" змейку из готовых программ, но тоже что то не то получается...
Буду очень признателен за помочь.
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
Форум игроделов » Программирование » Скриптовые языки программирования » Змея, условие выхода Pygame
  • Страница 1 из 1
  • 1
Поиск:

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