トップページgamedev
191コメント74KB

【JAVA】2Dアクションゲームを作る【初級】

■ このスレッドは過去ログ倉庫に格納されています
0001ヤンス04/09/08 09:17ID:Qk2n0ep6
JAVAアプレットでファミコンのゲームにありそうな2Dアクション物を作ろうと思い
二ヶ月くらい前から勉強を始めて最近やっと、ショボイながらも記念すべき
人生初の自作ゲームを作って今、第二作目を作っている所なのですが、やり方の
分からない処理が多すぎて困っております。
勿論ネットや本等で調べまわった上でスレを立てました、何でこんな処理が
分からないんだよと思われるでしょうけれど指導の方お願いします。
上級者の方達と質問のやり取りをしたいのです。

当面の目標は倉庫番、ロードランナー、ドンキーコング等の1画面固定タイプの
やつを作ろうと思います、とりあえず現段階で二次元配列を使っての
マップと自機の表示まで出来てます、二次元配列を使って表示した
マップの壁などに、どうやって当たり判定を付けるかで躓いてます
当たり判定の付け方の考え方など教えて貰えたら、ありがたいです。

ちょっと爪垢が溜まってきたので、また後ほど書きたいと思います。
0064名前は開発中のものです。2007/03/03(土) 08:01:40ID:94HMLa1l
winのネイティブゲーの方がよっぽどランタイムに頼ってるこの矛盾・・・問題は初めから入ってるかどうかだな。

速度も描画作法無視した描画やらない限り十分過ぎる。
javaが遅いとか今時言ってる連中は頭が1.3の暗黒時代で止まってる。

3Dの方ならそもそも高級すぎるんでゲーム向きじゃない。JOGLも1.0出したからこれから。

0065名前は開発中のものです。2007/03/03(土) 22:20:31ID:4ndYI6Y/
java web start が普及してほしい。
というか自分のサイトではjava web start使うようにするわ。
0066名前は開発中のものです。2007/03/08(木) 22:45:43ID:v+aMbBg1
>>63
まぁ、それも後数年だよ。

そのうちパソコンはみんなJavaベースのOSで動いてJavaアプリを動かすための環境になる。
WindowsやらMacといった旧型OSの方が、JavaベースOS上のランタイム(エミュレータ)で動くようになるだろうね。
0067名前は開発中のものです。2007/03/09(金) 03:37:19ID:l4bht04N
組み込みの世界ならそれもありかも
0068名前は開発中のものです。2007/03/09(金) 14:46:34ID:UpVLWozu
仮にそのJavaベースのOS上で動くWinエミュやMacエミュが完璧だとして、
そのエミュ上にさらにJavaランタイムが必要になりそうな
0069名前は開発中のものです。2007/03/09(金) 15:52:55ID:uJO/ivat
長時間起動したままの場合GCがメモリの断片化を考えると有利だよな
実際ルータとかレコーダとかそういうのでも起こってるし

組み込みのプログラムの規模の肥大化にあわせてアプリ側もヒープの動的確保使わないとやっていられなくなってるし
0070名前は開発中のものです。2007/03/10(土) 12:22:18ID:xgekqMww
んでそういう組み込まれた機器がPCなんて触った事ありませんって連中の所にあってUIがグラフィックスバリバリとかね。
Flashのメニューみたいな。携帯化するよw

エージェントの様なシステムと組み合わせる時にJavaOS使えるかもね。

カーナビにタチコマ、そこからネットワーク介して思考戦車に移動、電脳に移動とか下にあるモン意識せず共通に仮想化出来て。

まあスレチだが
0071名前は開発中のものです。2007/03/10(土) 13:13:11ID:NZYMmz3a
>>70
これからのゲームはMIDP2.0が標準になるだろうね。
携帯ではすでに当たり前の存在になりつつあるし、パソコンでも利用可能。
機能も本格的なフレームバッファや標準的なサウンド機能とゲーム開発には十分だし。

