寫在最前面
你想成為Python高手嗎?你想使用Python編寫一個炫酷的游戲嗎?
那么今天這篇文章就能帶着你從零開始編寫一個Python小游戲。希望你能喜歡。
話不多說,我們先來看一副動圖
這個圖片中就是我們最終的效果。是不是很炫酷?有木有?而且代碼全部都是由Python編寫的,是不是很神奇?不清楚你們是什么感覺,我一次看到這個項目是就覺得很厲害。
項目部分
這種小項目看起來是很炫酷,其實做起來也不難,但是稍微有點麻煩。麻煩就在於找素材
上訴就是需要使用到的素材。除了上面需要用到的圖片,還有音樂等文件。我就不一一發出來了。素材是次要的,最主要的還是代碼。
代碼我們只需要用到pygame這個模塊,沒有安裝的小伙伴可以自己安裝一下。
安裝之后我們就來看一下代碼。首先我們需要導入一個用到的庫。有了這些庫之后我們才能進行使用
from __future__ import division import pygame import random from os import path
然后要導入當前文件下的素材,沒有這些素材頁面就會是丑丑的
# 導入圖片素材 img_dir = path.join(path.dirname(__file__), 'assets') # 導入音頻文件 sound_folder = path.join(path.dirname(__file__), 'sounds')
然后在定義一些默認的參數、顏色
## to be placed in "constant.py" later WIDTH = 480 HEIGHT = 600 FPS = 60 POWERUP_TIME = 5000 BAR_LENGTH = 100 BAR_HEIGHT = 10 # 默認的顏色 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()
中間的代碼有點多,我就不一一展現出來了,想要的話源碼可以,可以看文章開頭寫的獲取方式。如果你將這個游戲學完了的話,你的能力將會提升一大截。如果你只是一個小白的話,要到源碼也可以直接運行。
寫在最后
源碼地址:https://github.com/tasdikrahman/spaceShooter
這個項目雖然不大,算上空格與注釋,代碼量是600多行。雖然代碼不多,但是如果你全部掌握的話,能力提升還是杠杠的。
真心希望大家能夠在Python的方向上走的更遠!!
畢竟現在Python的火熱程度及實用性,很快能夠在編程語言占據很大的地位!只要堅持學下去,終有一天是能夠全部掌握的。