pthon 뱀 탐식 게임 상세 코드
Python 게임 항목 을 쓸 때 가장 중요 한 것 은 python 의 pygame 라 이브 러 리 입 니 다.pygame 라 이브 러 리 와 용법 을 내 CSDN 블 로그 의 다른 글 에 설치 합 니 다.여 기 는 자세히 말 하지 않 겠 습 니 다.아래 에 서 는 게임 인터페이스 가 실 행 됩 니 다.
다음은 상세 한 코드 와 주석 입 니 다.
import pygame,sys,random,time
from pygame.locals import * # pygame
#
black_colour = pygame.Color(0,0,0)
white_colour = pygame.Color(255,255,255)
red_colour = pygame.Color(255,0,0)
grey_colour = pygame.Color(150,150,150)
#
def GameOver(gamesurface):
#
GameOver_font = pygame.font.SysFont("MicrosoftYaHei", 16)
#
GameOver_colour = GameOver_font.render('Game Over',True,grey_colour)
#
GameOver_location = GameOver_colour.get_rect()
GameOver_location.midtop = (320,10)
#
gamesurface.blit(GameOver_colour,GameOver_location)
#
pygame.display.flip()
# 5
time.sleep(5)
#
pygame.quit()
#
sys.exit()
#
def main():
# pygame,
pygame.init()
pygame.time.Clock()
ftpsClock = pygame.time.Clock()
#
gamesurface = pygame.display.set_mode((640,480))
#
pygame.display.set_caption('tanchishe snake')
#
#
snakeposition = [100,100]
#
snakelength = [[100,100],[80,100],[60,100]]
#
square_purpose = [300,300]
#
square_position = 1
# ,
derection = "right"
change_derection = derection
#
while True:
# pygame
for event in pygame.event.get():
if event.type==QUIT:
# ,
pygame.quit()
sys.exit()
elif event.type==KEYDOWN:
# , w,s,a,d
if event.key==K_RIGHT or event.key==ord('d'):
change_derection = "right"
if event.key==K_LEFT or event.key==ord('a'):
change_derection = "left"
if event.key==K_UP or event.key==ord('w'):
change_derection = "up"
if event.key==K_DOWN or event.key==ord('s'):
change_derection = "down"
if event.key==K_ESCAPE:
pygame.event.post(pygame.event.Event(QUIT))
#
if change_derection =='left'and not derection =='right':
derection = change_derection
if change_derection =='right'and not derection =='left':
derection = change_derection
if change_derection == 'up' and not derection =='down':
derection = change_derection
if change_derection == 'down' and not derection == 'up':
derection = change_derection
# ,
if derection == 'left':
snakeposition[0] -= 20
if derection == 'right':
snakeposition[0] += 20
if derection == 'up':
snakeposition[1] -= 20
if derection == 'down':
snakeposition[1] += 20
#
snakelength.insert(0,list(snakeposition))
#
if snakeposition[0]==square_purpose[0] and snakeposition[1]==square_purpose[1]:
square_position = 0
else:
snakelength.pop()
#
if square_position ==0:
# x,y, ,
x = random.randrange(1,32)
y = random.randrange(1,24)
square_purpose = [int(x*20),int(y*20)]
square_position = 1
# pygame
gamesurface.fill(black_colour)
for position in snakelength:
pygame.draw.rect(gamesurface,white_colour,Rect(position[0],position[1],20,20))
pygame.draw.rect(gamesurface,red_colour,Rect(square_purpose[0],square_purpose[1],20,20))
# pygame
pygame.display.flip()
#
if snakeposition[0]<0 or snakeposition[0]>620:
GameOver(gamesurface)
if snakeposition[1]<0 or snakeposition[1]>460:
GameOver(gamesurface)
for snakebody in snakelength[1:]:
if snakeposition[0]==snakebody[0] and snakeposition[1]==snakebody[1]:
GameOver(gamesurface)
#
ftpsClock.tick(5)
if __name__ == "__main__":
main()
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.