[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 07/23 21:54 / Filesize : 257 KB / Number-of Response : 1016
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【軽量】godot engine【無料】 part3



1 名前:名前は開発中のものです。 [2024/02/17(土) 09:51:54.18 ID:lpQfy7dC.net]
Godotエンジンは機能豊富な、クロスプラットフォームのゲームエンジンであり、2D・3Dゲームを単一のインターフェイスで製作することができます。
基本的なツールは一通り用意され、ユーザーはプログラムの再発明をすることなくゲーム製作に集中できます。
製作したゲームは主要なデスクトップ環境(Linux, MacOS, Windows)や、モバイル(Android, iOS)、Webベース(HTML5)環境にワンクリックで書き出せます。

GodotはMITライセンスの下、完全に自由でオープンソースです。
利用に関して特に制限はありませんし、利用料を請求することもありません。
エンジンのコードの最後の一行まで、ゲームは製作したユーザーのものです。
Godotは自主的なコミュニティによって開発されており、エンジンを期待にかなうものにするため、ユーザーの方々も自由に参加できます。
Godotは非営利団体Software Freedom Conservancyによって支援されております。

■公式サイト
https://godotengine.org/
■コミュニティ
https://godotengine.org/community/
■ドキュメント
https://docs.godotengine.org/ja/4.x/
■こんなのが作れるよ
https://www.youtube.com/watch?v=W1_zKxYEP6Q
https://www.youtube.com/watch?v=UAS_pUTFA7o
https://www.youtube.com/watch?v=ao34A0Y2x6c
■前スレ
【軽量】godot engine - part2
https://mevius.5ch.net/test/read.cgi/gamedev/1619755427/
★次スレは>>950がたててください

222 名前:名前は開発中のものです。 mailto:sage [2024/03/29(金) 15:46:26.16 ID:2tYAETUL.net]
godot4.0になった辺りで触らなくなったんだがもう4.3まで伸びてんのな
4.1~4.3でなんか目玉機能追加された?

223 名前:名前は開発中のものです。 mailto:sage [2024/03/29(金) 16:43:00.72 ID:18de9J88.net]
そもそも過疎板にはDat落ち判定はないんだが(nKB未満が即死する即死判定はある)
頓珍漢な言い訳はやめなさいと言っただけだぞ

224 名前:名前は開発中のものです。 mailto:sage [2024/03/29(金) 17:26:29.20 ID:nuxfBRdB.net]
圧縮で落ちるのが最終更新なら2018年とかのが残ってるから確かに当分は大丈夫そうだな

225 名前:名前は開発中のものです。 mailto:sage [2024/03/29(金) 17:47:38.73 ID:imN+3EnT.net]
3Dファイルはgltf一択?
Blender連携はテクスチャ周りが上手くいかん

226 名前:名前は開発中のものです。 [2024/03/29(金) 17:56:09.05 ID:YYuuvBhg.net]
>>222
fbxはライセンスの関係で使えないんじゃなかった?
今どうなってるか分からん 3dやってないし

227 名前:名前は開発中のものです。 mailto:sage [2024/03/29(金) 18:36:00.41 ID:eapD4MOf.net]
数日放置してたら案の定もめてて草
正直異様でスレ見る気も失せる状態だったし
>>218もいちいち絡んでちゃ自治厨と大差ない
しょーもな

228 名前:名前は開発中のものです。 mailto:sage [2024/03/29(金) 21:52:57.37 ID:PtR313Sj.net]
オマエモナー

229 名前:名前は開発中のものです。 mailto:sage [2024/03/29(金) 23:38:18.95 ID:imN+3EnT.net]
日本語でgodot関連調べてると大抵同じ人の記事にたどり着く…何者なんだ…

230 名前:名前は開発中のものです。 mailto:sage [2024/03/30(土) 15:36:35.50 ID:8Or9Js4W.net]
>>224
これ
変な拘りで自治が自治が言ってる時点で自治してるようなもんだし
5chなんだから気に入らなきゃ別スレでも立てて好きにやりゃ良いのに



231 名前:名前は開発中のものです。 mailto:sage [2024/03/30(土) 23:48:04.78 ID:uJH0yGQv.net]
オマエモナー

232 名前:名前は開発中のものです。 [2024/04/01(月) 06:44:36.40 ID:bnl1SBKq.net]
マリオみたいな2dアクションってタイルマップ使わずに作るのはあり?
タイルマップないと調整が難しいんじゃないかな

ジャンプ力3とした場合、谷をタイル3つぶんにすればギリギリ届く、といった調整が簡単

233 名前:名前は開発中のものです。 mailto:sage [2024/04/01(月) 08:02:59.00 ID:PL23FYq5.net]
>>229
最近のゲームではNoitaが地形全部ピクセルかなと思います
今はCPUやRAMが潤沢なので十分ありなのでは

234 名前:名前は開発中のものです。 [2024/04/01(月) 12:52:37.52 ID:bnl1SBKq.net]
jumpkingみたいな感じのを作りたい

あれはタイルマップ感はないけど、タイルマップではないにしてもグリッドをベースにしたほうが楽そう

235 名前:名前は開発中のものです。 [2024/04/01(月) 13:15:59.82 ID:vOJskMGJ.net]
godotはグリッドにスナップできるし
jumpking程度ならコリジョン付けて配置してくだけで行けると思うよ

236 名前:名前は開発中のものです。 [2024/04/01(月) 17:11:07.39 ID:bnl1SBKq.net]
サイトでもグリッドデザインとかあるしね

237 名前:名前は開発中のものです。 [2024/04/01(月) 19:23:56.08 ID:bnl1SBKq.net]
https://youtu.be/CNhscDwBGQ0?si=DO2b2Dbeb-f9BhFF&t=836
この画面中央にある浮島みたいな複雑な形状もタイルマップなのかな?

238 名前:名前は開発中のものです。 mailto:sage [2024/04/01(月) 19:35:50.50 ID:Qv7VTYs7.net]
JKは地形の最小単位自体は見える気がするし単に細かめのタイルマップで再現できるのはできるんじゃね
modの作り方見た感じ判定はRGB画像をタイルマップみたく扱ってて見た目は一枚絵被せてるらしい

239 名前:名前は開発中のものです。 [2024/04/01(月) 20:13:46.87 ID:bnl1SBKq.net]
タイルマップ研究してみる
機能じゃなくてデザインから作る試みをしてるから

被せるというのは、つまりタイルマップでマスキング(くり抜き)してる感じかな?

240 名前:名前は開発中のものです。 mailto:sage [2024/04/01(月) 21:28:39.74 ID:Qv7VTYs7.net]
RGB画像は1画面辺り60×45とかの荒いやつだから違う
ゲームデザイン(判定、地形)だけタイルマップ式でそれに合わせた画像を別で用意してるってこと

これ貼るのが早いか
ttps://jumpkingplus.github.io/workshop/docs/modding/hitboxes/
ttps://jumpkingplus.github.io/workshop/docs/modding/screens/



241 名前:名前は開発中のものです。 [2024/04/02(火) 06:38:50.57 ID:gq8N0/8x.net]
>>237
ん?一枚絵を重ねる感じ?

242 名前:名前は開発中のものです。 [2024/04/03(水) 19:26:17.38 ID:BKl8fFHu.net]
慣れてないとタイルマップでステージ作るの難しいね

243 名前:名前は開発中のものです。 [2024/04/04(木) 18:23:04.76 ID:Yk95TemJ.net]
タイルマップエディタの位置って変更出来る?
下のスペースだと作業しづらくてしゃあない

244 名前:名前は開発中のものです。 mailto:sage [2024/04/05(金) 02:45:26.77 ID:Pqxpfu1i.net]
CollisionLayerやVisibilityLayerのレイヤー名適当に付けてきたから並び替えしたいけど面倒だなー
かといってスクリプトで管理するのも面倒

245 名前:名前は開発中のものです。 [2024/04/05(金) 06:47:12.42 ID:VPXaZ05P.net]
タイルマップのアルファ部分を境界線として自動的にコリジョンつける機能あったっけ?

246 名前:名前は開発中のものです。 [2024/04/07(日) 10:10:16.82 ID:XQBKHWlL.net]
1つのゲーム何ヶ月くらいかける?
そんな大作は作れないから数週間程度にしとくといいのかなと思うが

247 名前:名前は開発中のものです。 [2024/04/07(日) 12:40:54.04 ID:B7MxZFEN.net]
初めて作るなら二週間くらいで作れそうなのにした方が早めに世に出せていいと思う
製作期間なんてどうせ伸びるし

248 名前:名前は開発中のものです。 [2024/04/07(日) 14:24:50.23 ID:XQBKHWlL.net]
ありがとう
想定の2倍以上はかかる 確かに

249 名前:名前は開発中のものです。 [2024/04/07(日) 20:10:06.18 ID:XQBKHWlL.net]
2dアクションのステージ作るときにタイルセットじゃなくて、ポリゴンノードを1枚のタイルとして大量に並べていったらパフォーマンスにかなり影響出るのかな?
数千とかそういうレベルになったら

250 名前:名前は開発中のものです。 mailto:sage [2024/04/08(月) 00:34:30.27 ID:BT1LWWM9.net]
余裕で出るだろうねぇ
Godotがすごすぎエンジンで問題なかったら逆にビックリするけど



251 名前:名前は開発中のものです。 [2024/04/08(月) 05:26:25.44 ID:EcmamLs3.net]
どうも
出るか、、、

ポリゴンノードの羅列のほうが柔軟に形状変えられていいかなと思ったけど、タイルマップでやる
タイルマップは形状にどうしても制限が出るから

252 名前:名前は開発中のものです。 mailto:sage [2024/04/08(月) 13:22:19.11 ID:BT1LWWM9.net]
性能テストだと思って実際に作って負荷検証した方がプロっぽいけどな
Zennとかで投稿して知見共有してくれてもいいのよ? 宣伝にもなるし
あ、契約書からむような案件だったらダメだけど

253 名前:名前は開発中のものです。 [2024/04/08(月) 14:15:01.29 ID:EcmamLs3.net]
ありがとう
zennってたまに見るけどブログとしていいね

fc2から乗り換えよう

254 名前:名前は開発中のものです。 [2024/04/09(火) 11:56:09.63 ID:oLx3m2KZ.net]
https://dev.to/christinec_dev/learn-godot-4-by-making-a-2d-platformer-part-4-level-creation-1-4obb
オートタイルはterrain使ってやる感じ?
今学習中

スクリプト無しで出来るならいいけど

この解説生地を書こう

255 名前:名前は開発中のものです。 [2024/04/09(火) 14:36:54.29 ID:oLx3m2KZ.net]
https://imgur.com/B6lPvsv
オートタイルを作りたいけど、仕組みがよく理解できない
terrainをペイントすることでそれっぽくなるけど、どこをどうペイントするといいのかガ分からない

256 名前:名前は開発中のものです。 [2024/04/13(土) 06:35:26.13 ID:DtpmdlV4.net]
https://www.youtube.com/watch?v=TCEEKKeoT-0
オートタイルの動画あったけど仕組みが分からん
塗った場所によって、どのようにつながるか決まるらしいけど、どなたか教えて

257 名前:名前は開発中のものです。 mailto:sage [2024/04/13(土) 12:16:44.81 ID:4XyoFcVO.net]
いやこれで分からないんじゃ説明のしようがねえじゃん

258 名前:名前は開発中のものです。 mailto:sage [2024/04/13(土) 14:29:45.52 ID:2dO4J81U.net]
俺の立てたスレに来たら懇切丁寧に教えてもよかったけど
この顔文字くん来ないんだよな
人が多いとこに居たいんだろうけど

259 名前:名前は開発中のものです。 [2024/04/13(土) 15:12:12.60 ID:DtpmdlV4.net]
立てたっけ?

260 名前:名前は開発中のものです。 mailto:sage [2024/04/13(土) 15:15:11.02 ID:2dO4J81U.net]
>>256
ここな>>216



261 名前:名前は開発中のものです。 [2024/04/13(土) 15:27:51.76 ID:DtpmdlV4.net]
人のこと池沼とか書いてるやついるからええわ

262 名前:名前は開発中のものです。 mailto:sage [2024/04/13(土) 22:30:37.04 ID:PLTsef0l.net]
自覚持てよ

263 名前:名前は開発中のものです。 [2024/04/14(日) 04:27:19.96 ID:xkIt8wPU.net]
そういうのいらないから

264 名前:名前は開発中のものです。 mailto:sage [2024/04/14(日) 14:53:38.25 ID:pt7t7Gdb.net]
オマエモナー

265 名前:名前は開発中のものです。 [2024/04/17(水) 11:03:55.56 ID:c7cp2PUr.net]
godot4で方向取る関数ってなんですか?
input.get_axisだと引数が2つ必要になっていましたね
以前はinput.get_axis("horizontal")←これで横方向がトレていたのですが、

266 名前:名前は開発中のものです。 mailto:sage [2024/04/17(水) 11:23:02.69 ID:S9SgvMuX.net]
以前とはいつの事か?またはどのバージョンの事か?
質問する前に自分の記憶が正しいかの確認をする
https://docs.godotengine.org/en/3.4/classes/class_input.html
初登場時からget_axisの引数は2つ
get_axisの機能を方向取る関数と認識しているのならば
引数の形式が変わっていても新しい引数の形式での使い方を理解するしかない

267 名前:名前は開発中のものです。 [2024/04/17(水) 11:59:17.28 ID:c7cp2PUr.net]
>>263
そうでしたか
なにかの記憶違いだったかもしれないです

var direction
if Input.is_action_just_pressed("ui_right"):
direction = "right"
if Input.is_action_just_pressed("ui_left"):
direction = "left"
if Input.is_action_just_pressed("ui_up"):
direction = "up"
if Input.is_action_just_pressed("ui_down"):
direction = "down"
_move(direction)

文字列での分岐にすることにしました

268 名前:名前は開発中のものです。 mailto:sage [2024/04/17(水) 12:28:13.73 ID:S9SgvMuX.net]
なんとなくの予想だがUnityのInputSystem辺りと記憶が混ざってるのかもね
理解できず動かない簡潔なコードよりも理解できて正しく動く冗長なコードが勝るが
get_axisとget_vectorは有用なので使い方は理解できた方が良い
余裕があれば挑戦してみて欲しい
公式のサンプルでは大体こんな感じで使われている
# 左右をfloatで取得
var movement = get_axis("ui_left", "ui_right")
# 上下左右をVector2で取得
var direction = get_vector("ui_left", "ui_right", "ui_up", "ui_down")

269 名前:名前は開発中のものです。 mailto:sage [2024/04/17(水) 14:58:45.87 ID:S9SgvMuX.net]
Inputクラスの記述が抜けてた
var movement = Input.get_axis("ui_left", "ui_right")
# 上下左右をVector2で取得
var direction = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")

書き足しついでで補足すると意味的にはこんなん
1軸の向き = get_axis(-方向、+方向)
Vector2(x軸の向き, y軸の向き) = get_vector(x軸負方向、x軸正方向、y軸負方向、y軸正方向)

移動処理が簡潔に書ける
extends Node2D
const SPEED = 300.0
func _process(delta):
var direction = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
position += direction * SPEED * delta

270 名前:名前は開発中のものです。 [2024/04/17(水) 17:28:28.38 ID:c7cp2PUr.net]
どうも
get_vectorで方角を返すってやつですね



271 名前:名前は開発中のものです。 [2024/04/18(木) 11:29:20.11 ID:o06ulE3s.net]
godotは割とredditが賑わってるのがありがたいは
むしろunityより賑わってるのが謎

272 名前:名前は開発中のものです。 [2024/04/19(金) 18:17:49.55 ID:611er4q0.net]
配列特定の値を探したい場合、forで回して比較演算子かfindか使い分けはどうすればいいの?

273 名前:名前は開発中のものです。 mailto:sage [2024/04/19(金) 19:27:59.70 ID:6eKwksTY.net]
関数の方が安全で手っ取り早い代わりに若干低速な可能性がある どれくらい差があるかは知らない
配列の中身が順番に並んでるならbsearch使うか二分探索自分で書けば速い

274 名前:名前は開発中のものです。 [2024/04/19(金) 19:31:58.50 ID:611er4q0.net]
どうも
どのみち二次元だとfind使えないみたいですね

275 名前:名前は開発中のものです。 [2024/04/20(土) 11:57:25.68 ID:gSjSgOMM.net]
一時的にスクリプトを停止出来ますか?
processをdisableしてもprintはされるみたいです

276 名前:名前は開発中のものです。 [2024/04/21(日) 10:08:48.46 ID:YXvcVHHE.net]
定型文登録って合ったっけ?
以下の4方向バージョンを登録しておきたい
if Input.is_action_just_pressed("ui_up"):
move()

277 名前:名前は開発中のものです。 [2024/04/23(火) 12:13:26.37 ID:/jRBBB4p.net]
特定の関数の中でしか使わない関数ってのはどう定義すればいいの?
入れ子に出来れば関係ない場所から参照されないからいいと思うんだけど

func outer():
func inner():
こんな感じの入れ子は無理っぽいからラムダってやつ使うのかな

しかし、以下だとprint結果が帰ってこない
extends Node2D
func _ready() -> void:
print(lam)
var lam = func outer(num):
var value = "hogehoge"
return value

278 名前:名前は開発中のものです。 [2024/04/23(火) 12:26:20.71 ID:/jRBBB4p.net]
あっ、callしないと駄目なんですね

279 名前:名前は開発中のものです。 mailto:sage [2024/04/23(火) 13:00:39.54 ID:K58WhwWv.net]
関数のままでは入れ子にできないからCallableとして宣言する
呼び出しは変数名で行うから関数名はなくて良い
func _ready():
var innner = func(x = 1):return x * 2
prints("inner() called:", innner.call())
prints("inner(2) called:", innner.call(2))

280 名前:名前は開発中のものです。 [2024/04/23(火) 14:27:19.77 ID:/jRBBB4p.net]
どうも
入れ子で書けないのなら、普通の関数とあまり変わらない感じですね
視覚的にこう1箇所にまとめたかったんですが



281 名前:名前は開発中のものです。 mailto:sage [2024/04/23(火) 15:16:36.49 ID:K58WhwWv.net]
変数に代入して使うのが馴染みないかもだが
関係ない場所からの参照ができなくなるから>>274で求められた機能としては十分
使用する変数は大体最初に宣言するから一箇所にまとまるのでは?

282 名前:名前は開発中のものです。 mailto:sage [2024/04/23(火) 15:27:32.29 ID:K58WhwWv.net]
>>272
完全停止は出来ないがprocess_modeにdisableを指定した上で
動かれて困るメソッドの先頭に以下の一文でも足せば良いんじゃないかな?
if process_mode == Node.PROCESS_MODE_DISABLED: return

283 名前:名前は開発中のものです。 [2024/04/23(火) 19:08:20.21 ID:/jRBBB4p.net]
>>278
関係ない場所から参照出来なくなるというのは、callが付与されることで、そのような効果があるということでしょうか?

>>279
どうも
disableでもおそらくreadyは動くみたいですね

284 名前:名前は開発中のものです。 mailto:sage [2024/04/23(火) 19:38:02.85 ID:K58WhwWv.net]
ローカルで宣言した変数のスコープはローカルという普通の話
別にCallableでの特別処理とかではない
グローバルで宣言すればグローバルから扱える

_readyの様な初期化処理まで動かしたくないというなら自分は設計の見直しをする
必要なときにadd_childとqueue_freeすればprocess管理する必要がないのではないか?

285 名前:名前は開発中のものです。 mailto:sage [2024/04/23(火) 19:44:45.31 ID:nRUQyvbL.net]
15歳のGodot教本クラファン、あれ支援してみようかなー

286 名前:名前は開発中のものです。 mailto:sage [2024/04/23(火) 20:12:37.57 ID:SVQ ]
[ここ壊れてます]

287 名前:G4/08.net mailto: 確か達成してた気するけどああいうの上乗せ倍プッシュで支援てできるんだっけ?いいんじゃね []
[ここ壊れてます]

288 名前:名前は開発中のものです。 mailto:sage [2024/04/23(火) 20:42:58.34 ID:nRUQyvbL.net]
ぶっちゃけGodot全然わからんちんなんで
支援して、本貰って自分にシバキを入れたいって思いもある
おっちゃんが15歳に負けたくない><

289 名前:名前は開発中のものです。 mailto:sage [2024/04/23(火) 20:49:38.67 ID:K58WhwWv.net]
始めるなら早い方が良いから完成待たずに既にあるのでやってみたら?
https://progsha.org/

290 名前:名前は開発中のものです。 mailto:sage [2024/04/23(火) 23:25:40.86 ID:5HqoYOxs.net]
3000円で紙の本と電子本両方もらえるならむしろ安いよね
良心的なクラファンだ



291 名前:名前は開発中のものです。 [2024/04/24(水) 04:23:26.66 ID:oxZnmf8P.net]
>>281
なるほど 中で宣言するというだけですね

292 名前:名前は開発中のものです。 [2024/04/24(水) 20:15:21.72 ID:oxZnmf8P.net]
倉庫番のロジックで分からないところがあるのでこっちで質問させてもらいます
マップは二次元配列で作成します
ただ、キャラクターの移動はvector2で行います


1マスの大きさが32であった場合、vector2の座標が32,0だとしたら、配列上ではarray[y0][x1]となりますよね。
こういった変換に便利な関数とかないでしょうか?

やりたいことを箇条書きにすると以下です
1:vector2の座標から配列上の座標を割り出す
2:キャラクターが移動したとき、配列上のキャラクター座標を移動させる(配列上の要素2がキャラとしてます)

293 名前:名前は開発中のものです。 mailto:sage [2024/04/24(水) 20:27:18.43 ID:PzjnMMaW.net]
普通に割り算して切り捨てるだけでは
ものを1マス単位で動かさない前提なら1マス辺りの座標を1にして逆に見た目の方の座標を掛け算なりする方が楽

294 名前:名前は開発中のものです。 mailto:sage [2024/04/24(水) 22:41:11.22 ID:YL8z0NQ2.net]
自分が便利なように関数かけばいいじゃないの 

295 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 00:19:55.34 ID:5JWtrSqN.net]
昔の2Dゲーム機は基本的に背景をマップタイル(キャラクタージェネレータなどとも呼ばれる)単位で管理してたものだから、同じように仮想的なタイルを敷き詰めた画面があるものとして構造体組んで、その上でモブがタイルに沿って動く管理を考えるのがとりあえずは昔のノウハウを適用できて簡単だと思う
倉庫番はまさにそういう動き

