當前位置: 妍妍網 > 碼農

Python 我的世界遊戲(3D)

2024-02-10碼農

大家好!今天給你們帶來了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 FirstPersonControllerapp = Ursina()#建立玩家控制器player = FirstPersonController()player.gravity = 0.5#設定一些重力效果#建立天空背景sky = Sky(texture='sky_sunset')#建立地面方塊數量ground_size = 15for 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: 移動速度。