MIDPで開発すれば「一度書けばどこでも動く」Java本来の世界に逝くことができる。
0072名前は開発中のものです。2007/03/10(土) 14:14:32ID:/HVMBhqB
JavaMEじゃちと無理だろ
JavaSE以上にヒープや使えるマシンパワー、メモリ速度が違いすぎてそれがネックになりやすい
あくまでも同一言語で開発が出来て移植が容易という程度だな
同じキャリア内でもゲームとかが個別に対応してる現状を考えるとなおさら
0073C使い2007/03/17(土) 20:31:37ID:e0pLCHEg
eclipseちょっと見たけど
これからはJAVAの時代がくるかもって本気で思った。

eclipseほどのソフトが無料だったら
インディアやチャイニーズのJAVA人口増えそう。
もちろんジャパニーズも
0074名前は開発中のものです。2007/03/18(日) 01:44:09ID:/FCakVJu
そのEclipseはオライリーに去年負け組みの烙印押されてネットで反感かって修整させたようだが
Googleも基幹システム実はJavaつかってましたというのもわかっちまったしなぁ
0075名前は開発中のものです。2007/03/19(月) 00:09:04ID:0mpAkYzl
久しぶりにJOGLのサイトに行ったら、大分バージョンアップしていたな。
0076名前は開発中のものです。2007/03/19(月) 21:03:58ID:Zu/PHoBB
1.0が去年でて安定してるんで2DゲームでもJOGLは悪くはないだろうね
ただ少し古めの統合ビデオだときつい
915GM以降がターゲットならまったく問題はないが
0077名前は開発中のものです。2007/03/19(月) 21:43:02ID:UrJuPpg+
915GMってそんなに良いチップなの?
具体的にGF4程度の性能はある?

915GM以降ってよく聞くんだけど偶然かな・・・
0078名前は開発中のものです。2007/03/19(月) 23:02:35ID:Zu/PHoBB
915GM以降がIntelのビデオとして3世代目あたりか
855GMEなど世代目まではDirectXは6くらいまでしかサポートしておらず3Dはおまけ程度
それでFF11が動かなかったが915以降はDirectX9対応して動くようになった

3Dの速度も一気に3倍くらい速くなってる感じ
さすがにGF4までの速度はいってないよ
統合チップとしては3Dもかなりのものになったのが915GM

GeForce4 MX クラスになったと思えば近いかも
ただ、当時より圧倒的にCPUやらメモリの量やらバス帯域やらよくなってるので実現できるものが違いすぎる
915GMなら比較的新しいから性能が低すぎることもなくサポートしやすいってのも大きいね

ちなみにMがつくとノート用なのでノート用としてみるとUMAビデオとしてはかなり高性能に見えると思う
915GMの後継が945GMでクロック向上とサポートしてる命令が増えてるとかの差がある

あと超低電圧版や低価格機だと945GMSとかになってメモリの速度とかいろいろと遅くなってるので
855GME並みに遅い場合もある
0079名前は開発中のものです。2007/03/20(火) 22:03:47ID:nx0qHnSt
まあ俺はNetBeans派だけどね。
モジュールの作り方覚えたら組み込んでいきたい。
やっぱJDKと一緒にDLできるってのは初心者に勧めやすい。
0080名前は開発中のものです。2007/03/20(火) 23:00:07ID:3GNvhVA2
NetBeansは5.0だったかあたりからアプリケーションで使うライブラリを
自動的にlibフォルダにコピーしてマニフェストファイルでリンクしてくれるのが便利だよな

クラスパスをちゃんと知ってる人は別に問題ないけど、知らない人でも扱えるその手間のなさはいい
0081名前は開発中のものです。2007/04/04(水) 17:31:18ID:xZsJ6jDt
FlashとApolloに完全に食われつつある昨今、皆様いかがお過ごしでしょうか。
0082名前は開発中のものです。2007/04/04(水) 17:47:32ID:+3v2Q0mp
最近ApolloApolloと連呼して荒らしまわってるのはお前か
会社名とか聞くと面白そうだな
0083名前は開発中のものです。2007/04/04(水) 17:58:33ID:UdFABoGJ
仮想マシン語(中間言語)走らせるタイプだと表面的な言語はシンタックスの違いですらなく、
プラットフォームなんてVMだから関係なく、そこまで行くと
開発の容易さと保守性と開発環境の充実の方が重要だろうなぁ。

JavaのEoDは中途半端で、ActionScriptなんてEcma-262だから保守性なんてあったモンじゃないし、
どっちもどっちだろ。

javaベースはプログラマ、Flashベースはデザイナで済み分けられてる現状、お互い平行線だと思うんだが。
0084名前は開発中のものです。2007/04/06(金) 15:58:22ID:sxRNfl4U
AS/Apollo系のスレではJava厨が跋扈してるのね
正直どういう基準で同列に語ってるのかが理解できない
0085名前は開発中のものです。2007/04/06(金) 22:54:19ID:+twN6j/w
まー、適材適所がわからん馬鹿なんだろ。
0086名前は開発中のものです。2007/04/12(木) 19:15:04ID:e/3TFgB5
これもひどい
0087名前は開発中のものです。2007/04/13(金) 00:59:09ID:uMYzPjGT
JAVAってJITなの?
0088名前は開発中のものです。2007/04/13(金) 04:14:59ID:X1dHKijv
HotSpot
0089名前は開発中のものです。2007/04/13(金) 10:45:12ID:HyA+bf47
JITは8年くらい前に卒業
Hotspotというレスポンスとスループットを両立するものになっておる
0090名前は開発中のものです。2007/04/27(金) 19:41:09ID:W0CIDG0i
12fpsくらいのアクションゲームがあるとしたら、おまえらがっかり?
フレームワーク的なものの推奨fpsを模索してるんだが、ラインを知りたい。
0091名前は開発中のものです。2007/04/27(金) 19:52:53ID:2hgvmjyM
別におもしろければなんでもいいよ

ただ、60fpsが余裕で出ると思うのでマシンスペックで300MHzとかを対象にしているのであればそれでもいいけど
最低30fpsはほしい希ガス
0092名前は開発中のものです。2007/04/27(金) 20:56:23ID:W0CIDG0i
Javaで30fpsって迷うよね。TimerTaskかポーリングか。
低負荷なポーリングとかあるんだろうか。
0093名前は開発中のものです。2007/04/27(金) 21:14:55ID:2hgvmjyM
精度重視ならある程度のsleep等+ポーリング
実際はフルスクリーンならタイマー+垂直同期のみでいける

ウインドウ時で垂直同期を取るにはJOGL+UMA以外のビデオ搭載のやつが必要

どっちにしろ60fpsは余裕
0094名前は開発中のものです。2007/04/28(土) 01:15:47ID:Yt5Nv7VQ
>>90
12fpsでも遊べなくないからがっかりはしない。
GUIツールキットと描画に何を使うかでもfpsは差があるからそれ次第でもある。
AWT + JOGLで最近の性能ならjake2で300fps位、JOGLのデモでもそれ以上出る。

描画が何にしてもSwingだとSwingのバッファに書いてからパイプラインに渡す分遅いがそれでも、
60fpsは出る。今時javaで速度気にすんのは知らん人間だけだよ。

それより、俺としてはデカイGCがドカっと来て明らかにもたついてんのは気になるかな。小さいCGがチマチマ来るのは気にならない。

今からフレームワーク作るならアプレットよりJWSを視野に入れた方が良いよ。
と、AWT+JOGL+JMF(+JOAL)+viajeで作ってる最中の俺が言ってみる。
AWT使うならインストール型標準拡張のJNIくらいpure Javaと差はないと思ってる。

・・・と、俺の考え。
0095名前は開発中のものです。2007/04/28(土) 08:48:04ID:GbSr5Tht
>>94
JOGLはGLJPanel使うと60fpsでないな
その改善をJavaSE6でやるはずだったが、ベータ版は有効だったのに正式版で無効になった
JavaSE7でちゃんとOpenGLパイプラインが動けばGLCanvas捨てることが出来るんだけどね

