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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
313
(1): 名前は開発中のものです。 [] 2024/04/26(金) 06:09:14.77 ID:1Ez+K35D(1/3) AAS
>>311
311(1): 名前は開発中のものです。 [sage] 2024/04/25(木) 20:20:30.32 ID:7TwSlN/Q(4/4) AAS
>>308
質問のみならそうなのだが話題の元が倉庫番作るのにキャラ座標をマップ配列に変換するなのでそこまで含むと解答はこうなる
func cpos_to_mpos(cpos:Vector2i, size:int = 32) -> Vector2i:
return cpos / size
すみません
なんか自己流で複雑なやり方になってる気がする
普通はキャラ座標とマップ座標の変換はやらずに、座標を1つに統一したりするんでしょうか
314
(2): 名前は開発中のものです。 [sage] 2024/04/26(金) 13:14:53.40 ID:yaANzBxw(1) AAS
上の人も書いてるけど倉庫番と言うことはグリッドの途中で立ち止まる事はないだろうから、それであれば32で割った盤面上の座標だけ保持して画面表示の時に32倍するなりアニメ補間すればよいのでは
その方がセーブやアンドゥも楽になる
315
(1): 名前は開発中のものです。 [] 2024/04/26(金) 13:46:32.39 ID:1Ez+K35D(2/3) AAS
>>314
配列使わないということですか?
配列使わない場合、障害物の位置などを表現する場合、どうするでしょうか
二次元配列を使った場合、以下のようにマップを表現すると思います
1=壁,2=キャラ、3=動かせる箱、0=動ける範囲
[
[1,2,3,0,1],
[1,0,0,0,1],
[1,1,1,1,1],
]

グリッドの途中で立ち止まらないというのは、32ずつグリッド移動するという意味ですよね。
1pxずつ動かしたいわけじゃないので、それはその通りです。
316: 名前は開発中のものです。 [sage] 2024/04/26(金) 13:52:06.26 ID:XXsncJVJ(1) AAS
もしかしてモブはスプライト管理じゃない?
317
(1): 名前は開発中のものです。 [sage] 2024/04/26(金) 14:35:25.85 ID:/ZFKx6UF(1/2) AAS
>>315
倉庫番である以上オブジェクトは必ず格子状に配置し管理される
それを2次元配列とみなす事ができる
配列を使わない場合は遠回りに配列があるのと同等の処理を行うだけ

なぜ>>314の説明で配列使わないという解釈になるのかが判らない
配列を使わない便利な魔法でもあると想像してないか?
配列を使わない方法があっても手間が増えて複雑になるだけだから配列が使われる
配列を使った方法で理解するのが定番
318: 名前は開発中のものです。 [sage] 2024/04/26(金) 14:55:56.89 ID:/ZFKx6UF(2/2) AAS
>>313
昔はコンソール上で動かす前提で表示もキャラクター単位だったので
配列の要素番号と表示座標の変換は不要だった
今はウインドウアプリになって表示に座標変換は必須
ウインドウアプリの作法も覚えなきゃで同じ倉庫番の初心者講習でも
昔よりは複雑になり難易度上がってはいる
319: 名前は開発中のものです。 [] 2024/04/26(金) 15:42:16.89 ID:86tvu5TE(1/2) AAS
絵文字使ってるので表示が上手くいかなかったらごめん

