🔰 物理碰撞範例 - 重力控制
階段1: 無重力狀態
🎦 範例影片
- 🏷️ 重點說明
-
設定舞台寬為800,高為800,並先新增方塊
-
加入新增事件函式-按下滑鼠時,包含原本的新增方塊程式,並將物體設定為滑鼠位置
-
測試不同的重力加速度。設定重力向上(重力加速度[0,800]),再測試無重力(重力加速度[0,0])
-
設定方塊的角速度(每秒轉幾度),先使用常數,再使用隨機模組,將角速度的數值隨機取數(-360~360)
📄 Py4t程式碼
from 物理模組 import *
import random as 隨機
舞台 = 物理引擎(800,800)
舞台.重力 = [0, 0]
def 按下滑鼠時(x, y):
物體 = 新增方塊()
物體.位置 = [x, y]
物體.角速度 = 隨機.randint(-360,360)
模擬主迴圈()
階段2: 重力搬運
🎦 範例影片
- 🏷️ 重點說明
-
使用事件處理函式-放開鍵盤時,裡面執行的是保持無重力狀態 ,再來是事件處理函式按下鍵盤時,將重力都設為向下
-
按向上鍵重力向上,按向下鍵重力向下。再加入按向右鍵重力向右,按向左鍵重力向左
-
建立搬運地形,控制重力,將物體搬到不同的位置
📄 Py4t程式碼
from 物理模組 import *
import random as 隨機
舞台 = 物理引擎(800,800)
舞台.重力 = [0, 0]
def 按下滑鼠時(x, y):
物體 = 新增方塊()
物體.位置 = [x, y]
物體.角速度 = 隨機.randint(-360,360)
def 放開鍵盤時(按鍵, x, y):
舞台.重力 = [0, 0]
def 按下鍵盤時(按鍵, x, y):
if 按鍵 == key.UP :
舞台.重力 = [0, 800]
if 按鍵 == key.DOWN :
舞台.重力 = [0, -800]
if 按鍵 == key.RIGHT :
舞台.重力 = [800, 0]
if 按鍵 == key.LEFT :
舞台.重力 = [-800, 0]
模擬主迴圈()
註:搬運地形需自行建立(操作如階段2影片)