[表示 : 全て 最新50 1-99 2chのread.cgiへ]
Update time : 10/16 14:51 / Filesize : 11 KB / Number-of Response : 38
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

PlayStation Mobileプログラミング part 4



1 名前:名前は開発中のものです。 mailto:sage [2012/10/12(金) 20:43:01.93 ID:8CCIhLAv]
PlayStation(R) Mobile SDKを使ってゲームやアプリを作るためのスレ

SDKは現在オープンβで公開中です。

■PSM公式サイト
www.playstation.com/psm/developer/index_j.html

■公式 PSM デベロッパー コミュニティ
community.eu.playstation.com/t5/PlayStation-Mobile-Developer/ct-p/PSSdevforum

■PSSウィキ
monobook.org/wiki/PlayStation_Suite_SDK

■前スレ
PlayStation Mobileプログラミング part 3
toro.2ch.net/test/read.cgi/gamedev/1339990741/
PlayStation Suiteプログラミング part 2
toro.2ch.net/test/read.cgi/gamedev/1335755875/
PlayStation Suiteプログラミング part 1
toro.2ch.net/test/read.cgi/gamedev/1330137413/

2 名前:名前は開発中のものです。 mailto:sage [2012/10/12(金) 21:34:22.47 ID:1AiKU+Yo]
>>1


3 名前:名前は開発中のものです。 mailto:sage [2012/10/12(金) 22:00:43.55 ID:PxdDNN5w]
ラストスパートだ! 頑張るぞ!

4 名前:名前は開発中のものです。 mailto:sage [2012/10/12(金) 22:48:28.46 ID:dqN7X24j]
俺の日曜プログラマレベルのクソゲの審査が通るかが問われる

5 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 01:03:52.90 ID:OdmSeH6u]
>>1

6 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 15:03:24.00 ID:VfQEexjK]
昨日に引き続きで申し訳ありませんが別スレッドでのオブジェクト生成が上手くいきません…orz。

var task = Task.Factory.StartNew( ()
{
   Console.WriteLine (0);
   Obj =new Obj();
   Console.WriteLine (1);
});

これ書いても下のWriteLine動かないし、別スレッドでnewするとそこで途切れるっぽいんですがどういうことでしょうか?
普通にint a=0;から
var task = Task.Factory.StartNew( ()
{
   Console.WriteLine (a);
   a=1;
   Console.WriteLine (a);
});
なら全部動くけど
var task = Task.Factory.StartNew( ()
{
   Obj =new Obj();
   Console.WriteLine (a);
   a=1;
   Console.WriteLine (a);
});
これだと動かなくなっちゃう。

7 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 15:10:35.43 ID:zi3kd8HN]
var task = Task.Factory.StartNew( () =>
{
   Console.WriteLine (0);
   var obj =new object();
   Console.WriteLine (1);
});
while(true){}

下にこういうのを書いてみたら?

8 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 15:28:53.46 ID:9AMMz6DV]
PCだと普通に動くが、VITA実機だとダメなんだろうか・・・
Objクラスが悪さしてるとか?

9 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 15:46:12.22 ID:VfQEexjK]
>>7
下のwhileループはどういうことでしょうか?
一応ゲームループ内なので、メインスレッドが先に終了してるということではないとは思います。
>>8
自分はPCでも動きませんでした。
ちなみに作ったObjはNodeを継承したGameEntityを継承したクラスでした。

10 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 15:47:23.59 ID:zi3kd8HN]
>>9
var task = Task.Factory.StartNew( () =>
{
   Console.WriteLine (0);
   var obj =new object();
   Console.WriteLine (1);
});

これは動くの?
動くんだったらObjクラスのコンストラクタが原因でしょう



11 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 16:00:12.91 ID:VfQEexjK]
>>10
その状況では上のWriteLineは動いて下のWriteLineは動きませんでした。
指摘されて自分も自作Objのコンストラクタが原因だと思いましたので
間でListやRandom、Stopwatchとかnewしてみましたがその時は両方のWriteLineが動きました。
このことから自作Objのコンストラクタが原因ぽいです。ご指摘ありがとうございました。