296 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 00:27:21.13 ID:8kKIrJCJ.net]
AIに聞けばええやん

297 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 00:30:55.75 ID:5JWtrSqN.net]
なのでモブが動くときはpix単位の座標移動が発生するけどそれはサブルーチンとして、ゲームアルゴリズムとしてはマップ全体の座標を整数の配列で(例えば100×100とか)表して制御し、画面に表示する座標は既に言われてるように適切に係数掛け算する関数を作るのが良いと思います
倉庫番の場合、マップが広いレベルを縮小してモニタに表示したりするので、その拡大縮小表示の変換が自由にできるほうがUXが良くなるし、なんなら回転表示もしたくなるかもしれないので。

298 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 00:33:10.60 ID:5JWtrSqN.net]
>>292
まあ倉庫番まんまならAIに頼めばノーコードで完成するでしょうな
しかしゲームメカニクスの基礎は自分の頭で考えないと応用が効かなくなるから

299 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 00:42:09.44 ID:7TwSlN/Q.net]
ちがうアプローチとしてはTileMapを使用するかな
使えるようになるまでのコストが大きいからお勧めとは言い難いが
高機能で複雑な分、理解できたら便利なクラス

300 名前:名前は開発中のものです。 mailto:SAGE [2024/04/25(木) 01:06:24.88 ID:/gUanyy1.net]
理解できないから半年以上苦しんでるんでしょう。
もっと園児でもわかるような単純なやり方を教えてあげて