GLCanvasはフルスクリーン時描画が出来ないバグもちだから実は使いたくないと思ったり
そのかわりビデオチップによってはウインドウモードで垂直同期が効くというすぐれものだったりもするが
0096名前は開発中のものです。2007/04/28(土) 11:37:11ID:HANiMBGR
パイプラインの変更は既に実装済みでも有効にするとVGAドライバのバグ誘発してOSと無理心中だから仕方ない。

しかも有効にした途端に必ず落ちるという訳でもないみたい。やっかいだねぇ。
java側の問題ではないからSEのバージョンは関係ないよ。

ゲームならGUIは自前だからAWTの見た目なんて関係なし、フルスクリーンはどうだろう、やる人間の好みかな?エロゲだと居るだろうねw

けど、アプリ実行中にころころウィンドウとフルスクリーン切り替えれるのってwinくらいなんじゃなかったっけ?

JOGLが実際に使える段階まで来たのは良い事だよ。しかも、最近やたら更新早い。

java.netでホストされてる標準ライブラリに取り込まれてない
公式プロジェクトは頻繁にクラス・パッケージ構成が変わるからフレームワーク組むとき困るよ・・・。
0097名前は開発中のものです。2007/04/28(土) 12:05:58ID:PlJLH/jq
フルスクリーンはアクション系こそ必要
そしてここはアクション系のスレ

パイプライン有効にするとすべての環境で不具合が出るんだけれども特定のドライバの問題ってわけではないようだ
J2SE5.0からSwing描画にOpenGl使えるようになってるんだけれども、有効にするとリペイントマネージャまわりがおかしいのかめちゃくちゃになる

標準でOpenGL使えるようになるには遠すぎ
0098名前は開発中のものです。2007/04/28(土) 12:36:04ID:usJc8olx
-Dsun.java2d.opengl=true
-Dsun.java2d.opengl.fbobject=false

付けて暫く動かしてみそ、ドライバによってはドライバのバグを再現する。必ずなる訳ではない。
0099名前は開発中のものです。2007/04/28(土) 12:50:51ID:PlJLH/jq
UMAビデオでもGeForceでもだめだが?
0100名前は開発中のものです。2007/06/03(日) 17:25:21ID:wvWDdkI8
12fpsでアクションゲームってwww
今時、Flashでも30fpsは出るぞ
0101名前は開発中のものです。2007/06/03(日) 17:30:39ID:qjYqK/Ln
あおり方間違ってるぞ

Javaでは垂直同期を取って60fpsが可能。これはflashには不可能。

上の12fpsというのは作者が12fpsでつくってもいいか?といってるだけかと。
そもそも4月の書き込みに今頃つっこむなぞ・・・
0102名前は開発中のものです。2007/09/08(土) 04:36:01ID:sP8eKrEk
Java(アプリケーション)のスレッドがないのでここで
質問させてもらいますが、インスタンスのプールってどのように
実装していますか?
あと、画像の透過はどうしていますか?gifやpngだとジャギーがでてくる
ので画像を二枚用意して比較させて1ドットづつアルファ値を設定して
いますがいい方法があったら教えてもらえませんか?
0103名前は開発中のものです。2007/09/08(土) 13:04:20ID:F1K7atqP
インスタンスプールの実装がわからないのならそれはまだ使うタイミングではないと思われ
必要な場合ってのは限られるからね

画像に関してはJava2Dでアンチエイリアスをかけるようにする
もしくはpngでαつきで作成しておく
0104名前は開発中のものです。2007/12/31(月) 01:08:49ID:DW0nBc61
ggsdg



dfhhf




fdgg



sdgsd


sdgsd

