|
■このサンプルでは、スクリーンを切り替えて、違う処理を実行します。
■まず、Cyber Libraryをダウンロードしてください。
■Visual C#を起動し、Cyberソリューションファイルを開いてください。
■[表示>ソリューションエクスプローラ]メニューを選択し、ソリューションエクスプローラで、「Cyber.cs」を右クリックして[コード表示]メニューを選択します。
■以下の赤字の部分を追加します。
namespace Cyber
{
public class Cyber : Form
{
const int MAIN_SCREEN = 0;
const int MAIN2_SCREEN = 1;
private int screen;
private bool changeScreen = true;
private Cyber3D cyber3D = new Cyber3D();
private CyberTimer timer = new CyberTimer();
private CyberInput input = null;
private Character []character = null;
private int keySpace;
(中略)
bool Initialize()
{
if ( !cyber3D.Create(this,false,false) )
return false;
input = new CyberInput(this);
// キャラクターの読み込み
character = new Character[2];
character[0] = new Character();
character[0].LoadC3DFile(cyber3D.device,"Girl\\","Girl.c3d");
character[1] = new Character();
character[1].LoadC3DFile(cyber3D.device,"Hero\\","Hero.c3d");
return true;
}
protected override void Dispose(bool Disposing)
{
base.Dispose(Disposing);
cyber3D.Dispose();
if ( character != null )
foreach ( Character chara in character )
chara.Dispose();
}
(中略)
private void Run()
{
switch ( screen )
{
case MAIN_SCREEN: MainScreen(); break;
case MAIN2_SCREEN: Main2Screen(); break;
}
}
private void MainScreen()
{
// 画面が切り換わった直後の場合
if ( IsScreenChanged() )
{
}
input.GetInputState(Key.Space,ref keySpace);
if ( keySpace == CyberInput.PUSH_KEY )
ChangeScreen(MAIN2_SCREEN);
// レンダリング開始
cyber3D.BeginScene();
// カメラ位置
cyber3D.SetCamera(new Vector3(0,0,-1000),new Vector3(0,0,0));
// キャラクターの描画
character[0].Draw(cyber3D.device);
// レンダリング終了
cyber3D.EndScene();
}
private void Main2Screen()
{
// 画面が切り換わった直後の場合
if ( IsScreenChanged() )
{
}
input.GetInputState(Key.Space,ref keySpace);
if ( keySpace == CyberInput.PUSH_KEY )
ChangeScreen(MAIN_SCREEN);
// レンダリング開始
cyber3D.BeginScene();
// カメラ位置
cyber3D.SetCamera(new Vector3(0,0,-500),new Vector3(0,0,0));
// キャラクターの描画
character[1].Draw(cyber3D.device);
// レンダリング終了
cyber3D.EndScene();
}
}
}
■プログラムを実行し、「Space」キーで、少女を描画するスクリーンと騎士を描画するスクリーンに切り替えられます。
|