敵の最初の消滅エフェクトによる一瞬の停止について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
THE初心者

敵の最初の消滅エフェクトによる一瞬の停止について

#1

投稿記事 by THE初心者 » 13年前

 初めまして。最近龍神録の手順を見てシューティングゲームの勉強を始めたものです。遅れました。このトピックを見て下さってありがとうございます。

 龍神録プログラミングの館19章において、最初の敵を倒したときに一瞬画面が停止してしまいます。説明画面の実行例ではそのようなことがありません。これはパソコンの性能の問題なのでしょうか? それとも何か別の処理を先に行うことで回避できるものなのでしょうか?

 パソコンの性能はノートパソコンで Vista Home Premium、32bitOS、RAM 3.0G、Intel Core 2 Duo T7250 2.00GHz 2.00GHzです(パソコンの性能を示すのはこのようなものでいいのでしょうか?)。

 もし回避できる方法があれば、教えていただけると嬉しいです。よろしくお願いします。

jay
記事: 314
登録日時: 13年前
住所: 大阪市
連絡を取る:

Re: 敵の最初の消滅エフェクトによる一瞬の停止について

#2

投稿記事 by jay » 13年前

例えば、プログラムを実行するときに他に余計なモノ(WMPとかIEとかですね)を無数に起動していたら、そういうことも起こる可能性はあります。
ただVistaともなるとCPUも相当なものなので、ちょっとやそっとではそんなことが起こるとは思えません。

つまりはあなたが作成したプログラムになんらかの原因があると見てまず間違いないと思います。
問題と思われるプログラムコードをここに書いてもらえれば他のみなさんも助言して下さると思いますし
または龍神録の20章辺りのコードと見比べて間違っている部分を探すという手もありますよ。
♪僕たちは まだ森の中 抜け出そう 陽のあたる場所へ

THE初心者

Re: 敵の最初の消滅エフェクトによる一瞬の停止について

#3

投稿記事 by THE初心者 » 13年前

 jayさん、返信ありがとうございます。

 とりあえず言われた通りに iTunes と firefox とテキストエディタを消して、付属されている19章のプログラムをそのまま動かして見たのですが、やはり初弾が敵に当たったときに変なノイズが入って動きが一瞬全体の動きが止まってしまいました。実行環境は Visual Studio 2008 です。

アバター
bitter_fox
記事: 607
登録日時: 13年前
住所: 大阪府

Re: 敵の最初の消滅エフェクトによる一瞬の停止について

#4

投稿記事 by bitter_fox » 13年前

jay さんが書きました:つまりはあなたが作成したプログラムになんらかの原因があると見てまず間違いないと思います。
問題と思われるプログラムコードをここに書いてもらえれば他のみなさんも助言して下さると思いますし
jayさんのおっしゃってるようにソースをここに載せていただきますでしょうか?
その際は、codeタグを使っていただきますようにお願いします。

THE初心者

Re: 敵の最初の消滅エフェクトによる一瞬の停止について

#5

投稿記事 by THE初心者 » 13年前

 敵の消滅の際のエフェクトに関する関数などを記述した effect.cpp らへんが個人的には影響しているのかと思うのですが、これは龍神録の説明順序19の場所にあったコードをそのままコピーしたものです。第1章のコードを手順通りにいじっていて、19章で初弾の辺り判定の際のノイズが発生したので、個人的なコードの書き間違いだと思って付属の19章の方もデバッグしてやってみましたが、結果が同じになってしまいました。

コード:

#include "../include/GV.h"

//エフェクトの登録空き番号を探す
int search_effect(){
        for(int i=0;i<EFFECT_MAX;i++){
                if(effect[i].flag==0)
                        return i;
        }
        return -1;
}

//エフェクトを計算する
void calc_effect(){
        for(int i=0;i<EFFECT_MAX;i++){
                if(effect[i].flag>0){//エフェクトが登録されていたら
                        switch(effect[i].knd){//エフェクトの種類によって分岐
                                case 0://0番の処理
                                        effect[i].cnt++;
                                        effect[i].r+=0.08;//エフェクトの大きさを段々大きくする
                                        if(effect[i].cnt>10)//10カウント以上になったら
                                                effect[i].brt-=25;//明るさを少なくする
                                        if(effect[i].cnt>20)//20カウント以上になったら
                                                effect[i].flag=0;//消す
                                        break;
                                default:
                                        printfDx("effect設定エラー\n");
                                        break;
                        }
                }
        }
}

