零基礎用Python開發的第一個小游戲——太空射擊


寫在最前面

你想成為Python高手嗎?你想使用Python編寫一個炫酷的游戲嗎?

那么今天這篇文章就能帶着你從零開始編寫一個Python小游戲。希望你能喜歡。

話不多說,我們先來看一副動圖

零基礎用Python開發的第一個小游戲——太空射擊

號:923414804 群里有志同道合的小伙伴,互幫互助, 群里有不錯的視頻學習教程和PDF!

這個圖片中就是我們最終的效果。是不是很炫酷?有木有?而且代碼全部都是由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的火熱程度及實用性,很快能夠在編程語言占據很大的地位!只要堅持學下去,終有一天是能夠全部掌握的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM