05-pygame彈球遊戲(上)

2021-12-30 AI悅創

收錄於話題 #pygame 7個

「閱讀本文大概需要6分鐘」

你好,我是悅創。

前面我們講了,一些 pygame 的操作,接下來呢,我們成功步入實戰階段。

目錄1. 遊戲介紹

足球在畫面中運動,遇到上、左、右以及接杆就會反彈,且接杆接住會積分,如果掉落到下面,則遊戲結束。


2. 小球新建文件夾,文件夾下面創建 py 文件、圖片文件,然後我們開始編寫代碼。本篇用的是圖片,可以改成畫出來的圓形。

接下來,編寫基礎代碼:

import pygame, sys
from pygame.locals import *

# 初始化 pygame
pygame.init()
screen = pygame.display.set_mode([800, 700])

while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
pygame.display.flip()

創建一個專門控制小球的類,用來給定小球的樣式。得到小球的矩形選框,然後獲得獲得小球矩形選框的左側與頂部的邊緣,還有小球的移動速度。
# 創建球類
class Myballclass(pygame.sprite.Sprite):
# 給出圖矩形速度並給定對應的值
def __init__(self, image_file, speed, location):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load(image_file)
self.image = pygame.transform.smoothscale(self.image, (80, 70))
self.rect = self.image.get_rect()
self.rect.left, self.rect.top = location
self.speed = speed

# 球類給定值
myball = Myballclass(r'football.png', ball_speed, [10, 20])
# 刷新時間
time = 30
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
screen.blit(myball.image, myball.rect)
pygame.display.flip()

現在開始讓球運動起來並進行反彈,當小球移動到最邊緣時速度取反(這部分寫在球類中,另外通過 self 來表示類的屬性)。
# 球的移動
def ball_move(self):
self.rect = self.rect.move(self.speed)
# 控制小球在遊戲界面內
if self.rect.left < 0 or self.rect.right > screen.get_width():
self.speed[0] = -self.speed[0]
if self.rect.top <= 0:
self.speed[1] = -self.speed[1]

類需要編寫結束函數。仍然讓小球不斷運動,然後判斷遊戲結束,並對遊戲結束時要顯示的字進行處理。
 # 遊戲結束
def over(self):
self.rect = self.rect.move(self.speed)

# 當小球底部大於界面高度時判定遊戲結束
if self.rect.bottom > screen.get_height():
# SysFount 從系統字體中創建一個font對象(字體樣式, 大小)
font = pygame.font.SysFont('宋體', 40)