12 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 16:18:29.92 ID:VfQEexjK]
色々試しましたがTexture2Dのコンストラクタ重たいせいみたいです。
重たいから別スレッドで作成してメインスレッドに支障きたさないようにしたかったのに…。

13 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 17:01:22.76 ID:zi3kd8HN]
Vistaなら実行停止でサブスレッドも止まるみたいだけど
Win7だと止まらなくてPSMスタジオ再起動するまでビルドでdll上書きするのが出来ない

OSの違いなのかなんなのかわからないけど同じプロジェクト2つのPCでデバッグしてるとそうなってる

14 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 17:04:04.88 ID:DsK/TsjO]
>>12
試してないけど、ファイル読み込みは非同期を使わないと無理そうやね

15 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 17:12:16.63 ID:DsK/TsjO]
ん?でもC#のスレッドってプライオリティが高いのに勝手に変わらないのか?
協調型のスレッド?Task.Factory.StartNewってスレッドとは違うのだろうか。

16 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 17:58:01.86 ID:DsK/TsjO]
うーん、Task.Factory.StartNewだと、なんか動作が怪しいな・・・
if( 0 == _state ){           
 // 非同期読み込みスレッド作成    
 _loading = Task.Factory.StartNew(()=>{            
  ImageAsset image = null;     
  // 非同期読み込みで作成
  image = new ImageAsset("/Application/test.png",true);         
  // 完了までまつ
  // image.WaitForLoad()だと処理が終わってしまう??
  while( !image.Ready ){
  Thread.Yield();
  }     
  // ! ここで処理が終わってしまう??     
  _tex = image.CloneTexture();                
  // ImageAssetからキャッシュと削除
  image.UnloadFromCache ();
  image.Dispose();     
  // 以下必要なだけ繰り返す...
  System.Console.Write("Load Finish!\n");    
  });
 _state = 1;    
}else if( 1 == _state ){     
 // WaitForLoadかCloneTextureでIsCompletedがtrueに...
 if( _loading.IsCompleted ){       
  // タスク削除しておわり
  _loading.Dispose();
  _loading = null;    
  _state = 2;
 }else{
  System.Console.Write("Now Loading...\n");
 }
}

17 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 18:14:05.99 ID:DsK/TsjO]
あ、分かった。メインスレッド以外でnew Texture2D("/Application/test.png", false);
やると例外発生して落ちる。

18 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 18:21:14.32 ID:zi3kd8HN]
例外で落ちてたらすぐ気づくだろ・・・
テスト段階では変なとこで無駄にキャッチしないようにしとけ・・・

19 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 18:25:07.51 ID:VfQEexjK]
今気づきましたけど実機起動、実機デバッグ起動だとちゃんとTaskでnew Texture2D("/Application/test.png", false);
できてるっぽいですね。最初の1回物凄いフレームスキップして二回目以降はちょっとですけど。

20 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 18:26:37.21 ID:DsK/TsjO]
いやー、キャッチは1つもしてないんだぜ。
Task.Factory.StartNewは例外が発生しても、Task.IsFaultedがtrueになるだけで
例外エラーダイアログは出してくれないみたいだな・・・



21 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 18:40:46.79 ID:DsK/TsjO]
うげ、マジだ。VITA実機だと例外発生しねぇ。

22 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 19:05:49.07 ID:DsK/TsjO]
ImageAssetを使って、お手軽に非同期読み込みやるとしたらこんな感じか
VITA実機でもカクつくことはなかった

if( null == _asset ){
// 読み込み開始
if( null != _tex ){
_tex.Dispose();
_tex = null;
}
// 非同期読み込みで作成
_asset = new ImageAsset("/Application/test.png",true);
System.Console.Write("Load Start\n");
}else if (_asset.Ready ){
// 読込完了
// テクスチャ作成
_tex = _asset.CloneTexture();

// ImageAssetからキャッシュと削除
_asset.UnloadFromCache ();
_asset.Dispose();
_asset = null;
System.Console.Write("Load Finish\n");
}else{
// 読み込み中
System.Console.Write("Now Loading...\n");
}