0105名前は開発中のものです。2007/12/31(月) 06:06:31ID:nIWs4m/L
晒しあげ
0106通行中のjuner2008/03/10(月) 09:01:44ID:Hz+DJliq
通行ついでに、最近スキルを得る為に作ってみているものを貼ってみる。
ttp://juner.csx.jp/game/unb/
0107名前は開発中のものです。2008/03/10(月) 09:11:13ID:Dcr87hng
>>106
http://www.vector.co.jp/soft/win95/game/se119747.html
ゲーム用爆発アニメーション作成ツール
0108名前は開発中のものです。2008/05/11(日) 01:59:19ID:klztBJ6c
>>105
0109名前は開発中のものです。2008/06/04(水) 17:14:17ID:xVETCOHb
新しいgamdeve かきかき

TopPage - game-develop.com wiki
http://wiki.game-develop.com/

GameDevWikiを何とかするスレ
http://pc11.2ch.net/test/read.cgi/gamedev/1156117275/
0110名前は開発中のものです。2008/08/15(金) 10:54:51ID:fu+JQp+m
あげ
0111名前は開発中のものです。2008/08/18(月) 17:57:33ID:cm8lH5DO
Javaゲーム作成の総合スレみたいなスレが無いのですが、
どなたかたてていただけないでしょうか?
0112名前は開発中のものです。2008/08/18(月) 21:34:26ID:GqjEpIM5
総合スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1013953851/
0113名前は開発中のものです。2008/08/19(火) 16:56:19ID:BFNfndoR
前立ったのはすぐ落ちたからな・・・
0114名前は開発中のものです。2008/08/19(火) 19:25:28ID:WJzGqLN0
この板を「java」で検索したら五つありますね。
アクションを作りたいならこのスレ、他には

「Javaアプレットのゲームの限界は!」
http://pc11.2ch.net/test/read.cgi/gamedev/1005230153/l50

「JAVAアプリでゲーム」
http://pc11.2ch.net/test/read.cgi/gamedev/1033926010/l50

言語としての質問ならプログラム板にたくさんスレがあります。
過去には単発作品スレみたいなとこでボンバーマンやさいたまSTGを
作ってるスレをみた事あります。

それとも、「Javaゲーム総合」みたいなスレがほしいとかでしょうか

いまJavaでがんばってる人いないから期待します。
ここも休眠ぽい。
http://javagame.skr.jp/
0115名前は開発中のものです。2008/08/20(水) 01:05:24ID:LURDNrEZ
もう落ちたスレばっかりだけれども過去に語りつくしたというのが正しいかと
基本的に1.4.1の時点でアクセラレーションがきいてきたりしてるし1.5、1.6とあまりパワーアップはしていない

あ、でもJavaSoundは使いやすくなってると思う

凝ったことをしたりアクセラレーションを最大限にしたいのならJOGLを使う

ジョイパッドを使いたいのならJNIは必須になるのがちょっと厄介かな
ほとんどの場合Windowsさえ対応していればいいのだろうけど
0116名前は開発中のものです。2008/08/20(水) 01:13:52ID:LURDNrEZ
基本的にJava自体の機能・性能向上と1GHzを超えた今のマシンの性能では大概なんでもできるよ
60fpsでアルファブレンディングばりばりでOgg Vorbisでサウンドもならしたりするのもね

ゲーム自体の作成が初めてなのか、Javaでの作法がわからないのかというところだが、
前者なら今はゲーム開発がわかる雑誌がほぼ全滅してるのでちょっとつらいかもしれない

15年前は大量にあったのにねぇ

後者ならば「15歳からはじめる〜」というのが一番の解かな

