Changeset 6898 for lang/d

Show
Ignore:
Timestamp:
02/19/08 02:44:12 (9 months ago)
Author:
omega
Message:
 
Location:
lang/d/koke/trunk
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • lang/d/koke/trunk/build.bat

    r6427 r6898  
    1717 
    1818:END 
     19pause 
    1920 
  • lang/d/koke/trunk/character.d

    r6347 r6898  
    3535                EXPLODE, 
    3636                UP_NUSHI, 
     37                ARASHI, 
    3738                MAX, 
    3839        } 
    3940        // 名称 
    4041        static string type_name[] = 
    41                 ["SHADOW" , "NICOCHU" , "SOWAKA" , "RAINBOW_RAY" , "EXPLODE" , "UP_NUSHI" , "MAX"]; 
     42                ["SHADOW" , "NICOCHU" , "SOWAKA" , "RAINBOW_RAY" , "EXPLODE" , "UP_NUSHI" , "ARASHI" , "MAX"]; 
    4243        static const double type_movespeed[] = 
    43                 [   0.0 ,  0.03 ,   0.1 ,   0.5 ,     0 ,  0.03 ];              // 移動速度 
     44                [   0.0 ,  0.03 ,   0.1 ,   0.5 ,     0 ,  0.03  ,  0.04 ];             // 移動速度 
    4445        static const bool type_shadow[] = 
    45                 [ false ,  true ,  true , false , false ,  true ];              // 影の有無 
     46                [ false ,  true ,  true , false , false ,  true  ,  true ];             // 影の有無 
    4647        static const bool type_shake[] = 
    47                 [ false ,  true ,  true , false , false ,  true ];              // 揺れの有無 
     48                [ false ,  true ,  true , false , false ,  true  ,  true ];             // 揺れの有無 
    4849        static const int type_life_max[] = 
    49                 [     0 ,    20 ,  9999 ,     0 ,     0 ,    20 ];              // ライフ上限値 
     50                [     0 ,    20 ,  9999 ,     0 ,     0 ,    20  ,    20 ];             // ライフ上限値 
    5051        static const bool type_blocking[] =      
    51                 [ false ,  true ,  true , false , false ,  true ];              // 衝突判定の有無 
     52                [ false ,  true ,  true , false , false ,  true  ,  true ];             // 衝突判定の有無 
    5253        static const int type_life_dec[] = 
    53                 [         0 ,    40 ,     0 ,     0 ,     0 ,    40 ];          // ライフ減少時間(フレーム) 
     54                [         0 ,    40 ,     0 ,     0 ,     0 ,    40  ,    80 ];         // ライフ減少時間(フレーム) 
    5455         
    5556        // 方向 
     
    7273                VANISH,                 // 消失(爆発エフェクト向け) 
    7374                DYING,                  // 死亡中 
    74                 EATING,                 // もぐもぐ中 
    75                 SPAWNING,               // 増殖中 
    76         } 
    77         static const int motion_interval[] = [ 0 , 999 , 20 , 2 , 24 , 40 , 20 , 40]; 
     75                EATING,                 // もぐもぐ中(ニコ厨の芝) 
     76                EATING2,                // もぐもぐ中2(あらしの動画) 
     77        } 
     78        static const int motion_interval[] = [ 0 , 999 , 20 , 2 , 24 , 40 , 20 , 80]; 
    7879         
    7980        DIRECTION direction;    // 方向 
     
    233234                                break; 
    234235                         
     236                        // あらし 
     237                        case TYPE.ARASHI: 
     238                                if(motion == MOTION.NORMAL){ 
     239                                        if(eatMovie()){ 
     240                                                setMotion(MOTION.EATING2); 
     241                                        }else{ 
     242                                                if(Hell_randInt(0,10) < 3){ 
     243                                                        selectNewDirection(); 
     244                                                } 
     245                                                setMotion(MOTION.WALK); 
     246                                        } 
     247                                } 
     248                                map.setGrass(x,y,0); 
     249                                 
     250                                break; 
     251                                 
    235252                        default: 
    236253                                break; 
     
    326343                 
    327344                if(move_fraction != 0) return false; 
    328                 if(gamemain.map.getGrassLevel(x,y) < 1) return false;   // レベル2以上の芝しか食べない 
     345                if(gamemain.map.getGrassLevel(x,y) < 1) return false;   // レベル1以上の芝しか食べない 
    329346                 
    330347                // 芝を食う 
     
    334351                        life /= 2; 
    335352                         
    336                         Character c = gamemain.charpool.set( new Vec3(position.x , position.y , 0) , TYPE.NICOCHU); 
     353                        TYPE ty = TYPE.NICOCHU; 
     354                        // 一定率で"あらし"になる 
     355                        if(Hell_randInt(0,100) < configparser.getint("ARASHI_TRANSFORM_RATIO")){ 
     356                                ty = TYPE.ARASHI; 
     357                        } 
     358                         
     359                        Character c = gamemain.charpool.set( new Vec3(position.x , position.y , 0) , ty); 
    337360                        if(c){ 
    338361                                c.life = life; 
     
    340363                                        c.direction = cast(DIRECTION) Hell_randInt( 0 , DIRECTION.MAX ); 
    341364                                } 
     365                                 
    342366                        } 
    343367                } 
    344368                gamemain.map.setGrass(x,y,0); 
    345369                return true; 
     370        } 
     371         
     372        // 動画を食べる 
     373        bool eatMovie(){ 
     374                int x = cast(int)position.x , y = cast(int)position.y; 
     375                 
     376                if(move_fraction != 0) return false; 
     377                for(int t = 0 ; t < cast(int)DIRECTION.MAX ; t++){ 
     378                        int px = x + cast(int)vecx[t]; 
     379                        int py = y + cast(int)vecy[t]; 
     380                        if(gamemain.map.isMap(px,py, MapChip.TYPE.MOVIE)){ 
     381                                // 動画を食べる 
     382                                direction = cast(DIRECTION)t; 
     383                                gamemain.map.set(px,py,MapChip.TYPE.NONE); 
     384                                 
     385                                Character c = gamemain.charpool.set( new Vec3(px , py , 0) , TYPE.EXPLODE); 
     386                                if(c){ 
     387                                        c.setMotion(MOTION.VANISH); 
     388                                } 
     389                                 
     390                                return true; 
     391                        } 
     392                } 
     393                return false; 
    346394        } 
    347395         
     
    463511                                        ,0,255,255,255,alpha); 
    464512                        }else if(motion == MOTION.EATING){ 
    465                                 // 食事中 
     513                                // 食事中(ニコ厨が芝を食べる) 
    466514                                Hell_drawTexture("char" 
    467515                                        , map.toViewX(mx,my) + (1 - reverse) * CHIP_SIZE / 2 , map.toViewY(mx,my) - ((timer / 3) % 2) * 2 
     
    469517                                        ,CHIP_SIZE * type 
    470518                                        ,CHIP_SIZE , CHIP_SIZE , reverse , 1.0); 
    471                         } 
     519                        }else if(motion == MOTION.EATING2){ 
     520                                // 食事中2(あらしが動画を食べる) 
     521                                Hell_drawTexture("char" 
     522                                        , map.toViewX(mx,my) + (1 - reverse) * CHIP_SIZE / 2 , map.toViewY(mx,my) + shake 
     523                                        ,CHIP_SIZE * (cast(int)direction / 2 + ((timer / 8) % 2) * 2) + CHIP_SIZE * 5 
     524                                        ,CHIP_SIZE * type 
     525                                        ,CHIP_SIZE , CHIP_SIZE , reverse , 1.0); 
     526                                } 
    472527                }else{ 
    473528                } 
  • lang/d/koke/trunk/config.ini

    r6347 r6898  
    1 # 
    2 # 芝が生えるゲーム の コンフィグ 
    31# 
    4 # いろいろパラメータを外部化してみた。 
     2#�@�ł��������[���@�́@�R���t�B�O 
    53# 
    6 # 「#」で始まる行以外がゲーム内パラメータの定義分。 
    7 # 数値をいじっていろいろできるかもよ。 
    8 # ただ、変な値でも通っちゃったりするので自己責任でよろすこw 
     4# ���낢�������[�^��������Ă݂��B 
    95# 
    10 # 行の頭に「#」をつけるとその行は無視されます。メモにどうぞ 
     6# �u#�v�Ŏn�܂��ȊO���Q�[���������[�^�̒����B 
     7# ���l�����Ă��낢�����邩���B 
     8# �����A�ςȒl�ł���������肷���Ŏ��ȐӔC�ł�����w 
     9# 
     10# �s�̓��Ɂu#�v��������̍s�͖����������B�����ɂǂ��� 
    1111# 
    1212 
     
    1414 
    1515# -------------------------------------------------------------------- 
    16 # マップの大きさ 
     16# �}�b�v�̑傫�� 
    1717 
    1818# MAP_WIDTH 
    19 # マップ横幅(標準:48) 
    20 #  マップサイズが大きくなるの合わせて 
    21 #  CPU負荷が大きくなるため、極端に大きな値には注意 
     19# �}�b�v����(�W��:48) 
     20# �@�}�b�v�T�C�Y���傫���Ȃ����킹�� 
     21# �@CPU���ׂ��傫���Ȃ邽�߁A�ɒ[�ɑ傫�Ȓl�ɂ͒��� 
    2222MAP_WIDTH = 48 
    2323 
    2424# MAP_HEIGHT 
    25 # マップ縦幅(標準:48) 
    26 #  同上 
    27 MAP_HEIGHT = 48 
     25# �}�b�v�c��(�W��:48) 
     26# �@����MAP_HEIGHT = 48 
    2827 
    2928 
    3029 
    3130# -------------------------------------------------------------------- 
    32 # マップの設定(システム寄り 
     31# �}�b�v�̐ݒ�V�X�e���� 
    3332 
    3433# MAP_GRASS_COLOR_R/G/B 
    35 # 芝の色(標準:すべて128) 
    36 #  芝だけはchar.bmpからコピーされるときにこの色で乗算される(黒に近づく) 
    37 #  詳しくはRGBカラーでぐぐれ (値範囲:0~255) 
    38 #  芝のキャラ絵を書き換えるときは、ここをすべて255にするといいカモよ? 
     34# �ł̐F(�W��:���ׂ�28) 
     35# �@�ł�����har.bmp�����s�[�����Ƃ��ɂ��̐F�ŏ�����(���ɋ߂Â�) 
     36# �@�ڂ�����GB�J���[�ł������l�͈�0�`255) 
     37# �@�ł̃L�����G������������́A������ׂ�55�ɂ��������J���� 
    3938MAP_GRASS_COLOR_R = 128 
    4039MAP_GRASS_COLOR_G = 128 
     
    4241 
    4342# MAP_GRASS_AFFECT 
    44 # 芝の影響度(標準:0.9) 
    45 #  芝の、周囲の芝えねるぎー濃度に対する影響量(0.0~1.0) 
    46 #  大きいほど影響を受けにくい、小さいほど影響を受けやすくなる 
    47 #  変化量が大きいので扱いに注意。 
     43# �ł̉e���x(�W��:0.9) 
     44# �@�ł́A��ł��˂邬�[�Z�x�ɑ΂�������0.0�`1.0) 
     45# �@�傫���قlje������ɂ����A�������قlje������₷���Ȃ�# �@�ω��ʂ��傫���̂ň����ɒ��ӁB 
    4846MAP_GRASS_AFFECT = 0.90 
    4947 
    5048# MAP_GRASS_AFFECT_LIMIT 
    51 # 芝の影響量(標準:0.5) 
    52 #  芝えねるぎーのフレームあたりの増加量上限値 
    53 #  芝の生えすぎを抑制する値 
     49# �ł̉e�����W��:0.5) 
     50# �@�ł��˂邬�[�̃t���[������������ʏ��l 
     51# �@�ł̐�������������� 
    5452MAP_GRASS_AFFECT_LIMIT = 0.5 
    5553 
    5654# MAP_REFRESH_INTERVAL 
    57 # マップ情報の更新フレーム間隔(標準:6) 
    58 #  マップの芝情報を更新する間隔(1~無限大)。単位はフレーム 
    59 #  小さいほどCPU負荷が高くなるかわりに、芝展開が速くなる。 
    60 #  (※CPU負荷 ≒ マップ縦 × マップ横 ÷ 更新フレーム間隔) 
     55# �}�b�v���̍X�V�t���[���Ԋu(�W��:6) 
     56# �@�}�b�v�̎ŏ���V�����u(1�`�����B�P�ʂ̓t���[�� 
     57# �@�������ق�PU���ׂ������Ȃ邩���ɁA�œW�J�������Ȃ� 
     58# �@(��CPU������}�b�v�c �~ �}�b�v�� �� �X�V�t���[���Ԋu) 
    6159MAP_REFRESH_INTERVAL = 10 
    6260 
    6361# MAP_MOVIE_GRASS_FEED 
    64 # 動画の芝えねるぎー供給上限(標準:200) 
    65 #  動画の下にあるマスは常にこの芝えねるぎー量になる。 
     62# �����ł��˂邬�[������(�W��:200) 
     63# �@�������ɂ����X�͏����̎ł��˂邬�[�ʂɂȂ� 
    6664MAP_MOVIE_GRASS_FEED = 200 
    6765 
     
    6967 
    7068# -------------------------------------------------------------------- 
    71 # ニコ厨 
     69# �j�R�~ 
    7270 
    7371# NICOCHU_TURN_RATIO 
    74 # ニコ厨が方向を変える確率%(標準:50) 
    75 #  ニコ厨が一マス歩くごとにこの確率で方向を変えます。 
    76 #  変えるとき、芝の濃い方に高い確率で向きます。(低確率で芝の薄い方にも) 
     72# �j�R�~�����ς�������(�W��:50) 
     73# �@�j�R�~�����X�����Ƃɂ��̊m���ŕ��ς��܂��B 
     74# �@�ς������A�ł̔Z�������m���Ō���B(�����Ŏł̔�����) 
    7775NICOCHU_TURN_RATIO = 50 
    7876 
     
    8078 
    8179# -------------------------------------------------------------------- 
    82 # うp主 
    83  
     80# ��p�� 
    8481# UPNUSHI_TRANSFORM_INTERVAL 
    85 # ニコ厨がうp主に代わるかどうか判定する周期(標準:60秒) 
    86 #  ニコ厨が誕生してから、この時間が経過するたび、うp主へ変態するかどうか判定します。 
     82# �j�R�~����p�����邩�ǂ������肷�����:60�b) 
     83# �@�j�R�~���a�����Ă������̎��Ԃ��o�߂��邽�сA��p���ϑԂ��邩�ǂ������肵�܂��B 
    8784UPNUSHI_TRANSFORM_INTERVAL = 60 
    8885 
    8986# UPNUSHI_TRANSFORM_RATIO 
    90 # 上の判定タイミングで、ニコ厨がうp主になる確率%(標準:20) 
     87# �������C�~���O�ŁA�j�R�~����p���Ȃ�����(�W��:20) 
    9188UPNUSHI_TRANSFORM_RATIO = 20 
     89 
     90 
     91 
     92# -------------------------------------------------------------------- 
     93# ���炵 
     94# ARASHI_TRANSFORM_RATIO = 5 
     95# �j�R�~�����炵�ɂȂ�����(�W��:5) 
     96# �@�j�R�~�����B�������A���̊m���Ńj�R�~�̑������炵�����܂� 
     97ARASHI_TRANSFORM_RATIO = 5