python ### 剛學(xué)了python不久,發(fā)現(xiàn)了一個(gè)好玩的庫(kù)pygame
使用pygame模塊 利用面向?qū)ο蟮乃枷刖帉懾澇陨撸饕玫絧ygame.sprite:
游戲主類
import pygame,sysfrom snake_sprite import Game_sprite,Snake,FoodSCREEN_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.時(shí)鐘設(shè)置 self.clock.tick(30) #2.事件監(jiān)聽 self.__event_handler() #3.碰撞檢測(cè) 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='D' def __check_collide(self): pass def __update_sprites(self): self.bg_group.update() self.bg_group.draw(self.screen) self.snake_group.update() self.snake_group.draw(self.screen) self.food_group.update() self.food_group.draw(self.screen) @staticmethod def __game_over(): pygame.quit() exit()#游戲啟動(dòng)if __name__ == '__main__': snake=Snakegame() snake.start_game()
工具類
import pygameimport randomSNAKE_IMG="./image/snake.png"FOOD_IMG="./image/food.jpg"class Game_sprite(pygame.sprite.Sprite): def __init__(self,img_name,speedx=1,speedy=0): #調(diào)用父類的初始化方法 super(Game_sprite, self).__init__() #屬性 self.image=pygame.image.load(img_name) self.rect=self.image.get_rect() self.speedx=speedx self.speedy=speedy def update(self): pass#蛇實(shí)物class Snake(Game_sprite): def __init__(self,direction='R',snakelist=[[40,40],[80,40]]): self.direction=direction self.snake_point=snakelist super().__init__(SNAKE_IMG) self.rect.x=self.snake_point[1][0] self.rect.y=self.snake_point[1][1] def update(self): self.rect.x += self.speedx self.rect.y += self.speedyclass Food(Game_sprite): def __init__(self): super(Food, self).__init__(FOOD_IMG) self.rect.x = random.randint(50, 828) self.rect.y = random.randint(38, 600) def update(self): pass
新聞熱點(diǎn)
疑難解答
圖片精選