301 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 01:08:58.36 ID:5JWtrSqN.net]
まんまTilemapなクラスがあったのね
これなら簡単だわ勉強になりました

302 名前:名前は開発中のものです。 [2024/04/25(木) 06:12:26.81 ID:Esvk0j05.net]
>>291
キャラの動きも配列の書き換えで行って、書き換えられたら再描画というふうにしてもいいんですが
これだと滑らかに動くキャラってのが作れなくなるんですよね 
だからチュートなどではvector2で移動させてるんだろうなと

マップ座標とvector2座標の変換は必要になりますね

>>289
別に特殊なクラスとか使うことないんですね

303 名前:名前は開発中のものです。 [2024/04/25(木) 06:27:04.46 ID:Esvk0j05.net]
>>293
ゲームロジックとしては配列の書き換えだけということですか?
配列の書き換え→その位置に基づいてキャラを描画、ということでしょうか

304 名前:名前は開発中のものです。 [2024/04/25(木) 12:30:15.39 ID:Esvk0j05.net]
関数から、2つの値を返すには何使うんですか?
カンマ区切りではダメだったので[1,2]こういう形にしたらいけました

305 名前:名前は開発中のものです。 [2024/04/25(木) 12:50:05.12 ID:Esvk0j05.net]
↑2つの値を返して、二次元配列として使いたい感じです

