mieki256's diary



2020/11/14() [n年前の日記]

#2 [godot] Godot Engineでプレイヤーをカーソルキーで動かす

Godot Engine 3.2.3 x64 を使って3D表示の簡単なシューティングゲームっぽいものを作る。

今回はプレイヤーのスクリプトを書いて、プレイヤーキャラをカーソルキーで動かしてみる。

スクリプトファイルを編集。 :

Playerシーンを開いて、Playerノード名の横のスクリプトアイコンをクリック。これでスクリプトエディタが開かれて編集できるようになる。

3d_tuto04_move_player_ss01.png


以下の内容を記述。

_Player.gd
extends KinematicBody

const SPEED = 32
var velocity = Vector3()

func _ready():
    pass # Replace with function body.

#func _process(delta):
#   pass

func _physics_process(delta):
    # move
    velocity = Vector3()
    if Input.is_action_pressed("ui_right"):
        velocity.x = 1
    elif Input.is_action_pressed("ui_left"):
        velocity.x = -1
    if Input.is_action_pressed("ui_down"):
        velocity.z = 1
    elif Input.is_action_pressed("ui_up"):
        velocity.z = -1
    
    # Do not multiply by delta when using move_and_slide()
    velocity = velocity.normalized() * SPEED
    move_and_slide(velocity)

簡単に説明すると…。
  • KinematicBodyノードを使ってる場合は、_process(delta) ではなく _physics_process(delta) の中に移動処理等を書く。
  • Input.is_action_pressed("ui_right") で、カーソルキーの右キーが押されているか判別できる。
  • move_and_slide(velocity) で velocity の方向に移動する。delta は掛けなくてよい。

Mainシーンを開いて実行してみる。



カーソルキーを押して前後左右に動かせるようになった。ただ、画面の端を超えてしまってもそのまま動き続けてしまう…。そのあたりの補正処理は後で入れることにする。

次回は背景に相当するシーンを作ってみたい。

以上です。

過去ログ表示

Prev - 2020/11 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project