使用pygame模块编写贪吃蛇

python ### 刚学了python不久,发现了一个好玩的库pygame使用pygame模块 利用面向对象的思想编写贪吃蛇,主要用到pygame.sprite:游戏主类import pygame,sysfrom snake_sprite import Game_sprite,Snake,FoodSCREEN_RECT=pygame.Rect(0,0,828,600)
摘要由CSDN通过智能技术生成

python ### 刚学了python不久,发现了一个好玩的库pygame

使用pygame模块 利用面向对象的思想编写贪吃蛇,主要用到pygame.sprite:


游戏主类

import pygame,sys
from snake_sprite import Game_sprite,Snake,Food
SCREEN_RECT=pygame.Rect(0,0,828,600)


IMG_URL="./image/bg.jpg"
#主类
class Snakegame(object):
    def __init__(self):
        self.screen=pygame.display.set_mode(SCREEN_RECT.size)
        self.clock=pygame.time.Clock()
        self.__create_sprites()


    def __create_sprites(self):
        bg=Game_sprite(IMG_URL)
        self.snake=Snake()
        for pos in self.snake.snake_point:
            self.screen.blit(self.snake.image,pos)
        food=Food()
        self.bg_group=pygame.sprite.Group(bg)
        self.snake_group=pygame.sprite.Group(self.snake)
        self.food_group = pygame.sprite.Group(food)
    def start_game(self):
        while True:
            #1.时钟设置
            self.clock.tick(30)
            #2.事件监听
            self.__event_handler()
            #3.碰撞检测
            self.__check_collide()
            #4.精灵更新
            self.__update_sprites()
            #5.屏幕更新
            pygame.display.update()
    def __event_handler(self):
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                Snakegame.__game_over()
            elif event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT and \
                    self.snake.direction !='L':
                self.snake.speedy = 0
                self.snake.speedx = 1
                self.snake.direction = 'R'
            elif event.type == pygame.KEYDOWN and event.key == pygame.K_LEFT and \
                    self.snake.direction !='R':
                self.snake.speedy = 0
                self.snake.speedx = -1
                self.snake.direction = 'L'
            elif event.type == pygame.KEYDOWN and event.key == pygame.K_UP and \
                    self.snake.direction !='D':
                self.snake.speedx = 0
                self.snake.speedy = -1
                self.snake.direction = 'U'
            elif event.type == pygame.KEYDOWN and event.key == pygame.K_DOWN and \
                    self.snake.direction !='U':
                self.snake.speedx=0
                self.snake.speedy=1
                self.snake.direction=
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值