array[0][0]
こんな感じです

306 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 13:25:04.08 ID:7TwSlN/Q.net]
2つの値を返す方法が[1,2]でいけたならそれで解決じゃね?
var return_value = [1, 2]
array[return_value[0]][return_value[1]]

307 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 14:29:31.06 ID:ddMre8ET.net]
GDScriptでいいのか?

Pythonっぽい言語仕様だけど実際はC++をスクリプトにしただけっぽいので
Pythonで複数の値を返す時に使うTupleは使えないんだとよ

方法としては2つ、Arrayで返すかDictionaryで返す

以下はサンプルコードな ※RUNボタンで実行結果も確認できるぞ

https://gd.tumeo.space/?KYDwLsB2AmDOAEA5A9tYAodBidAzArpAMbwDmwYA+gIYBOt1AnpQG7UA2+wAFAJQBc6eMPi0K+WpHgBtAIwAaeAHJAVgyA-

308 名前:BkASDEsUBmAHSyALAF1MOAsTIVK0AJZEwt5JDrM2nHgKEixYCVIBvJQBrYEZZJX4FZVDgACZI1U1tGNtbHUj9IwBfTAsSSjFqaEY+QW9hNlp4OmqAXisqWqZWDi4+CvgAB1pbSDBYblreTp6+sCH6aQAGY154LHhZUd7+ydo5OYX4dQ0V8fXpOK3FrMNOzqr4OxIG8iobx2dXVo8OkW7Vge4bkY+xtY3aQhMIRE5LfaA+zA2IJcG7SETIEhNIZcFndBAA []
[ここ壊れてます]