ゲームをとにかくすぐに作りたいのならば「ShinGL3」
そこにある2面まであるサンプルSTGがShinGL3つかってるから機能は分かりやすいはず
0117名前は開発中のものです。2008/09/07(日) 13:54:34ID:8xBduqc8
そもそもVMが糞だから
Sunの技術者って底辺ドカタみたいなのしか居ないんだろうか
0118名前は開発中のものです。2008/09/08(月) 11:12:42ID:xrQK/F8B
4年目にしてやっと118レスおめ
0119名前は開発中のものです。2008/09/08(月) 12:43:48ID:dLS/wPVc
記念パピコ
0120名前は開発中のものです。2008/09/21(日) 18:46:00ID:OsH1BNzp
Javaでアクションゲームつくっても、コントローラーが使えないから遊べないんだよな・・・・
0121名前は開発中のものです。2008/09/21(日) 21:24:54ID:r4b2JGP3
JNIで実装汁
0122名前は開発中のものです。2008/09/23(火) 00:03:29ID:vRkjT2mF
JoyToKeyみたいなのをユーザ側で用意してもらうとか
0123名前は開発中のものです。2008/09/23(火) 00:29:14ID:tOuH/n2C
jmonkeyengine
0124名前は開発中のものです。2008/10/03(金) 00:20:58ID:+ke5of9f
javaで画面を揺らすにはどうしたらいい?
ドラクエでダメージうけたときみたいに
0125名前は開発中のものです。2008/10/03(金) 00:53:13ID:j+bPhG3o
Javaだろうがそうでなかろうが、変わらんと思うけど
0126名前は開発中のものです。2008/10/04(土) 01:25:42ID:Ai04tfzT
仮にJavaAppletで作っているとしたら、JavaScript側にアクセスして
ウィンドウ全体を揺らすとかいうネタを仕込むのも面白いかもね
雑魚戦じゃなくイベント限定にしないとウザイが
0127名前は開発中のものです。2008/10/04(土) 04:59:23ID:wlsIJF4e
オート戦闘でメッセージ作成と表示の同期をとるにはどうしたらいい?
0128名前は開発中のものです。2008/10/04(土) 10:19:46ID:eBSs+DHR
Javaだろうがそうでなかろうが、変わらんと思うけど
0129名前は開発中のものです。2008/10/04(土) 11:01:12ID:XU1Q4+7D
なんかJavaとまったく関係のない質問ばかりくるのはなんでだろう
0130名前は開発中のものです。2008/10/04(土) 12:32:07ID:NE5vtfU1
つまりJavaでのゲーム制作も一般的になったと言うことですね、分かります
0131名前は開発中のものです。2008/10/04(土) 12:34:28ID:eBSs+DHR
確かにそういう面はあるのかもしれないな
0132名前は開発中のものです。2008/10/04(土) 14:12:05ID:wlsIJF4e
お前らスキルがないなら黙ってろよ
0133名前は開発中のものです。2008/10/04(土) 17:03:04ID:XU1Q4+7D
質問するスレまちがえてるのになんだこいつは


ああ、釣られてしまったか
0134名前は開発中のものです。2008/10/04(土) 18:12:06ID:wlsIJF4e
アクションゲームでもこういう要素はあると思うんだけどな
ああ、ここは「初級」者しかいないのか・・・・
0135名前は開発中のものです。2008/10/04(土) 18:53:47ID:lCxx5DEZ
そりゃ上級者さんたちはこんなところに頼らなくても自力で解決なさいますから・・・
0136名前は開発中のものです。2008/10/05(日) 02:18:13ID:cgXuY+W+
アクションゲームでもない質問だったのかいw
0137名前は開発中のものです。2008/10/05(日) 02:55:24ID:cgXuY+W+
まあ、1フレーム中でのエフェクトやメッセージ表示や音再生を保持するクラスを作って、
listに突っ込んでいけばいいんでないかい?
んで、frontから再生していく。

