[過去ログ]
【軽量】godot engine【無料】 part3 (1002レス)
【軽量】godot engine【無料】 part3 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
93: 名前は開発中のものです。 [] 2024/03/04(月) 18:19:56.65 ID:Y8uyU2JR extends Node2D var line2d_node:Line2D var mouse_pos func _ready() -> void: line2d_node = get_node("Line2D") func draw_to_cursor(): for i in range(1): # 点を打つ処理 var line_point = self.position line2d_node.add_point(self.position) line2d_node.add_point(mouse_pos) print("draw") line2d_node.clear_points() 連投すみません 数時間やって解決出来なかったので質問させてください 上で放物線の質問をしたものです。 自キャ
ラを起点としてマウス位置にline2dを伸ばしたいのですが、描画されません。 画像のように線を1本だけ描きたい感じです clear_points関数がなければ描画されるので、この部分の処理がまずいのだと思います。 inputでdraw_to_cursorを実行しているので、マウスを動かしたときに処理が走りますが、瞬時に消えてしまうから問題なのだと思います。 しかし、process内でやってもすぐ消えてしまいます(ラインが描画されない)。 sssp://o.5ch.net/22nar.png http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/93
94: 名前は開発中のものです。 [sage] 2024/03/04(月) 18:58:36.71 ID:maXrH/rV 点追加→描画→クリアじゃなくて最初にクリアしてから点を追加する様にすればいいんじゃない? それかLine2dは使わずdraw_line()で描くとか http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/94
95: 名前は開発中のものです。 [sage] 2024/03/04(月) 21:05:07.83 ID:MRQbhd4x ほぼ正解なのに後一考が足りないのが惜しい clear_points()が何をする命令かを理解し 処理の最後にclear_points()するとどうなるのか考えれば自明だと思うのだがな http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/95
96: 名前は開発中のものです。 [] 2024/03/05(火) 05:33:04.51 ID:NetOoeu2 リファレンス見直してみます ありがとう 消し方の部分ですね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/96
97: 名前は開発中のものです。 [] 2024/03/05(火) 06:35:57.44 ID:NetOoeu2 godotってaiインテリセンスとかないのですかね? visual studioのあれは楽すぎてビビった記憶があります 先の先まで先読みしてくれるので http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/97
98: 名前は開発中のものです。 [] 2024/03/05(火) 12:37:06.97 ID:NetOoeu2 >>95 こんなふうに描画関数内の削除ではなく、フレーム内で削除するようにしたらうまくいきました。 どうもコードの流れが分かってないみたいです https://imgur.com/a/GgVKnGF 図にしてみましたがこれの違いを言語化出来ないでしょうか? https://ideone.com/hZmhwc extends Node2D var line2d_node:Line2D var mouse_pos func _ready() -> void: line2d_node = get_node("Line2D") func _process(delta: float) -> void: mouse_pos = get_global
_mouse_position() line2d_node.clear_points() if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT): draw_to_cursor() func draw_to_cursor(): for i in range(1): # 点を打つ処理 var line_point = self.position line2d_node.add_point(self.position) line2d_node.add_point(mouse_pos) print("描画") http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/98
99: 名前は開発中のものです。 [] 2024/03/05(火) 13:32:23.84 ID:LGdF4KOk 図表が何の例なのかが判らないのでそれとは違う話をする GUIアプリはライフサイクルに従って動作する Godotの良い例が見つからなかったのでUnityのライフサイクルを元に話を進める https://docs.unity3d.com/Manual/ExecutionOrder.html 図中の処理を以下の様に読み替えて欲しい Awake=_init() Start=_ready() FixedUpdate=_physics_process() OnMouseXXX=_input() Update=_process() ここで注視するのは画面描画のタイミングでそれは各種Renderingのステージで行われる In
itialization:初期化 Physics:物理演算 Input events:入力反映 Game logic:ゲーム処理 を経て、それらの処理で作られた描画データを元に描画が行われる 描画後は物理演算から繰り返し これはUnityの例なのでGodotにおいては実行順が異なる可能性がある http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/99
100: 名前は開発中のものです。 [sage] 2024/03/05(火) 14:58:24.96 ID:2jT49Fhn そもそもdraw_to_cursor内に描画処理は入ってない add_pointは後から_draw()で描画される事になる線を構成する点を追加するというだけ http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/100
101: 名前は開発中のものです。 [sage] 2024/03/05(火) 16:14:33.95 ID:WbtfMd0/ >>97 vscode経由でやればできるにはできるけど gdscriptだと実用レベルのコードはほぼでないよ http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/101
102: 名前は開発中のものです。 [] 2024/03/06(水) 06:26:28.33 ID:0YKHfOtY >>99 返信遅れてごめんなさい 寝不足でずっと寝てました >>100 あっそうか、マウスクリック時にしか描画されないという点が問題だったんですね >>101 unity c#より記述量少ないからなくてもいいかもですね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/102
103: 名前は開発中のものです。 [sage] 2024/03/06(水) 06:39:24.06 ID:xC/Ga180 自分は同じような内容列記するときだけ使ってるかな APIの使い方が間違ってたり、文法がおかしかったりと普段使いはむしろ邪魔 http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/103
104: 名前は開発中のものです。 [] 2024/03/06(水) 06:45:51.37 ID:0YKHfOtY 放物線あと2日くらいで完成させる(*´ω`*) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/104
105: 名前は開発中のものです。 [] 2024/03/06(水) 06:49:31.06 ID:0YKHfOtY インテリコードっていう呼び名でしたっけね http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/105
106: 名前は開発中のものです。 [] 2024/03/06(水) 17:57:53.24 ID:0YKHfOtY is_mouse_button_pressedはありますけど、 マウスにjust pressed系はないんですかな? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/106
107: 名前は開発中のものです。 [] 2024/03/06(水) 18:12:02.85 ID:0YKHfOtY あっ、action pressのほうでやるんすね ごめんなさい(*´ω`*) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/107
108: 名前は開発中のものです。 [sage] 2024/03/06(水) 18:15:22.40 ID:mNCkxtfo そもそもjust pressedはactionにしかない http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/108
109: 名前は開発中のものです。 [] 2024/03/07(木) 14:31:20.08 ID:pWb+fA4v >>105 IntelliCodeはGDScriptに対応してないね VSCodeでGDScriptを書いても無理だわ http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/109
110: 名前は開発中のものです。 [sage] 2024/03/07(木) 15:51:23.86 ID:qvtd0tl6 今日仕入れた豆知識 ランダムでtrueかfalseの2択を使いたい時 var random : bool = randf() > 0.5 この1行でOK http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/110
111: 名前は開発中のものです。 [] 2024/03/08(金) 10:20:06.16 ID:G13/EPQ6 randiの方が早いよ http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/111
112: 名前は開発中のものです。 [sage] 2024/03/08(金) 15:09:31.48 ID:4aurAYnx 速度詰めるなら(randi() & 1) == 1;とか? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/112
113: 軌道予測 [] 2024/03/08(金) 19:43:07.94 ID:vGL0nvHr 軌道予測の者です 考え方として、予測軌道を描きたい場合、軌道予測用のオブジェクトを一度投げないと、ポイントを取得出来ないのではないでしょうか? 物理を使わない場合、方角と力の値があれば、そこから事前に予測出来るのでしょうか? 方法を思いつかなかったので質問させてください >>109 ですよね(*´ω`*) http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/113
114: 名前は開発中のものです。 [sage] 2024/03/08(金) 23:32:43.87 ID:Eb0+PHr0 >>69 >>88の解決法が判った 予想通り初期設定が足りていなかった RigidBody2Dのcustom_integratorを有効にする事できっちり同じ挙動になった 衝突まで出来たが反射が出来てないので課題は残る http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/114
115: 名前は開発中のものです。 [sage] 2024/03/08(金) 23:52:05.37 ID:Eb0+PHr0 >>112に補足 速さを求めるなら==は要らない bool型に代入すると型変換で遅くなるので代入するならint型 var random:int = randi() & 1 しないなら if randi() & 1: pass だけどゲームで使う分には誤差だから判りやすい記述が良いと思う http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/115
116: 名前は開発中のものです。 [sage] 2024/03/09(土) 00:57:45.63 ID:TY4JoG/O >>113 >物理を使わない場合、方角と力の値があれば、そこから事前に予測出来るのでしょうか? できる 予測用のオブジェクトを投げなくても計算で求められるが RigidBodyがやってくれている計算と同等の処理は必要 ノードツリーにSprite2Dがあるとして以下のコードで右上方向に投げた場合の再現ができる var d:Vector2 = Vector2(500, -500) #初期運動量 func _physics_process(delta: float) -> void: d += Vector2(0, 980.0 * delta) #運動量に経過時間
分の重力加速度を加算 $Sprite2D.position += d * delta #座標に経過時間分の運動量を加算 リアルタイム制のゲームは座標計算→描画を繰り返し行うのが基本 前回の座標計算からの経過時間を元に計算を行う 概ね運動量に経過時間を掛ける事で求められる http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/116
117: 名前は開発中のものです。 [sage] 2024/03/09(土) 01:59:11.51 ID:TY4JoG/O 言い回しは運動量dじゃなく速度velocityとした方が良いかな? http://mevius.5ch.net/test/read.cgi/gamedev/1708131114/117
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 885 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s