309 名前:名前は開発中のものです。 [2024/04/25(木) 15:44:33.49 ID:Esvk0j05.net]
ありがとう配列で値を返して、インデックス番号でとればいいんですね
これがタプルってやつですか


https://www.reddit.com/r/godot/comments/1cckdwt/how_to_return_two_value_from_function/
あと、人いねーと思っていつもの癖でマルチポストしちゃった
ごめんなさい改善します

310 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 16:12:28.75 ID:ddMre8ET.net]
マルチでもなんでも問題解決できりゃなんでもいいんだぞ
あとTupleの話は出すべきじゃなかったな、忘れてくれ



311 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 16:35:23.02 ID:lNMYdYSi.net]
流石になんでも良くはねえよ…
それぞれの場所で時間使って答えてくれてんだから

312 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 17:07:59.94 ID:7TwSlN/Q.net]
同じ質問は数日待っても解答が得られなかったらとか制限は掛けた方がいいな
redittの方の解答にあるが戻り値がx,yの座標を扱うものであるならVector2を使うと読みやすくなる

313 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 17:42:32.62 ID:ddMre8ET.net]
>>306 一理ある。初心者は気を遣うことを覚えるより完成させることを優先しろ、オレの先輩の言葉

>>307 配列のIndexを返したいって話だから、Vec2はオーバーキルだと思うぞ。ぶっちゃけやってることは同じだしわかりやすい方でいいんだけどさ。This is KISS.