1フレーム区切りだとデータ量が多くなると思うなら、もっと長く区切ってもいいし。
その場合、コードが煩雑になるけどね。
0138名前は開発中のものです。2008/10/05(日) 10:47:17ID:esDCMgrI
スレ間違えて自分で解決も出来ないくせに初級者しかいないとか
わめきちらすID:wlsIJF4eがいるスレはここですか?
0139名前は開発中のものです。2008/10/05(日) 11:26:48ID:k/pYUo2C
JMonkeyEngineの解説してください
よろしくお願いいたします
JMonkeyEngineは3Dのエンジンみたいですが、2Dもつくれますよね?
ゲームループとかも管理してくれるみたいだから知りたいです
よろしくお願いいたします
0140名前は開発中のものです。2008/10/05(日) 14:46:42ID:vHSrsShI
動作上2次元かもしれないけど
内訳では4次元配列くらいが必要では?
0141名前は開発中のものです。2008/10/05(日) 22:48:03ID:B28yXkKi
アプレットとかJWSとかでJOGLやるやつってdll類はどうしてんの?
全部署名つけてオレオレ証明書でダイアログ出す?
それでユーザに「危ないってダイアログ出すけど信用してOK押して」って言うわけ?
0142名前は開発中のものです。2008/10/05(日) 22:55:31ID:Za20XjLJ
Sunの署名付きのjar(DLL入り)が配布されてるのでそれを使う
0143名前は開発中のものです。2009/02/21(土) 10:06:43ID:rhB09fqh

if(isJump == false && jumpKey == ture) { // ジャンプ中でなく、ジャンプキーが押されたら
isJump = true; // ジャンプ中にする
vy = -jumpSpeed; // ジャンプスピード(初速)
}

vy += gravity; // 重力をかける

----------------------------------------

