寫在最前面
你想成為Python高手嗎?你想使用Python編寫一個(gè)炫酷的游戲嗎?
那么今天這篇文章就能帶著你從零開始編寫一個(gè)Python小游戲。希望你能喜歡。
話不多說,我們先來看一副動(dòng)圖

你想成為Python高手嗎?你想使用Python編寫一個(gè)炫酷的游戲嗎? 那么今天這篇文章就能帶著你從零開始編寫一個(gè)Python小游戲。希望你能喜歡。 話不多說,我們先來看一副動(dòng)圖寫在最前面
這個(gè)圖片中就是我們最終的效果。是不是很炫酷?有木有?而且代碼全部都是由Python編寫的,是不是很神奇?不清楚你們是什么感覺,我一次看到這個(gè)項(xiàng)目是就覺得很厲害。
需要項(xiàng)目源碼與素材的小伙伴關(guān)注并轉(zhuǎn)發(fā)文章,私信小編“太空射擊”即可獲取項(xiàng)目的源碼
這種小項(xiàng)目看起來是很炫酷,其實(shí)做起來也不難,但是稍微有點(diǎn)麻煩。麻煩就在于找素材
上訴就是需要使用到的素材。除了上面需要用到的圖片,還有音樂等文件。我就不一一發(fā)出來了。素材是次要的,最主要的還是代碼。
代碼我們只需要用到pygame這個(gè)模塊,沒有安裝的小伙伴可以自己安裝一下。
安裝之后我們就來看一下代碼。首先我們需要導(dǎo)入一個(gè)用到的庫。有了這些庫之后我們才能進(jìn)行使用
from __future__ import division import pygame import random from os import path
然后要導(dǎo)入當(dāng)前文件下的素材,沒有這些素材頁面就會(huì)是丑丑的
# 導(dǎo)入圖片素材 img_dir = path.join(path.dirname(__file__), 'assets') # 導(dǎo)入音頻文件 sound_folder = path.join(path.dirname(__file__), 'sounds')
然后在定義一些默認(rèn)的參數(shù)、顏色
## to be placed in "constant.py" later WIDTH = 480 HEIGHT = 600 FPS = 60 POWERUP_TIME = 5000 BAR_LENGTH = 100 BAR_HEIGHT = 10 # 默認(rèn)的顏色 WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) GREEN = (0, 255, 0) BLUE = (0, 0, 255) YELLOW = (255, 255, 0)
初始化游戲
pygame.init() pygame.mixer.init() ## For sound screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Space Shooter") clock = pygame.time.Clock() font_name = pygame.font.match_font('arial')
定義玩游戲的事件與邏輯
def main_menu(): global screen menu_song = pygame.mixer.music.load(path.join(sound_folder, "menu.ogg")) pygame.mixer.music.play(-1) title = pygame.image.load(path.join(img_dir, "main.png")).convert() title = pygame.transform.scale(title, (WIDTH, HEIGHT), screen) screen.blit(title, (0,0)) pygame.display.update() while True: ev = pygame.event.poll() if ev.type == pygame.KEYDOWN: if ev.key == pygame.K_RETURN: break elif ev.key == pygame.K_q: pygame.quit() quit() elif ev.type == pygame.QUIT: pygame.quit() quit() else: draw_text(screen, "Press [ENTER] To Begin", 30, WIDTH/2, HEIGHT/2) draw_text(screen, "or [Q] To Quit", 30, WIDTH/2, (HEIGHT/2)+40) pygame.display.update() #pygame.mixer.music.stop() ready = pygame.mixer.Sound(path.join(sound_folder,'getready.ogg')) ready.play() screen.fill(BLACK) draw_text(screen, "GET READY!", 40, WIDTH/2, HEIGHT/2) pygame.display.update()
中間的代碼有點(diǎn)多,我就不一一展現(xiàn)出來了,想要的話源碼可以,可以看文章開頭寫的獲取方式。如果你將這個(gè)游戲?qū)W完了的話,你的能力將會(huì)提升一大截。如果你只是一個(gè)小白的話,要到源碼也可以直接運(yùn)行。
這個(gè)項(xiàng)目雖然不大,算上空格與注釋,代碼量是600多行。雖然代碼不多,但是如果你全部掌握的話,能力提升還是杠杠的。
真心希望大家能夠在Python的方向上走的更遠(yuǎn)?。?/p>
畢竟現(xiàn)在Python的火熱程度及實(shí)用性,很快能夠在編程語言占據(jù)很大的地位!只要堅(jiān)持學(xué)下去,終有一天是能夠全部掌握的。
聯(lián)系客服