23 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 19:53:29.52 ID:OdmSeH6u]
テクスチャ以外も非同期読み込みできるようにファイル読み込みを別にしてTexture2D(byte[] fileImage, bool mipmap)の方を
使ったほうが良くないか。と通りすがりが言ってみる。ただ上記のほうがお手軽だね

24 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 20:15:49.76 ID:a2qcLl2w]
ファイルを非同期でロード出来るようにしよう(・∀・)

アーカイブしたファイルも対応したいな(・∀・)

圧縮したファイルもロード可能にしよう(・∀・)

デバッグ中はソケット経由でPCからVITAにファイルをロード出来るようにしよう(・∀・)

ファイルロードライブラリ完成(・∀・)パンパカパーン

25 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 20:22:31.90 ID:Vd6hRuYE]
そこまでやったらすごいなw

26 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 20:56:48.30 ID:OdmSeH6u]
本気でやるならリソースをほとんどアーカイブにして上記の実装したほうがいいけどなw
まぁ本当にそれが必要がどうかという問題だな。長い目で見たらやったほうが勿論いい
(XNAでも使えるかな?)
てかそうか、ソケット経由という手があったか。それができたら開発が捗るな。さんくす

27 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 21:00:10.29 ID:VfQEexjK]
ImageAssetなんて便利なもんがHighLevelUIにあったのか。


28 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 21:09:32.03 ID:a2qcLl2w]
この機能はCRIのファイルマジックPROってのを見ると欲しくなるからね(´・ω・`)
www.cri-mw.co.jp/product/lineup/filesystem/filemajikpro/index.html

29 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 21:17:07.47 ID:DsK/TsjO]
そんな機能は標準で用意してくれよ

30 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 22:35:27.08 ID:VfQEexjK]
Taskよりはデリゲードによる非同期呼び出しの方が軽いみたい。でもどうしても最初の1回目がスキップする。
そしてGameEngine2DのPlayerとかのnewがなんであんなに速いのよって思ってたらGameの
BuildTextureTileMaps()で一回読んでディクショナリーに登録してるのなw
もう俺も非同期なんて言わずにメインinitで読んじゃうぜ!




31 名前:名前は開発中のものです。 mailto:sage [2012/10/13(土) 22:46:15.44 ID:OdmSeH6u]
ぶっちゃけ最初に読み込んでメモリに乗っかるようならそれでいいと思うんだぜ

32 名前:名前は開発中のものです。 mailto:sage [2012/10/15(月) 16:14:07.06 ID:kGBPsunN]
GameEngine2Dのサンプルのサポートクラス読み込んでたけどシェーダーとかOpenGL部分がまったく理解できないw
サポートクラスの使うとこだけ取り出して使おうかな…

33 名前:名前は開発中のものです。 mailto:sage [2012/10/15(月) 19:54:55.55 ID:HUuA17zm]
トロフィー整備という事はフレンドの呼び出しも来るか

34 名前:名前は開発中のものです。 mailto:sage [2012/10/15(月) 22:02:06.00 ID:I2DCqBIg]
フレンドを呼び出して説教するアプリの登場が待たれる

35 名前:名前は開発中のものです。 mailto:sage [2012/10/16(火) 09:48:28.83 ID:fPXS3jn6]
PSモバイルってPS3やVitaみたいなトロフィーを付けることって可能なん?

36 名前:名前は開発中のものです。 mailto:sage [2012/10/16(火) 13:21:27.62 ID:C/9chZfx]
可能らしいわよ

37 名前:名前は開発中のものです。 mailto:sage [2012/10/16(火) 13:26:46.03 ID:pzXRyKJl]
2chねるに書き込んだ ブロンズトロフィー獲得






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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