サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
1: 2011-03-07 (月) 13:08:23 k-tan ソース 現: 2024-01-08 (月) 12:58:54 lina ソース
Line 1: Line 1:
TITLE:x TITLE:x
-* [#mfca185e]+* 宇宙基地到着ゲーム [#k587b67d] 
 +-(by [[K]], 2011.03.07) 
 +*** 内容 [#s3933b87] 
 +-分類:A, proglen = 1230 
 +-画面右の宇宙船を画面左の宇宙基地(白い四角)に到着させるゲームで、宇宙船(の中心)が宇宙基地に接触すればよい。 
 +-他の障害物(隕石群?)に当たるとゲームオーバー。 
 +-基地に到着した時点での残り時間がクリアのスコアとなって加算。 
 +-Enterキーでゲーム開始。下矢印のキーでメインエンジン噴射(つまり上方向の加速が得られる)。左矢印で左のエンジンを噴射(つまり右方向の加速が得られる)。右も同様。 
 +-画面の外にも衝突判定がある上、スコア表示部にも衝突判定がある(文字にぶつかって死ぬ)。 
 +-とりあえず練習すれば1万点くらいはすぐに取れる(と思う)。 
 + 
 +*** 動作写真 [#d027281f] 
 +http://osask.net/w/gate.php/test018a.jpg?way=attach&_noumb&refer=blike%2Fworks%2Fp0001&openfile=test018a.jpg 
 +*** プログラム [#f04e0a16] 
 + int sc, x, y, vx, vy, ox, oy, k, x16, y16, t, lv; 
 + for (;;) { 
 +     setCol(0x00009f); fillRect(320, 32, 160, 176); 
 +     setCol(0xffffff); drawStr(160, 176, 2, 2, "Hit [Enter] to start"); 
 +     for (;;) { 
 +         if (bl_inkey(BL_WAITKEY | BL_GETKEY) == KEY_ENTER) break; 
 +     } 
 +     sc = 0; 
 +     srand(1); 
 +     for (lv = 1;;) { 
 +         cls(); 
 +         setMode(BL_PSET); 
 +         setCol(0xffffff); 
 +         fillRect(32, 32, 32, rnd(176) + 160); 
 +         for (k = 0; k < 20; k++) { 
 +             setCol(iCol(rnd(6) + 1)); 
 +             fillOval(lv * 8, lv * 8, rnd(512 - lv * 8) + 64, rnd(368 - lv * 8) + 32); 
 +         } 
 +         x = 630; y = 40; vx = 0; vy = 0; t = lv * 1000 + 990; 
 +         x16 = x * 16; y16 = y * 16; 
 +         flshWin(640, 400, 0, 0); 
 +         for (;;) { 
 +             k = getPix(x, y); 
 +             if (t % 10 == 0) { 
 +                 setMode(BL_PSET); 
 +                 setCol(0x000000); 
 +                 fillRect(640, 32, 0, 0); 
 +                 setCol(0xfefefe); 
 +                 drawStr(0, 0, 2, 2, "SCORE=%05d  LV=%d  TIME=%03d", sc, lv, t / 10); 
 +                 flshWin(640, 32, 0, 0); 
 +             } 
 +             setMode(BL_PXOR); 
 +             setCol(0xffffff); 
 +             fillRect(3, 3, x - 2, y - 4); 
 +             fillRect(5, 5, x - 3, y - 1); 
 +             flshWin(5, 8, x - 3, y - 4); 
 +             flshWin(5, 8, ox - 3, oy - 4); 
 +             if (k != 0x000000) break; 
 +             waitNF(100); 
 +             k = inkey(); 
 +             ox = x; 
 +             oy = y; 
 +             fillRect(3, 3, x - 2, y - 4); 
 +             fillRect(5, 5, x - 3, y - 1); 
 +             if ((k == '2' || k == KEY_DOWN) && vy > -128) 
 +                 vy -= 4; 
 +             if ((k == '4' || k == KEY_LEFT) && vx < +128) 
 +                 vx += 4; 
 +             if ((k == '6' || k == KEY_RIGHT) && vx > -128) 
 +                 vx -= 4; 
 +             x16 += vx; 
 +             y16 += vy; 
 +             x = x16 / 16; 
 +             y = y16 / 16; 
 +             vy++; 
 +             if (t > 0) t--; 
 +         } 
 +         if (k != 0xffffff) { 
 +             setCol(0xff0000); 
 +             setMode(BL_PSET); 
 +             for (k = 3; k < 24; k += 3) { 
 +                 waitNF(200); 
 +                 drawRect(k * 2, k * 2, x - k, y - k); 
 +                 flshWin(k * 2, k * 2, x - k, y - k); 
 +             } 
 +             break; 
 +         } 
 +         sc += t / 10; 
 +         if (lv < 9) lv++; 
 +         waitNF(2000); 
 +     } 
 + }

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。