[過去ログ] 【軽量】godot engine【無料】 part3 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
279(1): 名前は開発中のものです。 [sage] 2024/04/23(火) 15:27:32.29 ID:K58WhwWv(3/5) AAS
>>272272(1): 名前は開発中のものです。 [] 2024/04/20(土) 11:57:25.68 ID:gSjSgOMM(1) AAS
一時的にスクリプトを停止出来ますか?
processをdisableしてもprintはされるみたいです
完全停止は出来ないがprocess_modeにdisableを指定した上で
動かれて困るメソッドの先頭に以下の一文でも足せば良いんじゃないかな?
if process_mode == Node.PROCESS_MODE_DISABLED: return
280: 名前は開発中のものです。 [] 2024/04/23(火) 19:08:20.21 ID:/jRBBB4p(4/4) AAS
>>278278(1): 名前は開発中のものです。 [sage] 2024/04/23(火) 15:16:36.49 ID:K58WhwWv(2/5) AAS
変数に代入して使うのが馴染みないかもだが
関係ない場所からの参照ができなくなるから>>274で求められた機能としては十分
使用する変数は大体最初に宣言するから一箇所にまとまるのでは?
関係ない場所から参照出来なくなるというのは、callが付与されることで、そのような効果があるということでしょうか?
>>279
どうも
disableでもおそらくreadyは動くみたいですね
281(1): 名前は開発中のものです。 [sage] 2024/04/23(火) 19:38:02.85 ID:K58WhwWv(4/5) AAS
ローカルで宣言した変数のスコープはローカルという普通の話
別にCallableでの特別処理とかではない
グローバルで宣言すればグローバルから扱える
_readyの様な初期化処理まで動かしたくないというなら自分は設計の見直しをする
必要なときにadd_childとqueue_freeすればprocess管理する必要がないのではないか?
282: 名前は開発中のものです。 [sage] 2024/04/23(火) 19:44:45.31 ID:nRUQyvbL(1/2) AAS
15歳のGodot教本クラファン、あれ支援してみようかなー
283: 名前は開発中のものです。 [sage] 2024/04/23(火) 20:12:37.57 ID:SVQG4/08(1) AAS
確か達成してた気するけどああいうの上乗せ倍プッシュで支援てできるんだっけ?いいんじゃね
284: 名前は開発中のものです。 [sage] 2024/04/23(火) 20:42:58.34 ID:nRUQyvbL(2/2) AAS
ぶっちゃけGodot全然わからんちんなんで
支援して、本貰って自分にシバキを入れたいって思いもある
おっちゃんが15歳に負けたくない><
285: 名前は開発中のものです。 [sage] 2024/04/23(火) 20:49:38.67 ID:K58WhwWv(5/5) AAS
始めるなら早い方が良いから完成待たずに既にあるのでやってみたら?
外部リンク:progsha.org
286: 名前は開発中のものです。 [sage] 2024/04/23(火) 23:25:40.86 ID:5HqoYOxs(1) AAS
3000円で紙の本と電子本両方もらえるならむしろ安いよね
良心的なクラファンだ
287: 名前は開発中のものです。 [] 2024/04/24(水) 04:23:26.66 ID:oxZnmf8P(1/2) AAS
>>281
なるほど 中で宣言するというだけですね
288: 名前は開発中のものです。 [] 2024/04/24(水) 20:15:21.72 ID:oxZnmf8P(2/2) AAS
倉庫番のロジックで分からないところがあるのでこっちで質問させてもらいます
マップは二次元配列で作成します
ただ、キャラクターの移動はvector2で行います
1マスの大きさが32であった場合、vector2の座標が32,0だとしたら、配列上ではarray[y0][x1]となりますよね。
こういった変換に便利な関数とかないでしょうか?
やりたいことを箇条書きにすると以下です
1:vector2の座標から配列上の座標を割り出す
2:キャラクターが移動したとき、配列上のキャラクター座標を移動させる(配列上の要素2がキャラとしてます)
289(1): 名前は開発中のものです。 [sage] 2024/04/24(水) 20:27:18.43 ID:PzjnMMaW(1) AAS
普通に割り算して切り捨てるだけでは
ものを1マス単位で動かさない前提なら1マス辺りの座標を1にして逆に見た目の方の座標を掛け算なりする方が楽
290: 名前は開発中のものです。 [sage] 2024/04/24(水) 22:41:11.22 ID:YL8z0NQ2(1) AAS
自分が便利なように関数かけばいいじゃないの
291(1): 名前は開発中のものです。 [sage] 2024/04/25(木) 00:19:55.34 ID:5JWtrSqN(1/4) AAS
昔の2Dゲーム機は基本的に背景をマップタイル(キャラクタージェネレータなどとも呼ばれる)単位で管理してたものだから、同じように仮想的なタイルを敷き詰めた画面があるものとして構造体組んで、その上でモブがタイルに沿って動く管理を考えるのがとりあえずは昔のノウハウを適用できて簡単だと思う
倉庫番はまさにそういう動き
292(1): 名前は開発中のものです。 [sage] 2024/04/25(木) 00:27:21.13 ID:8kKIrJCJ(1) AAS
AIに聞けばええやん
293(1): 名前は開発中のものです。 [sage] 2024/04/25(木) 00:30:55.75 ID:5JWtrSqN(2/4) AAS
なのでモブが動くときはpix単位の座標移動が発生するけどそれはサブルーチンとして、ゲームアルゴリズムとしてはマップ全体の座標を整数の配列で(例えば100×100とか)表して制御し、画面に表示する座標は既に言われてるように適切に係数掛け算する関数を作るのが良いと思います
倉庫番の場合、マップが広いレベルを縮小してモニタに表示したりするので、その拡大縮小表示の変換が自由にできるほうがUXが良くなるし、なんなら回転表示もしたくなるかもしれないので。
294: 名前は開発中のものです。 [sage] 2024/04/25(木) 00:33:10.60 ID:5JWtrSqN(3/4) AAS
>>292
まあ倉庫番まんまならAIに頼めばノーコードで完成するでしょうな
しかしゲームメカニクスの基礎は自分の頭で考えないと応用が効かなくなるから
295: 名前は開発中のものです。 [sage] 2024/04/25(木) 00:42:09.44 ID:7TwSlN/Q(1/4) AAS
ちがうアプローチとしてはTileMapを使用するかな
使えるようになるまでのコストが大きいからお勧めとは言い難いが
高機能で複雑な分、理解できたら便利なクラス
296: 名前は開発中のものです。 [SAGE] 2024/04/25(木) 01:06:24.88 ID:/gUanyy1(1) AAS
理解できないから半年以上苦しんでるんでしょう。
もっと園児でもわかるような単純なやり方を教えてあげて
297: 名前は開発中のものです。 [sage] 2024/04/25(木) 01:08:58.36 ID:5JWtrSqN(4/4) AAS
まんまTilemapなクラスがあったのね
これなら簡単だわ勉強になりました
298: 名前は開発中のものです。 [] 2024/04/25(木) 06:12:26.81 ID:Esvk0j05(1/6) AAS
>>291
キャラの動きも配列の書き換えで行って、書き換えられたら再描画というふうにしてもいいんですが
これだと滑らかに動くキャラってのが作れなくなるんですよね
だからチュートなどではvector2で移動させてるんだろうなと
マップ座標とvector2座標の変換は必要になりますね
>>289
別に特殊なクラスとか使うことないんですね
299: 名前は開発中のものです。 [] 2024/04/25(木) 06:27:04.46 ID:Esvk0j05(2/6) AAS
>>293
ゲームロジックとしては配列の書き換えだけということですか?
配列の書き換え→その位置に基づいてキャラを描画、ということでしょうか
300: 名前は開発中のものです。 [] 2024/04/25(木) 12:30:15.39 ID:Esvk0j05(3/6) AAS
関数から、2つの値を返すには何使うんですか?
カンマ区切りではダメだったので[1,2]こういう形にしたらいけました
301: 名前は開発中のものです。 [] 2024/04/25(木) 12:50:05.12 ID:Esvk0j05(4/6) AAS
↑2つの値を返して、二次元配列として使いたい感じです
array[0][0]
こんな感じです
302: 名前は開発中のものです。 [sage] 2024/04/25(木) 13:25:04.08 ID:7TwSlN/Q(2/4) AAS
2つの値を返す方法が[1,2]でいけたならそれで解決じゃね?
var return_value = [1, 2]
array[return_value[0]][return_value[1]]
303: 名前は開発中のものです。 [sage] 2024/04/25(木) 14:29:31.06 ID:ddMre8ET(1/4) AAS
GDScriptでいいのか?
Pythonっぽい言語仕様だけど実際はC++をスクリプトにしただけっぽいので
Pythonで複数の値を返す時に使うTupleは使えないんだとよ
方法としては2つ、Arrayで返すかDictionaryで返す
以下はサンプルコードな ※RUNボタンで実行結果も確認できるぞ
外部リンク:gd.tumeo.space
上下前次1-新書関写板覧索設栞歴
あと 699 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.021s