//消滅エフェクトの登録空き番号を探す
int search_del_effect(){
        for(int i=0;i<DEL_EFFECT_MAX;i++){
                if(del_effect[i].flag==0)
                        return i;
        }
        return -1;
}

//消滅エフェクトを登録する
void enter_del_effect(int s){
        int k=search_del_effect();
        if(k!=-1){
                del_effect[k].flag=1;//フラグを立てる
                del_effect[k].cnt=0;
                del_effect[k].col=enemy[s].back_col;//敵の背景色を消滅色に設定する
                del_effect[k].x=enemy[s].x;//敵の座標を消滅位置にセット
                del_effect[k].y=enemy[s].y;
        }
}

//消滅エフェクトを計算・エフェクトを登録する
void calc_del_effect(){
        int k;
        for(int i=0;i<DEL_EFFECT_MAX;i++){
                if(del_effect[i].flag>0){
                        if(del_effect[i].cnt%2==0){// 1/30秒ずつセット
                                if((k=search_effect())!=-1){//空き番号検索
                                        memset(&effect[k],0,sizeof(effect_t));//初期化
                                        effect[k].flag=1;//フラグを立てる
                                        effect[k].brt=255;//輝度を最大値に
                                        effect[k].ang=rang(PI);//角度をランダムに
                                        effect[k].col=del_effect[i].col;//色をセット
                                        effect[k].eff=1;//1は光エフェクト。光エフェクトにセットする
                                        effect[k].img=img_del_effect[effect[k].col];//消滅する画像をセット
                                        effect[k].knd=0;//エフェクトの種類は0番(消滅エフェクトは0とする)
                                        effect[k].x=del_effect[i].x;//座標をセット
                                        effect[k].y=del_effect[i].y;
                                }
                        }
                        if(del_effect[i].cnt>8){//カウンタが8より大きくなったら終了
                                del_effect[i].flag=0;
                        }
                        del_effect[i].cnt++;
                }
        }
}

void effect_main(){
        calc_del_effect();//消滅エフェクトの計算
        calc_effect();//エフェクトの計算
}
 main関数は次のようにしてます。

コード:

#define GLOBAL_INSTANCE 
#include "../include/GV.h"

//ループで必ず行う3大処理
int ProcessLoop(){
    if(ProcessMessage()!=0)return -1;//プロセス処理がエラーなら-1を返す
    if(ClearDrawScreen()!=0)return -1;//画面クリア処理がエラーなら-1を返す
    GetHitKeyStateAll_2();//現在のキー入力処理を行う
    GetHitPadStateAll();  //現在のパッド入力処理を行う
    return 0;
}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
    ChangeWindowMode(TRUE);//ウィンドウモード
    if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化

    while(ProcessLoop()==0){//メインループ
		music_ini();
        switch(func_state){
            case 0://初回のみ入る処理
                load();        //データロード
                first_ini();//初回の初期化
                func_state=99;
                break;
            case 99://STGを始める前に行う初期化
                ini();
				load_story();
                func_state=100;
                break;
            case 100://通常処理
                calc_ch();   //キャラクタ計算
                ch_move();   //キャラクタの移動制御
                cshot_main();//自機ショットメイン
                enemy_main();//敵処理メイン
                shot_main(); //ショットメイン
                out_main();  //当たり計算
				effect_main();//エフェクトメイン
                graph_main();//描画メイン
                stage_count++;
                break;
            default:
                printfDx("不明なfunc_state\n");
                break;
        }
		music_play();
        if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク
        ScreenFlip();//裏画面反映
    }
    DxLib_End();//DXライブラリ終了処理
    return 0;
}
 他にもファイルがかなりあって、気になるのはこの辺だと思って張りました。もし張るファイルが間違っていたりしたら、誠に申し訳ありません。こちらでも、他の章のプログラムも実行してみて調べて行きたいと思います。

アバター
bitter_fox
記事: 607
登録日時: 13年前
住所: 大阪府

Re: 敵の最初の消滅エフェクトによる一瞬の停止について

#6

投稿記事 by bitter_fox » 13年前

THE初心者 さんが書きました:  他にもファイルがかなりあって、気になるのはこの辺だと思って張りました。もし張るファイルが間違っていたりしたら、誠に申し訳ありません。こちらでも、他の章のプログラムも実行してみて調べて行きたいと思います。
うーん、にらめっこしましたが特に違いありませんね。。。

graph.cppというファイルとenemy.cppというファイルがあると思うのですが、そちらも乗せていただきますでしょうか?
お手数おかけします。

THE初心者

Re: 敵の最初の消滅エフェクトによる一瞬の停止について

#7

投稿記事 by THE初心者 » 13年前

bitter_foxさん、態々見ていただいてすみません。 graph.cpp と enemy.cpp 貼り付けます。

・graph.cpp

コード:

#include "../include/GV.h"

extern void graph_back_main();

void graph_effect(){
    for(int i=0;i<EFFECT_MAX;i++){
        if(effect[i].flag>0){
            if(effect[i].eff==1)//エフェクトが光エフェクトなら
                SetDrawBlendMode( DX_BLENDMODE_ADD, effect[i].brt) ;

            DrawRotaGraphF(effect[i].x+FIELD_X,effect[i].y+FIELD_Y,effect[i].r,effect[i].ang,effect[i].img,TRUE);

            if(effect[i].eff==1)
                SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0) ;
        }
    }
}

void graph_enemy(){
        int i;
        for(i=0;i<ENEMY_MAX;i++){
                if(enemy[i].flag==1){
                        DrawRotaGraphF(enemy[i].x+FIELD_X,enemy[i].y+FIELD_Y,1.0f,0.0f,img_enemy[0][enemy[i].img],TRUE);
                }
        }
}

void graph_cshot(){
        for(int i=0;i<CSHOT_MAX;i++){
                if(cshot[i].flag>0){
                        DrawRotaGraphF(cshot[i].x+FIELD_X,cshot[i].y+FIELD_Y,1,0,
                                       img_cshot[cshot[i].knd],TRUE);
                }
        }
}

void graph_ch(){
        DrawRotaGraphF(ch.x+FIELD_X,ch.y+FIELD_Y,1.0f,0.0f,img_ch[0][ch.img],TRUE);
}

//弾丸の描画
void graph_bullet(){
        int i,j;
        SetDrawMode( DX_DRAWMODE_BILINEAR ) ;//線形補完描画
        for(i=0;i<SHOT_MAX;i++){//敵の弾幕数分ループ
                if(shot[i].flag>0){//弾幕データがオンなら
                        for(j=0;j<SHOT_BULLET_MAX;j++){//その弾幕が持つ弾の最大数分ループ
                                if(shot[i].bullet[j].flag!=0){//弾データがオンなら
                                        if(shot[i].bullet[j].eff==1)
                                                SetDrawBlendMode( DX_BLENDMODE_ADD, 255) ;

                                        DrawRotaGraphF(
                                                shot[i].bullet[j].x+FIELD_X, shot[i].bullet[j].y+FIELD_Y,
                                                1.0, shot[i].bullet[j].angle+PI/2,
                                                img_bullet[shot[i].bullet[j].knd][shot[i].bullet[j].col],TRUE);

                                        if(shot[i].bullet[j].eff==1)
                                                SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0) ;
                                }
                        }
                }
        }
        SetDrawMode(DX_DRAWMODE_NEAREST);//描画形式を戻す
}

void graph_board(){
        DrawGraph(  0,  0,img_board[10],FALSE);
        DrawGraph(  0, 16,img_board[11],FALSE);
        DrawGraph(  0,464,img_board[12],FALSE);
        DrawGraph(416,  0,img_board[20],FALSE);
}

void graph_main(){
		graph_effect();
        graph_enemy();
		graph_cshot();
        graph_ch();
		graph_bullet();
        graph_board();
		graph_back_main();
}
・enemy.cpp

コード:

#include "../include/GV.h"

#define ENEMY_PATTERN_MAX 11

extern void enemy_pattern0(int);extern void enemy_pattern1(int);extern void enemy_pattern2(int);
extern void enemy_pattern3(int);extern void enemy_pattern4(int);extern void enemy_pattern5(int);
extern void enemy_pattern6(int);extern void enemy_pattern7(int);extern void enemy_pattern8(int);
extern void enemy_pattern9(int);extern void enemy_pattern10(int);

void (*enemy_pattern[ENEMY_PATTERN_MAX])(int) = {
    enemy_pattern0,    enemy_pattern1,    enemy_pattern2,    enemy_pattern3,    enemy_pattern4,
    enemy_pattern5,    enemy_pattern6,    enemy_pattern7,    enemy_pattern8,    enemy_pattern9,
    enemy_pattern10,
};

//空いている敵番号を検索
int enemy_num_search(){
    for(int i=0;i<ENEMY_MAX;i++){//フラグのたって無いenemyを探す
        if(enemy[i].flag==0){
            return i;//使用可能番号を返す
        }
    }
    return -1;//全部埋まっていたらエラーを返す
}

//敵情報を登録
void enemy_enter(){//敵の行動を登録・制御する関数
    int i,j,t;
    for(t=0;t<ENEMY_ORDER_MAX;t++){
        if(enemy_order[t].cnt==stage_count){//現在の瞬間がオーダーの瞬間なら
            if((i=enemy_num_search())!=-1){
                enemy[i].flag   =1;//フラグ
                enemy[i].cnt    =0;//カウンタ
                enemy[i].pattern=enemy_order[t].pattern;//移動パターン
                enemy[i].muki   =1;//向き
                enemy[i].knd    =enemy_order[t].knd;//敵の種類
                enemy[i].x      =enemy_order[t].x;//座標
                enemy[i].y      =enemy_order[t].y;
                enemy[i].sp     =enemy_order[t].sp;//スピード
                enemy[i].bltime =enemy_order[t].bltime;//弾の発射時間
                enemy[i].blknd  =enemy_order[t].blknd;//弾幕の種類
                enemy[i].blknd2 =enemy_order[t].blknd2;//弾の種類
                enemy[i].col    =enemy_order[t].col;//色
                enemy[i].wait   =enemy_order[t].wait;//停滞時間
                enemy[i].hp     =enemy_order[t].hp;//体力
                enemy[i].hp_max =enemy[i].hp;//体力最大値
                enemy[i].vx     =0;//水平成分の速度
                enemy[i].vy     =0;//鉛直成分の速度
                enemy[i].ang    =0;//角度
				enemy[i].back_col=GetRand(4);//敵の背景色
                for(j=0;j<6;j++)
                    enemy[i].item_n[j]=enemy_order[t].item_n[j];//落とすアイテム
            }
        }
    }
}

void enter_shot(int i){
        int j;
        for(j=0;j<SHOT_MAX;j++){//フラグのたって無いenemyを探す
                if(shot[j].flag==0){//未使用の弾幕データがあれば
                        memset(&shot[j],0,sizeof(shot_t));//初期化して登録
                        shot[j].flag=1;//フラグをたてる
                        shot[j].knd=enemy[i].blknd;//弾の種類
                        shot[j].num=i;//num=どの敵から発射されたものか。
                        shot[j].cnt=0;
                        return ;
                }
        }
}


//敵の行動制御
void enemy_act(){
    int i;
    for(i=0;i<ENEMY_MAX;i++){
        if(enemy[i].flag==1){//その敵のフラグがオンになってたら
            if(0<=enemy[i].pattern && enemy[i].pattern<ENEMY_PATTERN_MAX){
                enemy_pattern[enemy[i].pattern](i);
                enemy[i].x+=cos(enemy[i].ang)*enemy[i].sp;
                enemy[i].y+=sin(enemy[i].ang)*enemy[i].sp;
                enemy[i].x+=enemy[i].vx;
                enemy[i].y+=enemy[i].vy;
                enemy[i].cnt++;
                enemy[i].img=enemy[i].muki*3+(enemy[i].cnt%18)/6;
                //敵が画面から外れたら消す
                if(enemy[i].x<-20 || FIELD_MAX_X+20<enemy[i].x || enemy[i].y<-20 || FIELD_MAX_Y+20<enemy[i].y)
                    enemy[i].flag=0;
				if(enemy[i].bltime==enemy[i].cnt)
                    enter_shot(i);
            }
            else
                printfDx("enemy[i].patternの%d値が不正です。",enemy[i].pattern);
        }
    }
}

//敵処理メイン
void enemy_main(){
    enemy_enter();
    enemy_act();
}
以上です。何度も確認してもらって、真に申し訳ないです。

jay
記事: 314
登録日時: 13年前
住所: 大阪市
連絡を取る:

Re: 敵の最初の消滅エフェクトによる一瞬の停止について

#8

投稿記事 by jay » 13年前

う~ん、僕の目から見ても特に可笑しな所を見つけることができません(単に見落としているだけかもしれませんが)
でもエフェクトを出した時に重くなるなら十中八九そこで余計な処理が入っていると思うのですが・・・

申し訳ないですがout.cppのコードも載せてもらえないでしょうか?
可能性があるならばチェックして見る価値はあると思いますので。
♪僕たちは まだ森の中 抜け出そう 陽のあたる場所へ

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 敵の最初の消滅エフェクトによる一瞬の停止について

#9

投稿記事 by softya(ソフト屋) » 13年前

それよりは、プロジェクトの一括ロード
http://dixq.net/rp/zip/project.zip
でまずダウンロードしてもらって、こちらをコンパイル・実行してみて処理落ちが発生しないか確認してもらえますでしょうか?
でダンロードしたプロジェクトに問題がない場合は、やはりTHE初心者さんのソースコードに問題あることになります。
もしダウンロードプロジェクトでも処理落ちしたらハードウェアやビデオドライバなど環境に問題があると切り分けが可能です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

THE初心者

Re: 敵の最初の消滅エフェクトによる一瞬の停止について

#10

投稿記事 by THE初心者 » 13年前

jayさん、softyaさん、色々と意見を下さってありがとうございます。一括ダウンロードの場所からダウンロードした19章のコードを以前jayさんに言われたように、周りの邪魔な起動中のプログラムを消して(常駐など全てを消しわけではないですが)実行して見たのですが、やはり何か一瞬のノイズと停止がおこってしまいました。これはハードウェアやビデオドライバの影響と見るべきなのでしょうか?デバッグをリリースにしたら問題なくなるのかと思って50章をリリースにして実行して実行ファイルを作ったのですが、今度は「load error」になりました。お求めいただいた通り、out.cppも張ります。

コード:

#include "../include/GV.h"

#define ENEMY_RANGE_MAX 4
#define CSHOT_RANGE_MAX 2

//敵の当たり判定範囲
int enemy_range[ENEMY_RANGE_MAX]={16,30,16,50};
//自機ショットの当たり判定範囲
int cshot_range[CSHOT_RANGE_MAX]={6,};

extern void enter_del_effect(int);

//当たったかどうかを判定する
int out_judge_cshot(int i,int s){
        int j;
        if(cshot[i].cnt>0){//ショットの軌道が1度でも計算されていたら
                double x=cshot[i].x-enemy[s].x;//敵と自機ショットとの距離
                double y=cshot[i].y-enemy[s].y;
                //オーバーフロー対策
                if(cshot[i].knd>=CSHOT_RANGE_MAX || enemy[s].knd>=ENEMY_RANGE_MAX)
                        printfDx("out_judge_cshot内オーバーフロー");
                //敵の当たり判定と自機ショットの当たり判定の合計範囲
                double r=cshot_range[cshot[i].knd]+enemy_range[enemy[s].knd];
                //中間を計算する必要があれば
                if(cshot[i].spd>r){
                        //1フレーム前にいた位置を格納する
                        double pre_x=cshot[i].x+cos(cshot[i].angle+PI)*cshot[i].spd;
                        double pre_y=cshot[i].y+sin(cshot[i].angle+PI)*cshot[i].spd;
                        double px,py;
                        for(j=0;j<cshot[i].spd/r;j++){//進んだ分÷当たり判定分ループ
                                px=pre_x-enemy[s].x;
                                py=pre_y-enemy[s].y;
                                if(px*px+py*py<r*r)
                                        return 1;
                                pre_x+=cos(cshot[i].angle)*r;
                                pre_y+=sin(cshot[i].angle)*r;
                        }
                }
                if(x*x+y*y<r*r)//当たり判定内なら
                        return 1;//当たり
        }
        return 0;
}

//敵が死ぬかどうかの決定
void enemy_death_judge(int s){
        int i;
        se_flag[8]=1;//敵に当たった音
        if(enemy[s].hp<0){//敵のHPが0未満になったら
                enemy[s].flag=0;//敵を消滅させる
                se_flag[1]=1;//敵のピチュり音
				enter_del_effect(s);
                for(i=0;i<SHOT_MAX;i++){//敵総数分
                        if(shot[i].flag!=0){//登録されている弾幕データがあれば
                                if(s==shot[i].num){//その敵が登録した弾幕があれば
                                        shot[i].flag=2;//それ以上弾幕を続けないフラグを立てる
                                        break;
                                }
                        }
                }
        }
}

//当たり判定メイン
void out_main(){
        int i,s;
        for(i=0;i<CSHOT_MAX;i++){//自機ショット総数
                if(cshot[i].flag>0){
                        for(s=0;s<ENEMY_MAX;s++){//敵総数
                                if(enemy[s].flag>0){
                                        if(out_judge_cshot(i,s)){//自機ショットと敵が当たっていれば
                                                cshot[i].flag=0;//その自機ショットを消す
                                                enemy[s].hp-=cshot[i].power;//弾の持つパワー分HPを減らす
                                                enemy_death_judge(s);//敵が死ぬかどうかを決める
                                        }
                                }
                        }
                }
        }
}

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 敵の最初の消滅エフェクトによる一瞬の停止について

#11

投稿記事 by softya(ソフト屋) » 13年前

jayさん、softyaさん、色々と意見を下さってありがとうございます。一括ダウンロードの場所からダウンロードした19章のコードを以前jayさんに言われたように、周りの邪魔な起動中のプログラムを消して(常駐など全てを消しわけではないですが)実行して見たのですが、やはり何か一瞬のノイズと停止がおこってしまいました。これはハードウェアやビデオドライバの影響と見るべきなのでしょうか?デバッグをリリースにしたら問題なくなるのかと思って 50章をリリースにして実行して実行ファイルを作ったのですが、今度は「load error」になりました
それはビデオドライバかGPU周りの問題の可能性が高いですね。
お使いのPCのチップセット/マザーボード/ビデオカード/PCの型番のいずれか分かる物を教えていただけませんでしょうか?
たぶんチップセット内蔵ビデオだと思うのですが、下記のソフトで
http://www.forest.impress.co.jp/docs/re ... 64469.html
Graphicsのページを表示して文字の部分を選択するとコピペ出来ますので貼りつけてもらえますか?

参考に私のGraphicsです。

コード:

Graphics
		Monitor
			Name	DELL ST2210 on NVIDIA GeForce GTS 250
			Current Resolution	1920x1080 pixels
			Work Resolution	1920x1004 pixels
			State	enabled, primary, output devices support
			Monitor Width	1920
			Monitor Height	1080
			Monitor Bpp	32 bits per pixel
			Monitor Frequency	60 Hz
			Device	\\.\DISPLAY1\Monitor0
		GeForce GTS 250
			GPU	G92
			Device ID	10DE-0615
			Revision	A3
			Subvendor	Undefined (7752DF32)
			Technology	65 nm
			Die Size	330 nmІ
			Transistors	754 M
			Release Date	Mar 3,  2009
			DirectX Support	10.0
			DirectX Shader Model	4.0
			OpenGL Support	3.0
			Bus Interface	PCI Express x16
			Temperature	46 °C
			SLI	Disabled
			BIOS Version	62.92.9a.00.00
			ROPs	16
			Shaders	128 unified
			Memory Type	GDDR3
			Physical Memory	512 MB
			Virtual Memory	2304 MB
			Bus Width	256 Bit
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

THE初心者

Re: 敵の最初の消滅エフェクトによる一瞬の停止について

#12

投稿記事 by THE初心者 » 13年前

softyaさん、何度もお越しいただいてありがとうございます。教えていただいたソフト(便利ですね、よいものを教えていただきました)を起動してグラフィックを調べたらイカの様になりました。このパソコン、自分個人としては部品に詳しくないので分からないのですが、余り良いとは考えてはおりません。

コード:

モニター
	名称	デジタル フラット パネル (1024x768 60Hz) on Mobile Intel 965 Express Chipset Family
	現在の解像度	1280x800 ピクセル
	タスクバーを除く解像度	1130x768 ピクセル
	状態	有効, プライマリ
	画面の解像度(横)	1280
	画面の解像度(縦)	800
	画面の色	32 bits/pixel
	画面のリフレッシュレート	60 Hz
	デバイス	\\.\DISPLAY1\Monitor0
Mobile Intel(R) 965 Express Chipset Family
	メモリ	448 MB
	メモリの種類	2
	ドライバのバージョン	7.14.10.1329
Mobile Intel(R) 965 Express Chipset Family
	メモリの種類	2
	ドライバのバージョン	7.14.10.1329

閉鎖

“C言語何でも質問掲示板” へ戻る