- 1 名前:AF 投稿日: 2013/05/08(水) 14:54:27
- #include "main.h"
//グローバル変数 GameState g_gamestate = GAME_TITLE;
//box2d関連 b2Vec2 gravity(0.0f, GRAVITY_Y); //重力加速度 b2World g_world(gravity, true); //Box2DWorld
//ゲームデータ Images g_images; //画像データ Sounds g_sounds; //音声データ StageInfo g_stage; //ステージデータ
//メインループ void MyMain(){ //ゲーム開始からの時間を計る g_stage.gametime = g_lasttime - g_stage.gamestarttime; //b2bの時間を進める g_world.Step(g_frametime, VELOCITYITE, POSITIONITE); //各画面の描画 switch(g_gamestate){ case GAME_TITLE: DrawGameTitle(); break; case GAME_MAIN: DrawGameMain(); break; case GAME_CLEAR: DrawGameClear(); break; case GAME_OVER: DrawGameOver(); break; } }
//ファイルの読み込み int LoadFiles(){ //ファイル読み込み処理をここに書く if( LoadDivGraph("media\\chara_hero_l.png", 6, 6, 1, 46, 96, g_images.hero) == -1) { return -1; }
//壁 g_images.wall[WALL_568] = LoadGraph("media\\wall_s.png"); if(g_images.wall[WALL_568] == -1) return -1; g_images.wall[WALL_48] = DerivationGraph(0, 0, 48, 48, g_images.wall[WALL_568]); g_images.wall[WALL_192] = DerivationGraph(0, 0, 192, 48, g_images.wall[WALL_568]); g_images.wall[WALL_284] = DerivationGraph(0, 0, 284, 48, g_images.wall[WALL_568]); //ゴールの旗 g_images.wall[GOAL_FLAG] = LoadGraph("media\\goalflag.png"); if(g_images.wall[GOAL_FLAG] == -1) return -1;
//読み込み成功 return 1; }
//タイトル画面描画 void GoGameTitle(){ g_gamestate = GAME_TITLE; } void DrawGameTitle(){ //テキスト表示 DrawStringToHandle(100, 340, "Zキーでゲームスタート", 0x666666, g_middlefont); //キーをチェックして画面切り替え int key = GetJoypadInputState( DX_INPUT_KEY_PAD1 ); if(IsAKeyTrigger(key)==true) GoGameMain(); } //ゲーム本編描画 void GoGameMain(){ g_gamestate = GAME_MAIN; InitStage(); //ステージデータの初期化 } void DrawGameMain(){ //衝突チェック g_stage.isontheground = false; Collision(); HeroState hstate = HERO_STANDING; int key = GetJoypadInputState( DX_INPUT_KEY_PAD1 ); //主人公の位置と移動ベクトル b2Vec2 pos = g_stage.hero->GetPosition(); b2Vec2 vec = g_stage.hero->GetLinearVelocity(); float angle = g_stage.hero->GetAngle(); //キーチェック if(g_stage.isontheground == true){ //左右移動 if(key & PAD_INPUT_LEFT) { vec.x = -PHS(120.0f); g_stage.hero->SetLinearVelocity(vec); hstate = HERO_RUNNING; g_stage.isheroleft = true; } if(key & PAD_INPUT_RIGHT) { vec.x = PHS(120.0f); g_stage.hero->SetLinearVelocity(vec); hstate = HERO_RUNNING; g_stage.isheroleft = false; } //ジャンプ if(IsBKeyTrigger(key) == true){ vec.x = 0; vec.y = -62.0f; g_stage.hero->ApplyLinearImpulse(vec, pos); hstate = HERO_JUMP; g_stage.isontheground = false; } } //ジャンプ姿勢へ if(g_stage.isontheground == false) hstate = HERO_JUMP; //キャラクター描画 int animpat = (g_lasttime / (1000 / 12)) % 4; switch(hstate){ case HERO_STANDING: DrawRotaGraph(VIWX(pos.x), VIWY(pos.y), 1, angle, g_images.hero[0], TRUE, g_stage.isheroleft); break; case HERO_RUNNING: DrawRotaGraph(VIWX(pos.x), VIWY(pos.y), 1, angle, g_images.hero[1 + animpat], TRUE, g_stage.isheroleft); break; case HERO_JUMP: DrawRotaGraph(VIWX(pos.x), VIWY(pos.y), 1, angle, g_images.hero[5], TRUE, g_stage.isheroleft); break; } //転倒対策 if( fabs(angle) > 0.2f ){ g_stage.hero->SetAngularVelocity(-angle*2); } }
- 2 名前:AF 投稿日: 2013/05/08(水) 14:54:57
- //衝突判定
void Collision(){ //接触確認ループ for(b2Contact* c = g_world.GetContactList(); c!=NULL; c = c->GetNext()) { if(c->IsTouching() == false) continue; //接触しているボディを取り出す b2Body* b1 = c->GetFixtureA()->GetBody(); b2Body* b2 = c->GetFixtureB()->GetBody(); //主人公のチェック b2Body* hb = NULL; b2Body* ob = NULL; if(b1 == g_stage.hero) {hb = b1; ob = b2;} if(b2 == g_stage.hero) {hb = b2; ob = b1;} (省略されました・・全てを読むにはここを押してください)
- 3 名前:AF 投稿日: 2013/05/08(水) 14:55:56
- b2Body* CreateBox(float x, float y, float w, float h, float angle,bool dynamic){
//ボディ定義 b2BodyDef bodyDef; if(dynamic) bodyDef.type = b2_dynamicBody; //動的ボディ else bodyDef.type = b2_staticBody; //静的ボディ bodyDef.position.Set(x, y); bodyDef.angle=angle; //bodyDef.angle = 0.1f; //ボディ作成 b2Body* body = g_world.CreateBody(&bodyDef); //シェイプ作成 b2PolygonShape staticBox; staticBox.SetAsBox(w, h); //フィクスチャ定義 (省略されました・・全てを読むにはここを押してください)
- 4 名前:MP610 インク 投稿日: 2013/08/30(金) 13:08:25
- 比較的早く咲くかわづ<a href="http://5xhomo5g90.d4vid.com" title="EPSON インク 残量">EPSON インク 残量</a>も開花が遅いと思ったら、いきなり満開になり、そして葉っぱがちらほらになった。 <a href="http://5jmniccdfv.d4vid.com" title="EPSON インク 出ない">EPSON インク 出ない</a>レプリカのハンドバッグは、 DBE27C120BC21EDF803E176AC4C03F53 現在頻繁にハイストリートに見られる。 MP610 インク http://wmfd81rpvh.d4vid.com
- 5 名前:LOUIS VUITTON 長財布 投稿日: 2013/09/01(日) 22:05:05
- 就職の為の読書就活<a href="http://ijbcesiebf.drshores.com" title="ルイヴィトン ベルト">ルイヴィトン ベルト</a>による読書記録最初に読んだ本は、松下幸之助氏の「社員心得帖」ですこの本はある金融機関のOBで、人事部長も担当された事もある方から紹介していただきました今から25年も前に発表された本ですが、古さを感じません。 ラグビーブーツは、<a href="http://v1ye0pl6ah.drshores.com" title="ルイヴィトン 財布">ルイヴィトン 財布</a>、アーマー下で最適アシックス、カンタベリー、ギルバート、ジョマ、カッパ、Kooga、ミズノ、ナイキ、Nomis、プーマ、アンブロ、およびWebエリスなどの国際ラグビー選手が着用しているトップブランドの大規模な選択に来る。
LOUIS VUITTON 長財布 http://2iq9msag98.drshores.com
- 6 名前:グッチ 財布 新作 投稿日: 2013/09/07(土) 22:21:11
- 世界中に500以上の種類があるといわれるアロエの中でも特に研究者の間で注目されているのがラテン語で「真実のアロエ」を意味する「ア<a href="http://81oo42baw1.re-l.com" title="GUCCI メンズ 長財布">GUCCI メンズ 長財布</a>ラ」。 価格320,000円 (税込336,000円) 送料別<a href="http://94u83mybqd.re-l.com" title="グッチ ストール">グッチ ストール</a> HERMES エブリンPM SV トリヨンクレマンス アニスグリーン(抹茶っぽい緑) J刻印楽天 <a href="http://fppm03xyep.re-l.com" title="グッチ ボストンバッグ">グッチ ボストンバッグ</a> HERMES バッグ がそろっています!
グッチ 財布 新作 http://26x86pmcdx.re-l.com
- 7 名前:グッチ 財布 コピー 投稿日: 2013/09/09(月) 14:46:10
- 彼らは香水のベストセラーリストのようなものを保持していないが、それは<a href="http://ixwthqob07.re-l.com" title="GUCCI メンズ">GUCCI メンズ</a>ナンバー5は、過去80年にわたって一貫していくつかの人気が残っている可能性があります。 <a href="http://8cp0p4uy5b.re-l.com" title="グッチ ネックレス">グッチ ネックレス</a>財布PRADAシルバーパイピング長財布ROSA17時までのご注文で明日届きます代引きで翌日着は可能ですが、電話確認が必要です。
グッチ 財布 コピー http://vfmapf8a9l.re-l.com
|