[過去ログ] 【軽量】godot engine【無料】 part3 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
94: 名前は開発中のものです。 [sage] 2024/03/04(月) 18:58:36.71 ID:maXrH/rV(1) AAS
点追加→描画→クリアじゃなくて最初にクリアしてから点を追加する様にすればいいんじゃない?
それかLine2dは使わずdraw_line()で描くとか
95
(1): 名前は開発中のものです。 [sage] 2024/03/04(月) 21:05:07.83 ID:MRQbhd4x(4/4) AAS
ほぼ正解なのに後一考が足りないのが惜しい
clear_points()が何をする命令かを理解し
処理の最後にclear_points()するとどうなるのか考えれば自明だと思うのだがな
96: 名前は開発中のものです。 [] 2024/03/05(火) 05:33:04.51 ID:NetOoeu2(1/3) AAS
リファレンス見直してみます ありがとう
消し方の部分ですね
97
(1): 名前は開発中のものです。 [] 2024/03/05(火) 06:35:57.44 ID:NetOoeu2(2/3) AAS
godotってaiインテリセンスとかないのですかね?
visual studioのあれは楽すぎてビビった記憶があります
先の先まで先読みしてくれるので
98: 名前は開発中のものです。 [] 2024/03/05(火) 12:37:06.97 ID:NetOoeu2(3/3) AAS
>>95
こんなふうに描画関数内の削除ではなく、フレーム内で削除するようにしたらうまくいきました。
どうもコードの流れが分かってないみたいです
画像リンク

図にしてみましたがこれの違いを言語化出来ないでしょうか?

外部リンク:ideone.com
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("描画")
99
(1): 名前は開発中のものです。 [] 2024/03/05(火) 13:32:23.84 ID:LGdF4KOk(1) AAS
図表が何の例なのかが判らないのでそれとは違う話をする
GUIアプリはライフサイクルに従って動作する
Godotの良い例が見つからなかったのでUnityのライフサイクルを元に話を進める
外部リンク[html]:docs.unity3d.com
図中の処理を以下の様に読み替えて欲しい
Awake=_init()
Start=_ready()
FixedUpdate=_physics_process()
OnMouseXXX=_input()
Update=_process()

ここで注視するのは画面描画のタイミングでそれは各種Renderingのステージで行われる
Initialization:初期化
Physics:物理演算
Input events:入力反映
Game logic:ゲーム処理
を経て、それらの処理で作られた描画データを元に描画が行われる
描画後は物理演算から繰り返し
これはUnityの例なのでGodotにおいては実行順が異なる可能性がある
100
(1): 名前は開発中のものです。 [sage] 2024/03/05(火) 14:58:24.96 ID:2jT49Fhn(1) AAS
そもそもdraw_to_cursor内に描画処理は入ってない
add_pointは後から_draw()で描画される事になる線を構成する点を追加するというだけ
101
(1): 名前は開発中のものです。 [sage] 2024/03/05(火) 16:14:33.95 ID:WbtfMd0/(1) AAS
>>97
vscode経由でやればできるにはできるけど
gdscriptだと実用レベルのコードはほぼでないよ
102: 名前は開発中のものです。 [] 2024/03/06(水) 06:26:28.33 ID:0YKHfOtY(1/5) AAS
>>99
返信遅れてごめんなさい
寝不足でずっと寝てました

>>100
あっそうか、マウスクリック時にしか描画されないという点が問題だったんですね

