PS SuiteSDKが一般公開されたということでダウンロードしてみました。
http://www.playstation.com/pss/developer/openbeta/index_j.html
「PlayStationSuite Studio」(PssStudio)と「UI Composer」というソフトがインストールされました。
PssStudioは僕が普段使っているVisualC#に近い感じですね。
UI ComposerでLabelやButtonなどのWidgetを配置していくようです。
PssStudioでとりあえずコンソールにHelloWorldを出力。
Console.Out.WriteLine("HelloWorld.");
HelloWorld.は出力されたけど、そのあとの黒い画面はどうすればいいのかな。
イベント待ちということなんだろうけど。
******************
ヘルプによると、
- UI ComposerでWidgetの配置を決定
- このレイアウト情報をC#ソースとして出力
- 出力したソースをPssStudioでロードし、それに対するコードを書いていく。
- ビルドして、シミュレータや実機でテストしてみよう!
とのことです。
以下、手順を書いていくよ!
******************
UI Composer(以下、UIC) - 「ファイル」 - 「新規プロジェクトの作成」
ここでプロジェクトネームとファイルパスを入力。
※注意
・プロジェクトネームはPssStudioのプロジェクトネームと同じにすること!
(PssStudioでまだプロジェクトを作ってない場合は関係ないです)
・ファイルパスはPssStudioのプロジェクトファイル(.csprojファイル)が置いてあるディレクトリにすること!
先にPssStudioでプロジェクトを作っておいた方がよさそうですね。
眠いのでここから先はざっと書きます。(後で修正するかも)
新しいレイアウトの設定をする画面が出るので、レイアウトのクラス(とりあえずSceneで)、クラスネーム(適当に)、サイズ(適当に)を入力
すると中央に新規作成されたレイアウトが出来ます。
そこに、右のWidgetリストから「Text」やら「Button」やらをドラッグしましょう。
それぞれのWidgetはプロパティ(クリックすると出てくるアレね)から修正できます。
先ほどレイアウトのクラスでSceneを選んだので、写真を表示させてみましょう。
「Property」の横のタブの「Asset」を押しましょう。そこに3つ小さなボタンがあります。
その中の一番左の「ImportImage」を押して、PC内の適当な画像を選択しましょう。
追加したら、写真名を再びキャンバスにドラッグ!
僕の場合は画像が大きすぎたので、再びプロパティからSizeを10分の1にしました^^;
すると、画像が急に小さくなるのでキャンバスの外に行き行方不明になるんですが、左下のOverViewを見ればどこに画像があるか分かるので安心ですね。
さて!この辺りでビルドしてみましょう!
「ファイル」-「ビルド」
「Completed!!」と表示され、「GeneratedFile」一覧にソースファイル(.cs)があれば成功です。
お疲れ様でした。
今回の内容はローカルのヘルプ内にあるので、詳しくはそちらを確認してください。
************************
先ほど作ったソースをPssStudioのプロジェクトに追加しましょう。
PssStudioのプロジェクトを右クリックし、
「追加」-「ファイルを追加」で先ほど作った
- (クラスネーム).cs
- (クラスネーム).composer.cs
- UIStringTable.cs
を追加しましょう。(「Ctrl」+「Shift」で複数選択→Open)
・(クラスネーム).cs
・(クラスネーム).composer.cs
はVisualC#でも見覚えある感じですねー。
[ソリューション]-[プロジェクト名]-[参照]右クリック-「参照アセンブリの編集」
Sce.Pss.HighLevel.UIにチェックを入れる
僕の場合は
[プロジェクト名]HelloWorld
[追加クラス]MyScene
なので、それ前提で話を続けます。
まずはusingを追加
using Sce.Pss.HighLevel.UI;
メソッドを次のように変更
public static void Initialize ()
{
// Set up the graphics system
graphics = new GraphicsContext ();
UISystem.Initialize(graphics);
var myScene = new HelloWorld.MyScene();
UISystem.SetScene(myScene,null); }
public static void Render ()
{
// Clear the screen
graphics.SetClearColor (1.0f, 1.0f, 1.0f, 1.0f); graphics.Clear ();
// Present the screen
graphics.SwapBuffers ();
}
ビルドします。
「ビルド」-「すべてビルド」
左下に「ビルド成功」と出ればOK
「実行」-「StartDebugging」でデバッグ開始
しかし、エラー。
System.IO.FileNotFoundException: File not found.
MyScene.cs内のイメージのパスが違っていたので、修正。
再び実行したものの、シミュレータは真っ白。。。(T0T)
public static void Update ()
{
// Query gamepad for current state
var gamePadData = GamePad.GetData (0);
List<TouchData> touchDataList = Touch.GetData(0); //追加
UISystem.Update(touchDataList); //追加
}
public static void Render ()
{
// Clear the screen
graphics.SetClearColor (1.0f, 1.0f, 1.0f, 1.0f);
graphics.Clear ();
UISystem.Render(); //追加 // Present the screen
graphics.SwapBuffers ();
}
以上のものを追加したところ無事動きました♪
Renderが画面の表示系でUpdateがボタンのようなタッチに関係するメソッドなのかな?
今日はここまで!
**********************
PlayStation Forum
http://community.eu.playstation.com/