ゲームとしては全然足りないし完成させる所までが課題ではあるが
学習項目を配列のみに集約するとこの配列操作が理解できれば十分
func _ready():
var map = "🧱👷📦🚩🧱\n"
print(map)
map[3] = map[2]
map[2] = map[1]
map[1] = "◾"
print(map)
320: 名前は開発中のものです。 [] 2024/04/26(金) 15:45:16.29 ID:86tvu5TE(2/2) AAS
二次元配列まで理解できたら上出来
func _ready():
var map = ["🧱🧱🧱", "🧱👷🧱", "🧱📦🧱", "🧱🚩🧱", "🧱🧱🧱", "\n"]
for c in map: print(c)
map[3][1] = map[2][1]
map[2][1] = map[1][1]
map[1][1] = "◾"
for c in map: print(c)
321: 我のうんちは小粒(^^ ◆OyJP7qHDVvEI [] 2024/04/26(金) 17:21:02.02 ID:jKYfR5nN(1) AAS
二次元配列って配列に配列入れるやつでふよね(^^
そこで詰まってるなら人に聞くよりブッコフに走ってプログラムの基礎が書いてある本買って読んだほうがいいのでは?(^^
煽りとかいじめでいってるんじゃなくて真剣に(^^

ボッキング!(^^
322
(1): 名前は開発中のものです。 [] 2024/04/26(金) 18:10:17.22 ID:1Ez+K35D(3/3) AAS
>>317
配列でやってみます
ありがとう

昔のやり方というのは、配列の座標を書き換える→画面表示を更新、といったやり方ですよね
今のように、ぬるっと動かすことが出来ないということですね
323: 名前は開発中のものです。 [sage] 2024/04/26(金) 18:28:59.68 ID:Tn7ydmJN(1) AAS
>>322
今の奴ってどのサンプルの話?
存在しない物を今とか空想してんの?
324
(1): 名前は開発中のものです。 [] 2024/04/27(土) 14:28:13.76 ID:RX6jyHGA(1/3) AAS
フローチャートよりシンプルな図示方法ってないかな?
やっぱりロジックを整理しておいてからコード書かないと脳みそがパンクする
可といってフローチャートは難しい
325: 名前は開発中のものです。 [] 2024/04/27(土) 14:39:46.99 ID:RX6jyHGA(2/3) AAS
擬似コードってのやってみますゆえ
326: 名前は開発中のものです。 [sage] 2024/04/27(土) 16:13:48.17 ID:b+RnbsA6(1) AAS
フローチャートが難しいってどういう事
327: 名前は開発中のものです。 [] 2024/04/27(土) 17:08:49.43 ID:RX6jyHGA(3/3) AAS
むずいというか、他人に説明するためのものではないので、自分だけ分かる方法でいいかなと
より簡易的であればいいです

フロチャは図形の使いこなしが苦手です
328
(1): 名前は開発中のものです。 [sage] 2024/04/27(土) 22:14:59.66 ID:toVZIEFB(1) AAS
>>324
plantumlが面白いかも
plantuml web serverでインストール不要で試せる
検索すればフローチャートの書き方もあるっぽいので
コピペして遊んでみては?
329: 名前は開発中のものです。 [sage] 2024/04/28(日) 02:33:44.79 ID:XkoBpqzr(1) AAS
Godotの2Dのコンセプトは3Dを2Dに見せるやり方ではないってのだけはすぐ分かるのだけど、仮想ゲームマシン的な意味での最大スペックはどこ見ればいいのだ
実行マシンさえ強ければ、昔ながらのBG面もテキスト面もスプライト面もそれらの拡縮回転移動もカラーパレットも無制限で表示させて良い感じなのかな?

他にも昔の疑似3Dもやろうと思えば作れるのだろうけど、それには本物の3D使うよね普通の人は。
330
(2): 名前は開発中のものです。 [] 2024/04/28(日) 06:15:05.24 ID:6Dc8VXuN(1/4) AAS
1つのスクリプトに書いてるんですが、コードが増えてきた場合、領域を分ける方法は関数以外にありますか?
ただ、視覚的に分けるだけでもいいです
レギオンは使えるみたいですね

>>328
どうも
擬似コード的なものを視覚化するというイメージですかね
331
(2): 名前は開発中のものです。 [] 2024/04/28(日) 06:42:32.33 ID:6Dc8VXuN(2/4) AAS
コアな機能だけモジュール化なりクラス化なりしたほうがいいのかな
332
(2): 名前は開発中のものです。 [] 2024/04/28(日) 09:40:08.77 ID:6Dc8VXuN(3/4) AAS
インデントが深くなりすぎる場合、対策はあるでしょうか。
pythonで関数をカッコで表現出来るでしょうか。
333: 名前は開発中のものです。 [sage] 2024/04/28(日) 11:30:45.87 ID:KYDjUHts(1/2) AAS
>>330-332
最初から最後までしっかり読みなさい。

大ヒットゲーム『Balatro』のコードが“力業”だとして共感呼ぶ。コードが汚くても、ゲームが完成してちゃんと動けばそれでいい - AUTOMATON
外部リンク:automaton-media.com
334
(1): 名前は開発中のものです。 [sage] 2024/04/28(日) 12:06:25.45 ID:qOnW5aMf(1) AAS
>>330-332
コードの書き方は多種多様な流派があり自分にあった書き方を模索するしかない
チームで開発する時はチームでルールを定める
基本的には公式に従う

安易にファイル分割すると管理が大変になる
単にソースが長いだけならregionで閉じる
全体で共通して使う機能ならグローバルなクラスに纏める
特定のクラスのみの機能なら基底クラスを作って継承する

インデントが深いと思ったらそもそもの処理方式を考え直す
ループの内側を関数化する
ifをand,orで纏める
ソースを短くする為にソースが読み難くなるのは本末転倒なので下手な対策はしない
335
(1): 名前は開発中のものです。 [sage] 2024/04/28(日) 13:46:45.79 ID:GkEu3rtv(1) AAS
力業ねえ
そうは言っても作り方のセオリーはあるんじゃないかな
ユニティだけど物理ワールドでオブジェクト移動するときにポジションに1加算みたいなことしたらバグるし重いよね
ベロシティにアドフォースするのがセオリーじゃん?

そんな感じで、頭の悪いぐちゃぐちゃなセオリーもへったくれもないコードだと見づらいバグる重いでいいことないし
ゴドーで「こういう仕組み作るときはこうやるのがベター」みたいなノウハウを集めたサイトが欲しいわ
336: 名前は開発中のものです。 [sage] 2024/04/28(日) 14:04:21.58 ID:KYDjUHts(2/2) AAS
>>335
逆引き辞典みたいなのあるといいよね(英語のはわりとある)
まあセオリーやノウハウが欲しいなら、他人のコードをたくさん読むことが近道じゃないかな
337: 名前は開発中のものです。 [] 2024/04/28(日) 15:15:52.67 ID:6Dc8VXuN(4/4) AAS
>>334
どうも
自分なりに書いてみます
とりあえず見た目と機能は分けます
1-
あと 665 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.032s