>>101
unity c#より記述量少ないからなくてもいいかもですね
103: 名前は開発中のものです。 [sage] 2024/03/06(水) 06:39:24.06 ID:xC/Ga180(1) AAS
自分は同じような内容列記するときだけ使ってるかな
APIの使い方が間違ってたり、文法がおかしかったりと普段使いはむしろ邪魔
104: 名前は開発中のものです。 [] 2024/03/06(水) 06:45:51.37 ID:0YKHfOtY(2/5) AAS
放物線あと2日くらいで完成させる(*´ω`*)
105
(1): 名前は開発中のものです。 [] 2024/03/06(水) 06:49:31.06 ID:0YKHfOtY(3/5) AAS
インテリコードっていう呼び名でしたっけね
106: 名前は開発中のものです。 [] 2024/03/06(水) 17:57:53.24 ID:0YKHfOtY(4/5) AAS
is_mouse_button_pressedはありますけど、
マウスにjust pressed系はないんですかな?
107: 名前は開発中のものです。 [] 2024/03/06(水) 18:12:02.85 ID:0YKHfOtY(5/5) AAS
あっ、action pressのほうでやるんすね ごめんなさい(*´ω`*)
108: 名前は開発中のものです。 [sage] 2024/03/06(水) 18:15:22.40 ID:mNCkxtfo(1) AAS
そもそもjust pressedはactionにしかない
109
(1): 名前は開発中のものです。 [] 2024/03/07(木) 14:31:20.08 ID:pWb+fA4v(1) AAS
>>105
IntelliCodeはGDScriptに対応してないね
VSCodeでGDScriptを書いても無理だわ
110: 名前は開発中のものです。 [sage] 2024/03/07(木) 15:51:23.86 ID:qvtd0tl6(1) AAS
今日仕入れた豆知識
ランダムでtrueかfalseの2択を使いたい時
 var random : bool = randf() > 0.5
この1行でOK
111: 名前は開発中のものです。 [] 2024/03/08(金) 10:20:06.16 ID:G13/EPQ6(1) AAS
randiの方が早いよ
112
(1): 名前は開発中のものです。 [sage] 2024/03/08(金) 15:09:31.48 ID:4aurAYnx(1) AAS
速度詰めるなら(randi() & 1) == 1;とか?
113
(1): 軌道予測 [] 2024/03/08(金) 19:43:07.94 ID:vGL0nvHr(1) AAS
軌道予測の者です
考え方として、予測軌道を描きたい場合、軌道予測用のオブジェクトを一度投げないと、ポイントを取得出来ないのではないでしょうか?
物理を使わない場合、方角と力の値があれば、そこから事前に予測出来るのでしょうか?
方法を思いつかなかったので質問させてください

>>109
ですよね(*´ω`*)
114: 名前は開発中のものです。 [sage] 2024/03/08(金) 23:32:43.87 ID:Eb0+PHr0(1/2) AAS
>>69
69(4): 名前は開発中のものです。 [sage] 2024/03/01(金) 17:44:41.28 ID:WaedCGGn(1) AAS
軌道予測はgodotの物理だと予測用のオブジェクト用意した上で実際に動かして軌跡保存してみたいな手法はあるみたい?
外部リンク:github.com
>>88
88(1): 名前は開発中のものです。 [sage] 2024/03/04(月) 14:39:30.96 ID:MRQbhd4x(1/4) AAS
>>69
コードをコピペして動かしてみた
予測軌道は描けたが実際のRigidBodyの挙動とは同じにならなかったので調整は必要そう
書かれていない初期設定部分で正しく調整されているのかも知れない
物理エンジンは自分の思い通りに動かない事が多くて悩ましい
の解決法が判った
予想通り初期設定が足りていなかった
RigidBody2Dのcustom_integratorを有効にする事できっちり同じ挙動になった
衝突まで出来たが反射が出来てないので課題は残る
115: 名前は開発中のものです。 [sage] 2024/03/08(金) 23:52:05.37 ID:Eb0+PHr0(2/2) AAS
>>112に補足
速さを求めるなら==は要らない
bool型に代入すると型変換で遅くなるので代入するならint型
var random:int = randi() & 1
しないなら
if randi() & 1:
pass
だけどゲームで使う分には誤差だから判りやすい記述が良いと思う
116
(1): 名前は開発中のものです。 [sage] 2024/03/09(土) 00:57:45.63 ID:TY4JoG/O(1/3) AAS
>>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 #座標に経過時間分の運動量を加算

リアルタイム制のゲームは座標計算→描画を繰り返し行うのが基本
前回の座標計算からの経過時間を元に計算を行う
概ね運動量に経過時間を掛ける事で求められる
117: 名前は開発中のものです。 [sage] 2024/03/09(土) 01:59:11.51 ID:TY4JoG/O(2/3) AAS
言い回しは運動量dじゃなく速度velocityとした方が良いかな?
118: 軌道予測 [] 2024/03/09(土) 06:47:06.36 ID:HzeElu7U(1/3) AAS
初速、方向ベクトル、力、時間の4要素がおそらく必要なんですね

運動方程式物理の本買ったんですけど、数学への抵抗感なくなればいいなぁ(*´ω`*)
1-
あと 884 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.022s