憤怒的小鳥中文版手機版(10年前風靡全球的手游憤怒的小鳥,是如何霸榜的?經典回歸..)
前言
《憤怒的小鳥》一直是我蠻喜歡的一個系列。
并不是說小鳥的每個系列游戲我都玩過,而是我一直覺得小鳥在ip的塑造上很讓人有辨識度,色彩
每個角色造型,都讓我覺得無比親切,而且人設飽滿。所以本期的這篇文章我們做得簡單點,來做一
下Python版本《憤怒的小鳥》簡約版。(代碼見文末)
為什么說是簡約版?因為研究了很久,還沒寫出來,一個算是失敗的作品,沒啥游戲體驗感代碼也
超級簡單,2333 準備繼續找找別的大佬寫的代碼做參考去了!我們先來看看這份簡單的小代碼
吧!后來想想還是續寫一個簡易版跟不那么簡易兩個版本的吧~
?
正文
本文的游戲大概就是一只憤怒的小鳥左右duangduangduang來回撞!笑哭
因為代碼很簡單我感覺可以直接給大家標上去了
一、簡約版
環境安裝
Python3、 Pycharm 、Pygame模塊。(如需安裝包、激活碼等直接私信我即可完成安裝問題解答
都可以的哈~)
第三方庫的安裝:pip install pygame
1)代碼展示
import pygame,syspygame.init()#初始化操作#保存窗口大小width,height=600,400screen=pygame.display.set_mode([width,height])#創建游戲窗口#設置窗口標題pygame.display.set_caption("憤怒的小鳥")#加載小鳥素材player=pygame.image.load("xiaoniao.png")#獲取圖像矩形位置rect=player.get_rect()#聲明XY運動速度的列表speed = [3,2]left_head = pygame.transform.flip(player,True,False)right_head = player#無限循環while True: for event in pygame.event.get(): if event.type ==pygame.QUIT: exit() if event.type ==pygame.KEYDOWN: if event.key == pygame.K_LEFT: player = left_head #小鳥的頭向左 speed=[-2,1] if event.key == pygame.K_RIGHT: player = right_head #小鳥的頭向左 speed=[2,1] if event.key == pygame.K_UP: player = left_head #小鳥的頭向左 speed=[2,-1] if event.key == pygame.K_DOWN: player = right_head #小鳥的頭向左 speed=[2,1] rect =rect.move(speed) if rect.right>width or rect.left<0: #將圖片水平翻轉 反轉對象 是否水平反轉 是否垂直翻轉 player = pygame.transform.flip(player,True,False) speed[0]=-speed[0] if rect.bottom>height or rect.top<0: speed[1]=-speed[1] screen.fill((255,255,255)) screen.blit(player,rect) pygame.display.update() pygame.time.delay(10)
2)效果展示
其實截圖的話不怎么展示的出來效果——
?
其實這個游戲可以飄了
?
二、不那么簡約版
環境安裝
Python3、 Pycharm 、Pygame模塊。(如需安裝包、激活碼等直接私信我即可完成安裝問題解答
都可以的哈~)
第三方庫的安裝:pip install pygame
1)代碼展示
import pygameimport sysfrom pygame.locals import *from random import randintpygame.init()pygame.mixer.init()pygame.mixer.music.load('憤怒的小鳥背景音效.wav')pygame.mixer.music.set_volume(0.2)pygame.mixer.music.play(loops=-1)bg = pygame.image.load('憤怒的小鳥背景圖3.jpg')bg_position = bg.get_rect()size = width, height = 1000, 570screen = pygame.display.set_mode(size)pygame.display.set_caption('憤怒的小鳥!')def main(): class Bird(pygame.sprite.Sprite): def __init__(self): pygame.sprite.Sprite.__init__(self) position=100,100 self.image=pygame.image.load('憤怒的小鳥里的小鳥.png') self.rect=self.image.get_rect() self.rect.center=position def move_left(self): self.speed=[-5,0] if self.rect.left<=0: self.rect.left=0 else: self.rect=self.rect.move(self.speed) def move_right(self): self.speed=[5,0] if self.rect.right>=1000: self.rect.right=1000 else: self.rect=self.rect.move(self.speed) def move_up(self): self.speed=[0,-5] if self.rect.top<=0: self.rect.top=0 else: self.rect=self.rect.move(self.speed) def move_down(self): self.speed=[0,5] if self.rect.bottom>=570: self.rect.bottom=570 else: self.rect=self.rect.move(self.speed) class Pig(pygame.sprite.Sprite): def __init__(self): pygame.sprite.Sprite.__init__(self) y=randint(0,570) position=[1000,y] self.image=pygame.image.load('憤怒的小鳥里的小豬.png') self.rect=self.image.get_rect() self.rect.center=position self.speed=[-4,0] def move(self): self.rect=self.rect.move(self.speed) bird=Bird() i=0 group=pygame.sprite.Group() state=True while state: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() key=pygame.key.get_pressed() if key[K_LEFT]: bird.move_left() if key[K_RIGHT]: bird.move_right() if key[K_UP]: bird.move_up() if key[K_DOWN]: bird.move_down() screen.blit(bg, bg_position) screen.blit(bird.image,bird.rect) i=i 1 if i==0: pig=Pig() group.add(pig) for p in group.sprites(): p.move() screen.blit(p.image,p.rect) if pygame.sprite.collide_mask(bird,p): state=False pause() pygame.display.flip() pygame.time.Clock().tick(60)def pause(): bg_go = pygame.image.load('憤怒的小鳥gameover圖.jpg') bg_go_pos = bg_go.get_rect() size = width, height = 1000, 570 screen = pygame.display.set_mode(size) pygame.display.set_caption('GameOver!') while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() img_src=pygame.image.load('重玩按鈕.jpg') img_src_pos=img_src.get_rect() mouse_press=pygame.mouse.get_pressed() mouse_pos=pygame.mouse.get_pos() left=img_src_pos.left right=img_src_pos.right top=img_src_pos.top bottom=img_src_pos.bottom if left 100<mouse_pos[0]<right 100 and top 185<mouse_pos[1]<bottom 185: img_src=pygame.image.load('重玩按鈕2.jpg') if mouse_press[0]: main() img_src_pos = img_src.get_rect().center = 100, 185 screen.blit(bg_go, bg_go_pos) screen.blit(img_src,img_src_pos) pygame.display.flip()main()
2)效果展示
游戲界面:(游戲運行之后都是有音效的哦,游戲規則就是躲避右邊的小豬啦)
??
游戲結束!
??
總結
時隔多年,小編寫代碼的水平都飛起來了,說明技術還是提升了的,大家放心觀看!往期還有很多
源碼等著你們自己拿自己看呢!
?完整的素材等:私信小編06即可的啦~
往期推薦閱讀——
項目1.6 【Pygame小游戲】斗地主我見多了,BUT 這款開源歡樂斗地主,最讓人服氣~
項目2.2【Pygame小游戲】掃雷游戲50多歲了,但這款我能玩一年~(三個版本集合)
項目0.5 【視頻倒放神器】超級玩法:千萬不要倒放視頻,太魔性了根本停不下來......
項目0.6 【Python小程序】隱藏表白圖:“你永遠都不知道我喜歡你”(建議保存)
項目0.4 ?????? Python教程:去除背景,我保證不動她一根頭發(附多種方式)
文章匯總——
匯總: Python文章合集 | (入門到實戰、游戲、Turtle、案例等)
(文章匯總還有更多你案例等你來學習啦!)
?