# render 在新的surface上繪製文本(文本, 抗鋸齒, 顏色, 背景)
text_surface = font.render(u"Game Over", True, (0, 0, 255))
screen.blit(text_surface, (screen.get_width() // 2, screen.get_height() // 2))
return 0

下部分,明天繼續!

AI悅創·推出輔導班啦,包括「Python 語言輔導班、C++輔導班、算法/數據結構輔導班、少兒編程、pygame 遊戲開發」,全部都是一對一教學:一對一輔導 + 一對一答疑 + 布置作業 + 項目實踐等。QQ、微信在線,隨時響應!V:Jiabcdefh

黃家寶丨AI悅創

隱形字

攝影公眾號「悅創攝影研習社」

在這裡分享自己的一些經驗、想法和見解。

曾經要給我讚賞的人兒,還在不?

相關焦點

  • 06-pygame彈球遊戲(下)
    「閱讀本文大概需要6分鐘」前面我們講了一個小實戰,接下來呢,我們來繼續把這個彈球小實戰寫完。上一篇連結:05-pygame彈球遊戲(上) 接下來,我們來完成接杆的代碼。< 0 or self.rect.right > screen.get_width(): self.speed[0] = -self.speed[0] if self.rect.top <= 0: self.speed[1] = -self.speed[1] # 遊戲結束
  • pygame遊戲常用方法
    python做2d遊戲,用的最多的就是pygame庫,雖然比較老了,但是非常經典。
  • pygame教程(八):數字華容道遊戲
    前言前兩章我們學習了遊戲的初步實戰,利用所學的知識編寫了一個記憶迷宮小遊戲,較綜合地練習了用pygame開發遊戲的流程及相關的知識
  • 從零開發一個小遊戲:PyGame入門
    在本教程中,我們將介紹 PyGame 的基本邏輯和衝突檢測,以及如何在屏幕上繪圖和將外部文件導入到遊戲中。下一節,我們將介紹遊戲的主循環,它將確保只有在我們給它正確的輸入時程序才會退出。遊戲主循環遊戲主循環/事件循環是所有操作發生的地方。在遊戲過程中,它不斷的更新遊戲狀態,渲染遊戲畫面和收集輸入指令。創建循環時,需要確保我們有辦法跳出循環,退出應用。為此,我們將同時介紹一些基本的用戶輸入指令。
  • 最近很火的抖音彈球遊戲叫啥名 抖音彈球遊戲攻略
    最近很火的抖音彈球遊戲叫啥名 抖音彈球遊戲攻略 抖音最近很火的彈球遊戲你玩過嗎?
  • 用pygame實現一個小遊戲——
    下面拿一個遊戲窗口界面截圖來具體說明一下遊戲規則(準備好感受撲面而來的清奇畫風了嗎)。遊戲窗口截圖主角色最左側中間位置的魚就是我們控制的角色。")           # 健康值橫條healthimg = pygame.image.load("pic/health.png")gameover = pygame.image.load("pic/gameover.png")             # 遊戲結束判定輸贏後顯示的圖片youwin = pygame.image.load("pic/youwin.png
  • turtle製作遊戲秘籍之一
    這是因為如果不徹底刪除自己,那麼在Python的tkinter畫布上的項目會越來越多,那麼程序會越來越卡,最後慢如蝸牛了。這可讓想用Python海龜畫圖模塊製作遊戲的小夥伴們情以何勘!Python海龜畫圖模塊並沒有提供讓海龜自毀的機制。
  • 好玩的彈球遊戲推薦:彈球遊戲可不只有最強彈一彈哦!
    彈球遊戲是現在最火爆的微信小遊戲小程序種類之一,《最強彈一彈》就是這類遊戲的代表,不過好玩的彈球遊戲可不只有《最強彈一彈》哦!今天小編就為大家推薦幾款好玩的彈球遊戲,他們有各自的微創新和小驚喜,相同點是同樣的根本停不下來!
  • 用Pygame和Python做遊戲-從入門到精通(1)
    OK,讓我們開始吧~Pygame的歷史:Pygame 是一個利用SDL庫的寫就的遊戲庫,SDL呢,全名Simple DirectMedia Layer,是一位叫做Sam Lantinga的大牛寫的,據說他為了讓Loki(致力於向Linux上移植Windows的遊戲的一家大好人公司,可惜已經倒閉,唉好人不長命 啊……)更有效的工作,創造了這個東東。
  • 消失的遊戲:三維彈球
    說起三維彈球,大家一定都不陌生,因為他是最早WINDOWS XP上的經典遊戲,火妹科技的小編以前也是玩過的,但是卻沒有細玩,甚至是沒有玩通關過,現在想想都覺得可惜,因為現在都是WIN10普及,XP系統已經基本消失了,今天火妹科技只是想和大家聊一聊當初這款很火的遊戲。
  • Toby 的 Pygame 學習筆記 | 初識Pygame​及隨書代碼下載推薦!
    比如例子:import pygamefrom pygame.locals import *white = 255,255,255blue = 0,0,200pygame.init()screen = pygame.display.set_mode((600,500))myfont = pygame.font.Font
  • 上世紀經典「彈球遊戲」的網際網路復興之路
    但世界上最大的彈球公司也是這麼想的。大約五年前,Jay Adelson在和十幾歲的兒子一起修復一臺老式彈球機時,獲得了一個新啟發。2004年,Adelson與他人共同創辦了社交新聞網站Digg。他曾與兩位朋友Brian O 'Neill和Ron Richards討論過如何將彈球機連接到網際網路上。
  • Faker直播玩的彈球遊戲叫什麼 李哥彈球小遊戲下載地址
    Faker直播玩的彈球遊戲叫什麼 李哥彈球小遊戲下載地址 大魔王Faker李哥最近在直播的時候玩的彈小球的遊戲叫什麼名字呢,這是一款考驗反應能力的遊戲,不少玩家看到李哥直播玩的小遊戲
  • 《彈球王者》怎麼玩 遊戲特色介紹
    導 讀 微信彈球王者怎麼玩,怎麼獲得高分,本次為您帶來微信彈球王者玩法介紹。
  • 好評率95%,這款遊戲把三維彈球做出了惡魔城的味道
    不過《尤庫的小島速遞》主要的特點不是美術,也不是製作陣容,它神奇的地方就是將我們熟悉的平臺遊戲和彈球遊戲結合了起來。這就像是牛排上撒跳跳糖,雖然你可能嘴上會說這是黑暗料理,但其實心裡已經在琢磨它是什麼味兒了。
  • 用pygame回顧飛機大戰
    遊戲窗口建立及所需函數簡要說明import osimport timeimport pygame# 屏幕寬度SCREEN_WIDTH = 500# 屏幕高度SCREEN_HEIGHT = 250# 圖片絕對路徑IMG_PATH = os.path.join
  • Steam喜加一:多人彈球遊戲《Kabounce》 好評率91%
    Steam平臺今天推出了全新的喜加一福利,從今日起至6月25日凌晨,玩家們可以免費領取原價49元的多人彈球遊戲《Kabounce》,本作支持簡體中文,好評率91%。  Steam地址>>
  • 抖音彈球遊戲叫什麼名字?抖音彈球遊戲介紹[多圖]
    抖音彈球遊戲有很多,一款小球不斷前進不算彈起來的遊戲叫什麼名字?在抖音上看到這款遊戲的時候就覺得非常有意思,但是卻不知道遊戲的名字,這是什麼遊戲?怎麼玩?下面給大家介紹介紹這款彈力球遊戲,看看這款十分火爆的遊戲究竟有什麼魅力,吸引這麼多的人。
  • Steam限時免費喜加一遊戲kabounce 快節奏的彈球遊戲
    Kabounc是一款有著非常快節奏的多人彈球遊戲,玩家可以控制彈球讓你的彈球有著飛快的速度與動力。  這款遊戲的特點在於你可能和玩家們一起聯機對抗,該遊戲最多支持8人聯機。 同時,這款遊戲非常簡單容易上手,同時快節奏與刺激的遊戲方式也讓不少玩家給出好評。 遊戲中自帶中文系統,因此不必擔心看不懂。
  • 《三維彈球2FX》:布局逼真精緻 場景華麗的彈珠遊戲
    《三維彈球》(3D Pinball)是Windows XP系統附帶的一款使用鍵盤操作的彈珠遊戲,相信使用過XP系統的玩家們都對它不陌生。而今天我們要給大家介紹的是一款名叫《三維彈球2FX》(Pinball FX2 )的彈珠遊戲,它們的玩法大致一樣,只不過後者將彈珠遊戲搬入了VR的世界,使其更加身臨其境。