314 名前:名前は開発中のものです。 [2024/04/25(木) 18:26:51.75 ID:Esvk0j05.net]
すまん、どちらか一方にするよ
redditはそれにしても人多いねぇ

315 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 18:43:10.78 ID:/XEpAv2m.net]
つーかマルチポストで聞く暇あるなら少しは勉強しろよ
初歩的な問題で詰んでるなら尚更

316 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 20:20:30.32 ID:7TwSlN/Q.net]
>>308
質問のみならそうなのだが話題の元が倉庫番作るのにキャラ座標をマップ配列に変換するなのでそこまで含むと解答はこうなる
func cpos_to_mpos(cpos:Vector2i, size:int = 32) -> Vector2i:
return cpos / size

317 名前:名前は開発中のものです。 mailto:sage [2024/04/25(木) 21:13:31.21 ID:ddMre8ET.net]
おー、なるほどね!
Vector2iって勝手にTrancateしてくれるんだな、勉強になったわ

318 名前:名前は開発中のものです。 [2024/04/26(金) 06:09:14.77 ID:1Ez+K35D.net]
>>311
すみません
なんか自己流で複雑なやり方になってる気がする
普通はキャラ座標とマップ座標の変換はやらずに、座標を1つに統一したりするんでしょうか

319 名前:名前は開発中のものです。 mailto:sage [2024/04/26(金) 13:14:53.40 ID:yaANzBxw.net]
上の人も書いてるけど倉庫番と言うことはグリッドの途中で立ち止まる事はないだろうから、それであれば32で割った盤面上の座標だけ保持して画面表示の時に32倍するなりアニメ補間すればよいのでは
その方がセーブやアンドゥも楽になる