横スクロール(マリオ型)アクションゲームで、上記みたいにジャンプを実装している場合、
「ジャンプキーが押された時間が短い場合は小ジャンプにする」
という風にするには根本的にプログラムを変更しないといけないですか?
0144名前は開発中のものです。2009/02/21(土) 10:44:45ID:Wn6D0K7q
物理的にはおかしいけど空中でもボタンが押されてたら上向きにちょっと加速度与えればいいだけ
実際マリオはそうだろ
01451432009/02/23(月) 19:48:11ID:8ReVmxnp
>>144
マリオはそうなんですか、知りませんでした。
それでやってみます、ありがとうございました。
0146名前は開発中のものです。2009/03/04(水) 20:49:06ID:BgNcpKU6
>>51
(´・ω・`)ショボーン
http://imepita.jp/20090124/089930
0147名前は開発中のものです。2009/03/22(日) 07:24:47ID:O3SVwcBu
JOGLのGLCanvasで自前ループ内display()させてるとどうもちらつく
別スレッドでAnimator使ったりしないとまずいのだろうか
垂直同期との明示化がわからん(環境によって自動的にできたりできなかったり?)
0148名前は開発中のものです。2009/03/22(日) 12:09:18ID:t26wnkyW
displayってコールバックだから自分で呼ばないほうがええんじゃ
0149名前は開発中のものです。2009/03/23(月) 20:58:13ID:UqizvfMn
というか、それで例外吐かないんだ。
JOGL使いは占めのころは、OpenGL系のAPIを別スレッドからアクセスしたら
いきなり例外吐いてびっくりしたものだが。
0150名前は開発中のものです。2009/03/23(月) 21:25:56ID:uzXOwN2A
TextureIOの初期読み取りロジックを別に抜き出した時は別スレッド扱いの例外吐かれて困まった。
一本道のつもりだったのだけどイベントリスナスレッドとかが影響してるのか。
0151名前は開発中のものです。2009/03/23(月) 22:17:05ID:dbyr6AlE
>>150
自分はTextureIOのnewTextureがコンテクスト依存と思っていなくて
半泣きになったことがある。
enableとかbindをしなければ、別スレッドから呼んでも大丈夫だろうと
思っていたんだよなあ…

結局、テクスチャ登録は絵だけ準備してフラグを立てて、
displayメソッドの中からフラグをチェックしてテクスチャオブジェクトを生成するという
めんどうな動きになった。
01521502009/03/23(月) 22:38:48ID:uzXOwN2A
>>151

同じ症状だったと思う。とった解決策も同じだ(w
もうちょい綺麗に書くイデオムみたいのはあるのかな。
01531512009/03/23(月) 23:00:18ID:ZB3pm8mv
>>152
仲間がいたようなのでついでに聞いてみる。

テクスチャオブジェクトのガベージコレクションってどうしてる?
ファイナライザにdisableを仕込みたいところだけど、
ファイナライザはGLAutoDrawableとは別スレッドから呼ばれるだろうから、
同じ理由で例外吐いて死にそうな気がする。

自分の場合、これはまだ解決してない。
オブジェクトが破棄されるたびにVRAMにゴミが残るわけで、
どうしたものかと思っているんだが…

やっぱり、ゲームエンジン側で管理すべきなのかな。
テクスチャオブジェクトの管理用コレクションとモデルオブジェクト管理用コレクションを見比べて、
「そのテクスチャを利用しているモデルオブジェクトがもはや存在しない」
となった時点で明示的にdisableをかけて、それからremoveする、と。
0154名前は開発中のものです。2009/03/23(月) 23:22:49ID:uzXOwN2A
>>153
シーン中にインテリジェントに捨てる事に関してはオブジェクトに関してもテクスチャに関しても考えてないや
シーン中は(理論上)無限にプーリングしてシーン終了時の後始末でシーンコンテキストのテクスチャを全disable & 削除っていう方針
テクスチャ画像の重複登録をしないのは当然として、そこまで多種の画像を読み込む事を想定していないってのが正直な所
01551512009/03/23(月) 23:27:33ID:ZB3pm8mv
>>154
なるほど。その辺は割り切っちゃうという手もあるな。
自分のゲームエンジンでもテクスチャは共用されるから、
確かに、さほど厳密に管理しなくともVRAMを圧迫しない気はする。

考えてみれば、256x256x32bitなら、たかだか256KBだからなあ。
01561542009/04/02(木) 19:49:00ID:rnxHGA2h
過疎っているなぁ。
基本的な方針は同じだけどdisableに関してはテクスチャを使うときに
enable → bind → 表示 → disableを毎回するように変えた。
やっぱりカレントスレッド問題が色々と面倒くさいので。
0157名前は開発中のものです。2009/04/09(木) 01:21:53ID:QVY5xGft
>>156
総合スレとの区別があいまいだしねえ…

ちなみに、enableしてないテクスチャオブジェクトをdisableすると例外吐くんだっけ?
これを受け付けてくれるなら、いきなりdisableしてもいいような気がする。

逆に、enableを多重にやると、VRAMに同じテクスチャイメージが多重登録されたりしそうで心配だが、
取り越し苦労だろうか。
0158名前は開発中のものです。2009/04/14(火) 17:40:52ID:Wx3DB5EW
>>144
すげえあたまいい・・・と感動してしまった
0159名前は開発中のものです。2009/05/14(木) 21:04:29ID:jnlC9FY/
>>146
     オハヨー!!
    ∧∧ ∩
    (`・ω・)/
   ⊂  ノ
    (つノ
     (ノ
 ___/(___
/  (___/
 ̄ ̄ ̄ ̄ ̄ ̄
0160名前は開発中のものです。2009/11/04(水) 00:17:42ID:mdwZ7HUY
アニメーションの表示ってどうやってます?
俺はコンピュータ内蔵の時計呼び出してその値からやってるんだけど、
そうするとポーズ画面のあと再開したときにアニメーションがずれちゃうんだよ
どうしたらいいかな
0161名前は開発中のものです。2009/11/04(水) 10:26:18ID:MgRdkNpl
経過時間を算出するようにして
ポーズ中は経過時間が増えないようにするとか
0162名前は開発中のものです。2009/11/04(水) 21:22:33ID:OEwandvL
ゲームのはなしじゃないの?
フレーム単位で処理するからずれるとかはないとおもうけど

可変フレームのはなし?
0163名前は開発中のものです。2009/11/04(水) 21:46:58ID:wmTV4PxT
可変フレームでもアニメのコマnからn+1へ描画させるタイミングをフレームを考慮した時間後に書き換えるからずれはしない。
何か忘れてる。
■ このスレッドは過去ログ倉庫に格納されています