2D特化エンジン Defold [初心者からOK]
GUIをGUIやコレクション内でつかうときはテンプレートって呼び方変わるのか
ややこしい
gui.get_nodeみたいなゲットテンプレートが見当たらん、ノードに入れてノードでdisableとかしろってことなのか? スプライトのスケーリングで
左と上に薄く白線がでる
俺環境だけなのか? 違うgoに置いたサウンドがエラー
これは回避すればいいだけだが
何が悪いんだろう スクリプトが長くなった
手間かかる
基本的にいろんなgoにスクリプトを配置してメッセージポストでやりとり
メッセージ受信が肥大化する カメラがわからん
マニュアルやリファレンスではわからないことが多い
フォーラムの質問とかサンプルを見ると説明が見つかることがある
これが手間かかるんだ
見てもわからないこともある
カメラは期待してたのと違ったから使わないことにしよう guiとcollectionが機能やプログラムが違う
これってつまり覚えること多いじゃねえか
guiをcollectionに変更したくなった
つまりスクリプトとcollectionの作り直しだ
面倒
面倒面倒
面倒面倒面倒
うわあああああああああ guiのnodeの#boxでは画像をauto:サイズそのままと、ピクセルで手動指定
collectionではgo#spriteで画像を倍率で大きさ調節する
不自由じゃ セーブはこまめにしている
変更あったファイルが反映されないので
たまにリビルドしないと不可解なランタイムエラー出たりするな ネットで調べたところ
Luaの関数は引数すくないとnilになる
たとえば
function aaa(a,b)
において
aaa(a)
は
aaa(a,nil)
ということらしいが
msg.post(url, message_id)
は
msg.post(url, message_id,{})
ということらしい
msg.post(url, message_id, nil)
だとランタイムエラー
テーブルではないからということらしい めんどくさくてやる気落ちるな
高速化のためにhash?裏でこっそり使えよめんどくせえんだよ逆変換できないからデータ増えるたびに逆変換LUTの更新とかもうしんどい
プロパティに文字列使えるようにしろよなんでここでもhashなんだよ
いちいちmainコレクションにコレクションプロクシを配置しないといけないのかよ guiの方にはgui.get_textでテキストノードから文字列を取得できる
goの方ではlabalというテキストを描画するためのものがあるが文字列を取得できない
なんでこうも直交性が無いのかなあ
ゲームを作るのではなくこのツールに悪戦苦闘するのが目的になってきた goって親子関係あるけどurl的には全部ルートで同名禁止
子goを列挙できない、
親goを取得できない
できないので回避するようにプログラムを作るしかない
はあ〜
goにdisableメッセージを送るとそのgoは非表示になるが
その子goや子にあるスクリプトや子孫には効果ないな
今はエディタでスプライトのスケーリングを指定できないからgoを間に挟めっていうのがあるけど
goがネストすると非表示にさせる時おかしいことになるジャンダメじゃん
非表示にするわけだしスクリプトなど動作するひつようないのでdisableにしたいけど
goを遠い座標に移動させるのが楽なのかな
子goは相対座標なので一緒に移動して事実上の非表示
子go列挙機能が存在しないしプログラムにハードコーディングなんて無理だからこの方法になるのか
今考えてるものはシューティングゲームじゃないから離れた座標にgoがあっても問題ないだろう goをファイルにするとgoの中にgo入れられない
goではなくてスプライトのスケールを変えることはできるけど
衝突オブジェクトの形はプログラムから変えることできないのか
たとえば手足が伸縮するもの作るの面倒だなあ なんでだあああ
ファクトリーのcreateでスケール変えたのに
スプライトが大きくなったが
当たり判定の範囲が大きくなっていない
わからん
わからん
わからん
わからん
わからん >>109
こまったときのフォーラム
できないこと・わからないことだらけだから
フォーラムなしでは話にならんのだ
■フォーラム
https://forum.defold.com/t/scaling-collision-object-when-game-object-is-scaled-def-521/547/16
この発言は2015年11月
グーグル翻訳
ベクトルを使用してスケールすることができます。
スケーリングが均一でない限り、衝突はスケーリングされません。
どうやらこれは
factory.create(component, p, nil, {}, vmath.vector3(8, 1, 1))
とすると
スプライトは横に8倍に伸びたものが表示されるが
当たり判定のスケーリングは行われない。
factory.create(component, p, nil, {}, vmath.vector3(8, 8, 8))
とすると
当たり判定のスケーリングが行われる。
だがスプライトはx,y,zが同じ倍率で拡大される。
何でこんな糞バグが長期間放置されているんだよ
何でこんな糞バグが長期間放置されているんだよ
DEF-521
2014年4月の発言もあるなあ なんでスプライトのクリック検出やヒットテストがねえんだよおお
とにかくめんどくさい
ちょっと何か増やしたり改造するたびに直さないといけないこと多い
原因は簡単なことさ
できないことが多いから回避策やLUTが増える 少なくとも初心者フレンドリーではなさそうだな
スレタイに初心者って入ってるけど HTML5用のゲームは
EdgeでプレイするとCPU負荷が高い
まともに遊べなくなるくらい
fps低くしても下がらない
俺だけなのかなあ apply_forceで巨大な値を指定しても
ちっとも速くないんだがこれどうなってんの 公式のAPIリファレンス、目的のところまで行くのにスクロールの嵐でちょっと酔う
とりあえず不満はそんなとこ 人間がいろいろ手間かけて
ハードコーディングするのはばかげてるだろ
変更があったとき悲惨だ
何を言いたいかというと
汎用的なスクリプトを作りにくい
hashとかurlとか文字列操作できない
親goを知る方法がない
むろん子goを調べるなんてものもない
特定のgoがあるかないかを調べる方法もない
プロクシ使うとfoo:/barなんていうめんどくせえurl
非同期メッセージでやり取りするから結果がわからない
そのほかいろいろ
解決策はhash逆変換LUTやハードコーディング
うぎゃあああ
あきらめるのはしゃくなのでこのツールを使い続ける みんなどうやってゲーム作ってんだろう
ゲーム作るのがこんなめんどくさいものなのか
Windows APIとかだと
ウィンドウ列挙とかあるし
直交性(get_fooがあるなら当然set_fooもある)高いぞ
このツール使っている人がどれほどいるかわからんが
気になるなあ msg.post("foo:/foo", "foo")
そいつのプロクシのunloadを実行する
msg.post(プロクシ, "unload")
メッセージfooが実行されない
先にプロクシのunloadで"foo:/foo"にあるスクリプトが消されるのかな?
メッセージは非同期だからヤダねえ
"foo:/foo"のスクリプトのfinal()で
もし"foo"を実行していなかったら"foo"を実行するみたいなことしないといけないのか?
めんどくせえ
やりたくない
でもそれしかないのかなあ
遅延してmsg.post(プロクシ, "unload")とかも結局ややこしい実装になるし >>119
複数あるプロクシを簡単にしたいのに拒まれる
修正あったら全プロクシの変更大変じゃん
可能な限りmain.scriptで済ませたいのになあ 文字列操作ならstring.format 使えばいいんじゃないの
hashとかよくわかんない素人だけど いまだにエディターからスプライトのスケーリングを指定できないのかよ
goをファイルにするとgoを入れられないし解決できない
プログラムからスケーリングできるがwyswygじゃないとサイズがわからねえからできねえよ
定期的にバージョンアップしているけど
フォーラムのQAで出てくる要望のほとんどが
できませんとか別の方法で何とかしろとかほったらかしばかり 触り始めてから苦節一か月、ギアの入れ方がやっとわかったぜ
最高のセミオートじゃんこれ 酷い、タイマーの時間があってない
local function timer_test(self, handle, time_elapsed)
local t = socket.gettime() - test__preTime
test__preTime = socket.gettime()
print("timer_test", time_elapsed, t)
end
function init(self)
test__preTime = socket.gettime()
timer.delay(5, true, timer_test)
end
実行すると
引数time_elapsedには前回からの経過時間として妥当な値が入っているが嘘である
socket.gettime()で実際の経過時間をみるとあっていない
game.projectで30fpsに設定していると
DEBUG:SCRIPT: timer_test 1.0000007152557 0.50099563598633
game.projectで10fpsに設定していると
DEBUG:SCRIPT: timer_test 1.0000005960464 0.1669979095459
これ作った人アホなんじゃないの
糞過ぎるだろ >>126
訂正
実行結果は
timer.delay(1, true, timer_test)
で調べたときのものでした osを変えて試した結果が欲しい
winは元々タイマー精度低かった気がするの すでに普及してるゲームエンジン使ったら駄目なの?
宗教上の理由とか?
限りある時間を無駄にしてる雰囲気が凄いな win10
30fps
DEBUG:SCRIPT: timer_test 1.0000003576279 1.3301792144775
DEBUG:SCRIPT: timer_test 1.0000007152557 1.0003833770752
DEBUG:SCRIPT: timer_test 1.0000010728836 1.0003833770752
DEBUG:SCRIPT: timer_test 1.0000014305115 0.9993839263916
DEBUG:SCRIPT: timer_test 1.0000017881393 1.0001029968262
DEBUG:SCRIPT: timer_test 1.0000021457672 1.0003833770752
DEBUG:SCRIPT: timer_test 1.0000025033951 0.9993839263916
10fps
DEBUG:SCRIPT: timer_test 1.0000001192093 0.79750823974609
DEBUG:SCRIPT: timer_test 1.0000001192093 1.0001449584961
DEBUG:SCRIPT: timer_test 1.0000002384186 1.0004596710205
DEBUG:SCRIPT: timer_test 1.0000002384186 0.99967002868652
DEBUG:SCRIPT: timer_test 1.0000003576279 1.0003890991211
DEBUG:SCRIPT: timer_test 1.0000003576279 0.99938583374023
DEBUG:SCRIPT: timer_test 1.0000004768372 1.0003795623779
何か問題あんのか
iosとかjit使えない環境だと違うかもだけど >>131
この結果は問題ない
何か別の条件あるのかな >>129
まぁコールバックでsocket.gettime二回読んでる時点で、なんだかななわけで
無駄が好きなんだろ それはただ調べてばかりで時間かかってばかりだからてぬいただけで指摘することではないだろ
揚げ足とりみたいなレスしかないのか
実際に起きた現象なんだよ >>126
この件は解決とします
設定かえてたらこの現象が起こらなくなりました 2d特化って分かりやすいコンセプト
lua対応
アセット豊富
開発元が信用できる大手メーカー
これだけでも使う価値あり 中途半端な知識と検証でディスってばかりのやつが、揚げ足取りと来たよ
黙ってエロゲだけやってろっつーの luaのよさがわからん
配列は1から始まる
ビット演算がない
+=やインクリメントがない
よくこんな糞ツールでふまんでないなあ
俺なら自分が愛用しているツールであっても不満レスついたら、うんそうだねって思う 不満はたくさんてんこ盛りだがdefoldはいいツールだ
このスレに初心者・新規さんどんどん来ないかな このツールを使ってる奴あまりいないからってのもあるけど
最近は5chにも人がいなくて深刻なんだよなあ TTFいれて日本語の表示はできるのだけど、実際に動かしてみたときになんかフォントが汚くなる。アンチエイリアスがあまり効いてない感じで。 エディタのフォントサイズや色は変更できないのでしょうか? 公式フォーラムでもエディタのスキン変更は機能要望であったような気がするから
そのうち実装されるんじゃなかろうか あと、これってテクスチャのインポートはドラッグで行うんですか? エディターのフォントサイズはctr +で変更できるんですね
何故か拡大には反応しませんが、他に対応するキーはあるんでしょうか メニューのviewからフォントサイズ変更ができる
コードエディタだけだけど >>149
この辺改善されると使いやすいですね、、、
関係ないですが、godotとどちらがいいですか?
プログラミングが簡単なのはどちらなんでしょう これ格ゲーみたいにアニメーションの最後だけに
当たり判定作りたい時はtimerつかって出現させるしかないのかい? >>152
スプライトアニメーションなら
アニメーション終了後にメッセージ吐くからできる >>153
おぉこんなに早く解答が・・・
ありがとうございます 今海外では非公式ゲームジャムをやってるらしくて盛り上がってるね
日本人代表いないかな さすがにこのゲームエンジン使ってる人いないんだろうな どうなんだろうね
日本人コミュニティとかあったら入りたい ここも十分コミュニティだろ!
コミュニティだよなあ? やっぱ日本語の解説がないから流行らないかと思ったけど
わりと解説サイトあるんだな 昨日の技術書展でも初心者用の冊子出してる人がいたよ 技術書展って初めて聞いた
しかし検索してもdefoldの冊子出てこなかった
もっと自己主張して! わりと頻繁に更新してるようだが、1年前と比べて変わったところある? ttps://www.defold.com/release-notes/ このゲームエンジンおもしろそうですが使ってる人いませんか?