320 名前:名前は開発中のものです。 [2024/04/26(金) 13:46:32.39 ID:1Ez+K35D.net]
>>314
配列使わないということですか?
配列使わない場合、障害物の位置などを表現する場合、どうするでしょうか
二次元配列を使った場合、以下のようにマップを表現すると思います
1=壁,2=キャラ、3=動かせる箱、0=動ける範囲
[
[1,2,3,0,1],
[1,0,0,0,1],
[1,1,1,1,1],
]

グリッドの途中で立ち止まらないというのは、32ずつグリッド移動するという意味ですよね。
1pxずつ動かしたいわけじゃないので、それはその通りです。



321 名前:名前は開発中のものです。 mailto:sage [2024/04/26(金) 13:52:06.26 ID:XXsncJVJ.net]
もしかしてモブはスプライト管理じゃない?

322 名前:名前は開発中のものです。 mailto:sage [2024/04/26(金) 14:35:25.85 ID:/ZFKx6UF.net]
>>315
倉庫番である以上オブジェクトは必ず格子状に配置し管理される
それを2次元配列とみなす事ができる
配列を使わない場合は遠回りに配列があるのと同等の処理を行うだけ

なぜ>>314の説明で配列使わないという解釈になるのかが判らない
配列を使わない便利な魔法でもあると想像してないか?
配列を使わない方法があっても手間が増えて複雑になるだけだから配列が使われる
配列を使った方法で理解するのが定番






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<257KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef