大家好!今天給你們帶來了python我的世界遊戲,可以移動也可以用空格跳躍,新增方塊,消除方塊等等。 Ursina是一個用於建立3D遊戲和視覺藝術計畫的Python框架。它以其簡單直觀的API和快速開發周期而聞名,使得即使是沒有太多編程經驗的人也能輕松上手。Ursina背後使用的是Panda3D遊戲引擎,這是一個功能強大的遊戲開發庫,但Ursina提供了一個更為簡化和容易理解的介面。
主要特點
易於上手 :Ursina的設計哲學是讓遊戲開發變得盡可能簡單。透過提供一個清晰、簡潔的API,它允許開發者快速地建立出原型和完成品。
靈活性 :雖然Ursina專註於簡化開發流程,但它仍然提供了足夠的靈活性,允許開發者建立復雜的遊戲邏輯和美麗的視覺效果。
內建工具 :Ursina內建了一系列的工具和元件,如3D模型、動畫、碰撞檢測、使用者輸入處理等,這些都是遊戲開發中常用的功能。
Python語言 :使用Python作為開發語言,這意味著你可以利用Python的簡潔語法和龐大的生態系,包括各種庫和工具。
安裝ursina庫:
pip install ursina
完整程式碼:
from ursina import *
from ursina.prefabs.first_person_controller import FirstPersonController
app = Ursina()
#建立玩家控制器
player = FirstPersonController()
player.gravity = 0.5#設定一些重力效果
#建立天空背景
sky = Sky(texture='sky_sunset')
#建立地面方塊數量
ground_size = 15
for i in range(-ground_size, ground_size):
for j in range(-ground_size, ground_size):
cube = Entity(model='cube', color=color.green, scale=(1,1,1), position=(i,0,j), texture='white_cube', collider='box')
definput(key):
if key == 'right mouse down':
#增加方塊
hit_info = raycast(camera.world_position, camera.forward, distance=3, ignore=(player,))
if hit_info.hit:
position = hit_info.entity.position + hit_info.normal
cube = Entity(model='cube', color=color.brown, scale=(1,1,1), position=position, texture='white_cube', collider='box')
elif key == 'left mouse down':
#消除方塊
hit_info = raycast(camera.world_position, camera.forward, distance=3, ignore=(player,))
if hit_info.hit:
destroy(hit_info.entity)
app.run()
簡要:
fov: 視場(Field of View),決定了視野的寬度。
Light類用於添加光源,改善場景的視覺效果。常見參數包括:
type: 光源的型別,如'directional'、'point'等。
color: 光源的顏色。
position: 光源的位置(對於點光源和聚光燈而言)。
texture: 天空的紋理。
gravity: 套用於控制器的重力值。
speed: 移動速度。