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遊戲引擎
- Redis - 介紹與使用場景Redis
- LIBGDX遊戲引擎平臺介紹與搭建遊戲引擎
- SpriteSheet精靈動畫引擎動畫
- 網路庫與Rxjava2結合常見使用場景介紹RxJava
- web自動化測試框架-03 介紹標籤,背景,場景,場景大綱Web框架
- 輪換代理介紹及適用場景介紹
- 地圖投影系列介紹(二)_ 地理座標系地圖
- 區塊鏈信用機制與應用場景介紹區塊鏈
- Zookeeper 介紹及典型應用場景
- Python 精靈模組簡介_python sprites module introducePython
- Hbase原理的介紹和使用場景分析
- 雲端計算日常運用場景介紹!
- Maven精選系列--介紹與安裝Maven
- Python 精靈模組_迷宮房間類遊戲Python遊戲
- 【RAC】Oracle RAC上線測試場景介紹Oracle
- 遊戲引擎介紹,架構,設計及實現遊戲引擎架構
- GCanvas 渲染引擎介紹GCCanvas
- js獲取滑鼠在頁面中的座標簡單介紹JS
- 場景放大縮小後的精靈移動和旋轉問題
- Fiddler(一)Fiddler介紹及應用場景
- TokuDB的優缺點和適用場景介紹
- Spark Streaming 的原理以及應用場景介紹Spark
- 座標下降與梯度下降梯度
- 幽靈選單介紹;
- 搜尋引擎框架介紹框架
- MySQL·引擎特性·InnoDBChangeBuffer介紹MySql
- Python標準庫系列之模組介紹Python
- 遊戲與遊戲引擎遊戲引擎
- RabbitMQ的應用場景以及基本原理介紹MQ
- RabbitMQ 的應用場景以及基本原理介紹MQ
- 智慧雲分支(Cloud Smart Branch)場景和解決方案介紹Cloud
- Swift - final關鍵字的介紹,以及使用場景Swift
- 釘釘協同引擎與應用場景技術探索
- 阿里雲機器學習 AutoML 引擎介紹與應用阿里機器學習TOML
- Spring Data JPA系列3:JPA專案中核心場景與進階用法介紹Spring
- 圖觀™引擎開發小技巧——三維場景地標點繪製
- Python 2.* 標準庫簡介Python