python遊戲引擎ppb介紹(2)精靈、場景與座標
精靈(sprite)就是在螢幕上顯示的一切事物,場景(scene)可以簡單理解為螢幕,螢幕上的具體位置通過座標來表示。
靜態精靈
ppb中的精靈定義很有特色,非常簡單。它可以直接對應一個外部的png檔案。如果我們有這樣一個圖片,名字叫Target.png:
我們只需定義一個同名的類,無須任何實際的程式碼,即可成為一個靜態精靈:
class Target(ppb.Sprite):
pass
注意精靈的預設大小是1,這個1,不是一個畫素,而是一個座標單位,詳見下面場景與座標。
動態精靈
動態精靈的定義也很簡單,比如我們有下面一組圖片:
blob_0
blob_1
blob_2
blob_3
blob_4
blob_5
blob_6
一共七張,依次命名為blob_0~blob_6,我們只需定義一個精靈,並指定它的圖片序列如下:
class Blob(ppb.Sprite):
image = Animation("blob_{0..6}.png", 10)
其中最後一個引數10,含義是每秒10幀,它可以用來調節精靈運動的速度。
場景與座標
我們把場景簡單理解為精靈的舞臺,為了顯示精靈,只需把精靈加入到這個舞臺上即可。
def setup(scene):
scene.add(Blob(pos=(0, -3.5)))
for x in range(-4, 5, 2):
scene.add(Target(position=ppb.Vector(x, 3)))
精靈的座標,統一用向量(Vector)來表示。座標的單位,不是畫素,而是一個單位,這個單位的大小,由相機(camera)的設定來指定,預設狀態是寬度的1/25,即螢幕的寬度為25個單位,最左邊是-12.5,最右邊是12.5。數字的選擇大概也沒有什麼特別的理由,只是系統的一個預設而已。
在這段程式碼中我們在場景中放置了一個Blob精靈,位置(pos)定製在正中偏下的位置(0,-3.5),另外放置了5個靶子,位置分別是(-4,2)(-2,2)(0,2)(2,2)(4,2)。
程式碼展示了設定位置的兩種方式,設定pos/postion屬性,可以用一個元組,或者更明確地用一個向量(ppb.Vector)來表示。
完整程式碼如下:
import ppb
from ppb.features.animation import Animation
class Blob(ppb.Sprite):
image = Animation("blob_{0..6}.png", 10)
class Target(ppb.Sprite):
pass
def setup(scene):
scene.add(Blob(pos=(0, -3.5)))
for x in range(-4, 5, 2):
scene.add(Target(position=ppb.Vector(x, 3)))
ppb.run(title='小遊戲',setup=setup,resolution=(1280, 768))
執行效果是這樣:
本節教程到此為止,下次我們讓精靈動起來。
相關文章
- Godot Engine遊戲引擎 ① 製作玩家跳躍精靈和場景——KinematicBody2D、SpriteGo遊戲引擎
- LIBGDX遊戲引擎平臺介紹與搭建遊戲引擎
- Redis - 介紹與使用場景Redis
- web自動化測試框架-03 介紹標籤,背景,場景,場景大綱Web框架
- Python 精靈模組_迷宮房間類遊戲Python遊戲
- 遊戲與遊戲引擎遊戲引擎
- 輪換代理介紹及適用場景介紹
- Apache Doris設計思想介紹與應用場景Apache
- Python 精靈模組簡介_python sprites module introducePython
- matplotlib介紹&基本使用&座標系顯示調整
- 區塊鏈信用機制與應用場景介紹區塊鏈
- 介紹兩種遊標cursor與sys_refcursor
- 遊戲論·現實的媒介丨今天的這座靈劍山,與進擊的遊戲世代遊戲
- Maven精選系列--介紹與安裝Maven
- Hbase原理的介紹和使用場景分析
- Fiddler(一)Fiddler介紹及應用場景
- 惠普暗影精靈6遊戲本震撼首發遊戲
- 一文讀懂遊戲引擎:核心問題、適用場景與下一個十年遊戲引擎
- 【RAC】Oracle RAC上線測試場景介紹Oracle
- 雲端計算日常運用場景介紹!
- 幽靈選單介紹;
- 大世界遊戲製作:《幽靈行動·荒野》程式化技術介紹遊戲
- Shodan搜尋引擎介紹
- 搜尋引擎框架介紹框架
- Python pytorch 座標系變換與維度轉換PythonPyTorch
- 區塊鏈宇宙遊戲系統的開發與介紹區塊鏈遊戲
- Python學習之路2-列表介紹Python
- 簡單介紹下python2.x與python3.x的區別Python
- Steam標籤學:哪些tag下的遊戲更賣座?遊戲
- Spring Data JPA系列3:JPA專案中核心場景與進階用法介紹Spring
- python 精靈模組非常簡單的讓小朋友製作遊戲和動畫Python遊戲動畫
- 14.1 InnoDB 儲存引擎介紹儲存引擎
- RabbitMQ 的應用場景以及基本原理介紹MQ
- RabbitMQ的應用場景以及基本原理介紹MQ
- 智慧雲分支(Cloud Smart Branch)場景和解決方案介紹Cloud
- 遊戲場景中的光影設計遊戲
- 如何介紹你的遊戲,以使玩家覺得遊戲很酷?遊戲
- eyoucms標籤介紹