extends Area2D @export var speed = 400 var screen_size # Called when the node enters the scene tree for the first time. func _ready(): screen_size = get_viewport_rect().size # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): var velocity = Vector2.ZERO if Input.is_action_pressed("move_right"): velocity.x += 1 if Input.is_action_pressed("move_left"): velocity.x -= 1 if Input.is_action_pressed("move_up"): velocity.y -= 1 if Input.is_action_pressed("move_down"): velocity.y += 1
皆さんこんにちは、私はペルー出身です。ラテンアメリカのこの素晴らしいビデオ ゲーム エンジンが世界のこの地域で使用されていることを嬉しく思います。 続けてください、幸運を祈っています
「最近Godotが話題だよね」 なぜ話題になっているのか言わないところに、Un◯tyへの優しさを感じました(笑)
基本的な使い方が学べた気がします。
良い動画をありがとうございました!
無茶苦茶分かりやすいです!
ありがとうございます!!
英語のチュートリアルのオリジナル作者として GDQuest について言及する価値はあったと思います
13:54 で追加したスクリプトはどこに何と言う名前で保存されたんですか?それと拡張子という概念はあるのでしょうか
「ノードにスクリプトをアタッチする」のウィンドウの中に
「パス」という欄があります
ここに書かれているパスに、保存されています。
動画ではres://main.gdとなっていますので
プロジェクトフォルダの直下に、main.gdという名前でスクリプトが保存されている
という意味になります。
もしフォルダの中に入っていたら
res://フォルダ名/main.gdのようなパス名になります
拡張子は.gdでGodotScriptを表しています。
@@logic-lab 丁寧にありがとうございます!左上のMainシーン(型:ノード)とファイルシステムのmain.gdとmain.tscnが頭の中でごっちゃになってました。(私はUnity等も経験ないので(?
@@touroreo2711 はじめは分かりづらいですよね><
わたしもGodotEngineはまだまだ勉強中なので
いっしょにがんばりましょう
未だに4.0の日本語のチュートリアルがver3っぽくて色々破壊的変更あるのに変わってないから英語のリファレンスと行き来しなきゃ正常に動作しないの早めに直してほしいね
今更ながら失礼します。動画を拝見して自分もチュートリアルに取り組んでみたところ、他の方と同じく17:10のところで何も表示されなくなりました。同コメントの対策手段から様々な場所にブレイクポイントを置いて一時停止をさせたところ、Mainシーンの_readyメソッドが読み込まれていないことがわかりました(同メソッドのnew_game())の行にブレイクポイントを置いたところ一時停止せず)。解決のためのご意見を頂けると恐縮です。バージョンは4.1.3です。
追記 現在のシーンを実行、から再生するときちんと動作しました。普通に再生ボタンを押すとやはり何も映りません
追記2 また、実行できるようになると、敵の出現位置が外周ではなく一回り小さい四角形であることもわかりました。
ビューポート等プロジェクト設定を再確認しましたが、間違っている点はありませんでした。
正直わけがわかりません。
@@Noob-wv9ju すでに他のシーンをメインシーンに設定しているかもしれません。ファイルシステムドックの main.tscn を右クリックして「メインシーンとして設定」を選択してみてください。
こっちのゆっくりは、ケンカしないんだな。
スクリプト内の各パラメータの役割なども説明があるとありがたいです
すみません、hide()で隠したプレイヤーを再度出現させるプログラムはどこですか?
17:08 のテストで自キャラと敵が全く出てきません。
show()で表示させることができます
@@logic-lab ありがとうございます!試してみます
できませんでした。動画を何度か見直しチェックしましたが間違いを見つけられませんでした。
StartTimerあたりにミスがありそうですが、エラーもないので手がかりがありません。
@@iron-divider ソースコードの行数が書いてあるところをクリックするか
F9ボタンで一時停止マークをつけられるので
気になるところでストップさせてみてください。
ストップさせた状態で
シーンドック(ツリーが表示されているところ)の
「リモート」「ローカル」と書かれた部分を
「リモート」にしてみて下さい
現在使われているノードが表示されるので
プレイヤーや敵などをクリックして
インスペクターからパラメーターをチェックして
座標やVisibleがどうなっているか確認してみると
なにかわかるかもしれません。
また、シグナルが接続されているかどうかも
もう一度チェックしてみて下さい。
画面の左下方面にあるファイルシステムのタグにあるリストの中にmain.tscnがあるはずですのでそれを右クリックしてメインシーンに設定してください
今ごろすみません。
17:10で以下のようなエラーがでます。
バージョンは4.2.1です。
main.gd:35 @ _on_mob_timer_timeout(): Node not found: "MobPath/MobSpawnLocation" (relative to "/root/Main").
MobPath/MobSpawnLocation
ノードが見つからないというエラーがでているので
Mainの子にMobPathノードがあるか
MobPathノードの子にMobSpawnLocationノードがあるかをチェックして下さい。
名前が間違っている場合もエラーになってしまうので
ノードの名前と、パスの名前が一致しているかもチェックしてみて下さい。
親子関係が間違っているときもエラーになってしまいます。
ほかのノードの子に入っていないかをチェックしてみて下さい
敵が変なところから生成されるんですけどこれはどういうことなんでしょうか?
変な所というのは、たとえばどこからでしょう?
Pathでかこんだ所から生成されるはずなので
パスの囲み方をチェックしてみて下さい
C#やC++では出来ない感じですかね?
GodotEngineはC#やC++も使えます!
GDスクリプトよりも高速なので、経験者だとそちらのほうがいいかもしれませんね。
外部エディタを別途用意する必要があります
docs.godotengine.org/ja/4.x/tutorials/scripting/c_sharp/c_sharp_basics.html
ただC#で開発している人が少ないので、参考にできるサンプルが少ないという欠点はあります
@@logic-lab なるほどですね…
教えていただきありがとうございます!C#で作成しようとおもいます!
すみません 17:07 のテストで実行してもデバッグ用のウィンドウが応答しなかったりキャラクタが一切出てきません
特にエラーは出てきてないのですがすべてのスクリプトの func _process(delta): の上に @warning_ignore("unused_parameter")
func _process(delta): という警告が出てきました
原因はなんでしょうか?
すでに他のシーンをメインシーンに設定しているかもしれません。ファイルシステムドックの main.tscn を右クリックして「メインシーンとして設定」を選択してみてください。
また、警告は_process内でdeltaを使ってないので出ていると思います。
delta を _deltaに書き換えると消えます。
プロジェクトを再生すると、なぜか応答なしになってしまいます
実行画面がグレーになってしまうということでしょうか?
ファイルシステムドックの main.tscn を右クリックして「メインシーンとして設定」を選択してみてください。
切実なお願いです。
Godot の日本コミュニティ(非公式)から不当に永久追放されたため、新しいゲームクリエイターコミュニティを作ってください。
Discordのコミュニティですかね?
同じくGodotterの集いというDiscordサーバーがあり、こちらも活発に活動がありますので覗いてみてはいかがでしょうか。progsha.org/godotter.html
Discord鯖はそれぞれコミュニティのルールがきまっているので、ルールをしっかり読んでおけば大丈夫かなと思います。
(不当にと思うかもしれませんが、あくまで鯖缶さんが決めることなので…)
@@logic-lab そちらからも理由なく永久追放されています。
今後私が多様性を尊重する新しいゲームクリエイターコミュニティを作りますので、気にせずよろしくお願いします。
調べてみたら正当な理由で草
@@ITatara-gw6vf どこが正当なのですか?社会が正当だと思っているだけじゃないですか?
@@logic-lab 下に現れた揚げ足取りに注意してください。私は本当に不当な理由でBANされています。私のチャンネルの投稿に彼による中傷コメントが来ましたので、コメントの非表示を検討してください。
extends Area2D
@export var speed = 400
var screen_size
# Called when the node enters the scene tree for the first time.
func _ready():
screen_size = get_viewport_rect().size
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
var velocity = Vector2.ZERO
if Input.is_action_pressed("move_right"):
velocity.x += 1
if Input.is_action_pressed("move_left"):
velocity.x -= 1
if Input.is_action_pressed("move_up"):
velocity.y -= 1
if Input.is_action_pressed("move_down"):
velocity.y += 1
if velocity.length() > 0:
velocity = velocity.normalized() * speed
$AnimatedSprite2D.play()
else:
$AnimatedSprite2D.stop()
position += velocity * delta
position = position.clamp( Vector2.ZERO , screen_size )
ここまで書いたんですけど
アニメーションはするけどキャラが動かないです...
この部分が、elseの中に入ってしまっています
position += velocity * delta
position = position.clamp( Vector2.ZERO , screen_size )
elseの外側に書いてください(タブをひとつ消す)
@@logic-lab 出来ました〜!
ほんとにありがとうございます!!