2D特化エンジン Defold [初心者からOK]
■ このスレッドは過去ログ倉庫に格納されています
クリックしたときその場所にあるスプライトを検出することができないのか? というかスプライトにクリックイベントを使えんのか? gui.pick_node()はguiのノードの枠内か調べることしかできないのか go.set_position(position, [id]) これ、zオーダーも変わってしまうのか、クッソ面倒だな オープニング画面やプレイ中画面などの切り替えも クッソ面倒だななつくりだなあ 俺が知らないだけで簡単な方法でもあるのだろうか このテキストエディター オートインデントが賢くない イライラする テキストエディタはatomとか外部エディタと連動可能だな オートインデントのパッケージもある 画面の切り替えはゲームオブジェクト内にコレクションプロキシ入れて スクリプトからloadメッセージ飛ばす的な感じ msg.post("foo#collisionobject", "disable") エディターの方で最初からdisableで作っておくとかできないのか ミリ秒は扱えないのか 思っていた以上に困ったことだらけだなあ hash()めんどくせえ デコードはどうするんだ? "#script"を付け足したいんだが isFoo = true print("isFoo=" .. isFoo) これ、エラーなのかよ go.get(hash("/level/answer3#script"), "answer") hashつかうとidねえよエラー バグか bool, go.get/set使うだけでこんな手間かけさせやがって とりあえず動くようなもの作って コレクションプロクシでメニューとか出せるようにしようとしたら urlが変わってしまって面倒なことになった 各goなどにスクリプト配置してそこで可能な限り処理して 別のgoの操作はmsg.postのやり取りがいいのかなあ スクリプトファイルやmsg.postが多くてめんどくさ hashはどうやって文字列に戻すんだー hashにされちまうから文字列操作できねえ testのあとENTERおしたらset_time_stepに書き換わってた エディタの自動なんとかって機能だと思うが逆に手間かかるな もっと機能充実しろー もっと簡単に作れるようにしろー luaバージョンアップしろー 物理演算テトリスとか作ってみてえええ https://www.youtube.com/watch?v=cMTtNAjCG68 こういうゲーム中にスプライトの形状が変わるものはどうやって実装するんだ? 当たり判定の形状も変えないといけない >>76 コリジョンの形状三種類しかないから無理なんじゃないか ベータ版だし気長にいこうや 日本語の文字をプログラムに含めるって すごく無駄というかファイルサイズが大きくなる気がするんですけど 何とかなんねえかなあ 定期的にバージョンアップしているみたいだけど じれってえ ゲーム作るの大変だなあ みんなよく手の込んだものとか作れるなあ ファクトリーとかプロキシとかめんどくせえなあ 名前から全部作れるようにしろよ なんでクリックイベントがねえんだよ めんどくせえったらありゃしない コレクションはpositionとかあるけど コレクションプロクシに変更したら位置変えられなくなってしまうのかよ プロパティに文字列使えないの不便だなあ 別の場所にLUTとか作らないといけない たとえばhtmlでいえば<img src=foo alt=bar title=baz > lut[hash(foo)].bar="bar" lut[hash(foo)].baz="baz" みたいなのを別の場所につくらないといけないのか guiが他と違うので覚えることが多い ノードの重なり順(描画順)はz座標を無視するので別の方法になる ノードの方はドラッグで順番変えると説明にある(グーグル翻訳) だが、できねえ ドラッグすると別のノードの子に入れられる レイヤーで指定するとノード順より優先で描画順を指定できる レイヤーは名前を指定して追加すると最後に追加される ドラッグしてもレイヤーの順番を変えられないんだけど あとからレイヤー1とレイヤー2の間にレイヤー1.5をはさみたくなったときどうするんだろう すべてのノードを一つ一つ別のレイヤーに移し替えていくのか そしてレイヤー名も妥当なものに移し替えていくのか 今のところまだそういう事態が起きていないけど >>84 エディターで編集時はz軸の値で重なり順を指定できた でも実行時はレイヤー順に重なる あははは エディターでitemって打った後Enterで itemが消えてclient:settimeout(value)になりvalueが選択されている状態に 換わる補完機能はやめてくれえええ client:settimeoutにiとtとeとmがあるから選ばれるらしい これはうろ覚えでプログラム書けて便利だなあ と感じたことは今のところない コメントや文字列でもこの機能が働きやがる 画像(スプライト)を好きなサイズに表示できると楽なんだけどなあ https://www.defold.com/manuals/2dgraphics/ go.animate("my_object#sprite", "scale.x", go.PLAYBACK_ONCE_FORWARD, 1.5, go.EASING_INOUTSINE, 2) スプライトにはscaleプロパティがあるのか でもエディターでは扱えないぞ プログラムからしか扱えないプロパティなのか エディターで設定したいのだが goの方で倍率でサイズを指定しないといけないのが納得できない scaleプロパティではなくピクセル単位のサイズ指定したい スプライトでできないとgoの入れ子が増えて複雑になるじゃんか ええええええ guiのBOXノードはアルファブレンドが指定できるけど スプライトには半透明とか無いのか? うわあああああ スプライトに対して標準のマテリアルでアルファブレンドができたけど マテリアルにある値だからプログラム実行でしか値を変えられないな エディタでコレクションを編集中の表示でアルファ値を変えられないから100%不透明 独自のマテリアル作って50%を初期値にしてみた 当然エディタでコレクションを編集中は50%固定で表示される エディタでの表示にもマテリアルのプログラムが実行されて装飾された表示が行われるのはすごいと思うけど プロパティがいじれなくてもったいねええ 文字列がhashにされるから逆変換するLUT作ったよ めんどくせえ たまに衝突イベントが2回来るなあ なにか確実に防ぐ手立てを考えねば メッセージで動作するからなあ 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 おぉこんなに早く解答が・・・ ありがとうございます 今海外では非公式ゲームジャムをやってるらしくて盛り上がってるね 日本人代表いないかな さすがにこのゲームエンジン使ってる人いないんだろうな どうなんだろうね 日本人コミュニティとかあったら入りたい ここも十分コミュニティだろ! コミュニティだよなあ? やっぱ日本語の解説がないから流行らないかと思ったけど わりと解説サイトあるんだな ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる