C言語何でも質問掲示板


Total hit  今日  昨日  

必ずお読み下さい → 規約と注意事項  アンケートはこちら  エラーで投稿できない方はこちら  過去ログ検索はこちら

 
   リリースモードだと画 ....   
     ・[50813] dic 
     ・[50867] dom 
     ・[51034] dic 
     ・[51036] dic 
   当たり判定のことです   
     ・[51028] kazuoni 
     ・[51032] 胡椒 
   龍神録にロード画面を ....   
     ・[50976] dic 
     ・[50978] dic 
     ・[50987] 組木紙織 
     ・[51004] miyaza 
     ・[51005] Ma 
     ・[51031] dic 
   フォントサイズを連続 ....   
     ・[51003] Ma 
     ・[51020] K 
     ・[51026] kazuoni 
     ・[51029] HK 
     ・[51030] HK 
   敵が出現しない   
     ・[50790] Dixq (管理人) 
     ・[50791] 蒼威桜 
     ・[51012] 蒼威桜 
     ・[51013] 蒼威桜 
     ・[51015] 蒼威桜 
   明日提出の課題が終わ ....   
     ・[51001] Ma 
     ・[51002] Ma 
     ・[51011] とも 
   課題が終わりません。 ....   
     ・[50989] たかぎ 
     ・[50992] とも 
     ・[50996] ぽこ 
     ・[50997] とも 
     ・[50998] softya 
     ・[50999] たかぎ 
     ・[51000] ぽこ 
     ・[51009] とも 
     ・[51010] とも 
   ブロック崩しを作って ....   
     ・[50779] Ma 
     ・[50903] アトラス 
     ・[50907] Ma 
     ・[50993] アトラス 
   javaでのクイックソー ....   
     ・[50983] box 
     ・[50984] ぽこ 
     ・[50986] ムウ 
   無題   
     ・[50937] Dixq (管理人) 
     ・[50938] ぽこ 
     ・[50939] STESH 
     ・[50942] ぽこ 
     ・[50943] ROM 
     ・[50944] STESH 
     ・[50945] ROM 
     ・[50946] softya 
     ・[50947] Dixq (管理人) 
     ・[50948] Dixq (管理人) 
     ・[50949] たかぎ 
     ・[50950] softya 
     ・[50951] ぽこ 
     ・[50952] たかぎ 
     ・[50953] Dixq (管理人) 
     ・[50955] ぽこ 
     ・[50963] Dixq (管理人) 
     ・[50982] ぽこ 
   MIDI入力でキャラを動 ....   
     ・[50868] Justy 
     ・[50972] ザヌオウ 
     ・[50977] hoge 
     ・[508631275642523] ザヌオウ 
   暗号について   
     ・[50684] たいちう 
     ・[50687] junjun 
     ・[50688] たいちう 
     ・[50717] junjun 
     ・[50727] ぽこ 
     ・[50767] junjun 
     ・[50769] ぽこ 
     ・[50770] junjun 
     ・[50773] ぽこ 
     ・[50774] junjun 
     ・[50775] ぽこ 
     ・[50776] junjun 
     ・[50800] ぽこ 
     ・[50804] junjun 
     ・[50821] junjun 
     ・[50910] junjun 
     ・[50913] たいちう 
     ・[50918] ookami 
     ・[50919] junjun 
     ・[50964] ookami 
     ・[50973] asd 
   ~ をキーボードから打 ....   
     ・[50838] たいちう 
     ・[50840] Ma 
     ・[50842] Justy 
     ・[50880] Ma 
     ・[50900] Justy 
     ・[50904] Ma 
     ・[50905] Ma 
     ・[50920] dic 
     ・[50922] Njin 
     ・[50961] Ma 
     ・[50962] Ma 
   生成された実行ファイ ....   
     ・[50958] ぽこ 
     ・[50959] kuri 
   int型の範囲   
     ・[50865] ぽこ 
     ・[50866] たかぎ 
     ・[50882] Ma 
     ・[50891] conio 
     ・[50930] hoge 
     ・[50935] asdf 
   お金の計算のプログラ ....   
     ・[50926] hoge 
     ・[50927] koose 
     ・[50929] softya 
     ・[50933] koose 
     ・[50934] 初級者 
   クラックされた?   
     ・[50931] softya 
     ・[50932] dic 
   3D機能を停止させたこ ....   
     ・[50716] Justy 
     ・[50792] no 
     ・[50794] 紅葉 
     ・[50795] softya 
     ・[50923] no 
     ・[50928] softya 
   配列の上限について   
     ・[50921] far-off 
   画像解析 OCR   
     ・[50917] たいちう 
   おひさしぶりです。ま ....   
     ・[50520] Ma 
     ・[50528] 御津凪 
     ・[50530] softya 
     ・[50531] 御津凪 
     ・[50532] たいちう 
     ・[50552] たかぎ 
     ・[50563] Dixq (管理人) 
     ・[50575] ookami 
     ・[50579] たかぎ 
     ・[50588] conio 
     ・[50591] たいちう 
     ・[50598] たかぎ 
     ・[50601] ワクワク 
     ・[50603] sizuma 
     ・[50616] kai 
     ・[50621] Dixq (管理人) 
     ・[50623] たかぎ 
     ・[50627] 通り 
     ・[50635] ジジ猫 
     ・[50637] たかぎ 
     ・[50639] あ〜る 
     ・[50640] conio 
     ・[50641] softya 
     ・[50648] 通り 
     ・[50651] ookami 
     ・[50657] dic 
     ・[50659] Dixq (管理人) 
     ・[50664] ジジ猫 
     ・[50670] たかぎ 
     ・[50713] ジジ猫 
     ・[50718] ムンバ 
     ・[50729] ジジ猫 
     ・[50771] ジジ猫 
     ・[50793] softya 
     ・[50816] ジジ猫 
     ・[50860] こめかみ 
     ・[50876] situmon 
     ・[50901] ジジ猫 
     ・[50912] こめかみ 
   cppunit   
     ・[50843] Justy 
     ・[50877] 光冠 
     ・[50911] 光冠 
   vector配列   
     ・[50902] たいちう 
     ・[50906] たかぎ 
     ・[50909] lan 
   ネット上でプログラム ....   
     ・[50884] Ma 
     ・[50893] Lipton 
     ・[50897] たかぎ 
     ・[50908] たいちう 
   二分探索   
     ・[50896] Ma 
     ・[50898] junjun 
   ボスのショットについ ....   
     ・[50825] Ma 
     ・[50826] Ma 
     ・[50827] 胡椒 
     ・[50828] Ma 
     ・[50829] 胡椒 
     ・[50830] Ma 
     ・[50831] 胡椒 
     ・[50832] Ma 
     ・[50834] あ〜る 
     ・[50835] Ma 
     ・[50869] 胡椒 
     ・[50871] 胡椒 
     ・[50873] 胡椒 
     ・[50874] あ〜る 
     ・[50889] Ma 
     ・[50894] 胡椒 
     ・[50895] 胡椒 
   必要なDLLの探し方   
   描画領域の変更   
     ・[50885] Ma 
     ・[50890] えむ1 
   単語の長さ順にソート   
     ・[50870] Justy 
     ・[50875] kos-mos 
     ・[50878] mosukun 
     ・[50881] mosukun 
     ・[50886] Justy 
     ・[50887] kos-mos 
   15. 音楽を流す。   
     ・[50847] hit 
     ・[50849] Dixq (管理人) 
     ・[50850] hit 
   GetRandを使って   
     ・[50803] ひよこ 
     ・[50805] Ma 
     ・[50807] ひよこ 
     ・[50837] rolf 
     ・[50844] rolf 
   ゲームがだんだんと重 ....   
     ・[50766] Justy 
     ・[50789] Dixq (管理人) 
     ・[50809] Arc 
     ・[50839] Arc 
   パネルの反転について   
     ・[50737] conio 
     ・[50740] 猫旅 
     ・[50741] conio 
     ・[50781] 猫旅 
     ・[50814] conio 
     ・[50819] 猫旅 
     ・[50820] conio 
   ボスのショットについ ....   
     ・[50780] あ〜る 
     ・[50797] 胡椒 
     ・[50802] あ〜る 
     ・[50818] 胡椒 
   自機ボムと敵弾の当た ....   
     ・[50806] Ma 
     ・[50810] softya 
     ・[50817] サイホーン 
   フォーマット指定子に ....   
     ・[50811] たかぎ 
     ・[50815] C復習中 
   SIN COS ATAN三角関数 ....   
     ・[50719] Dixq (管理人) 
     ・[50724] softya 
     ・[50798] サイホーン 
   利用についての質問   
     ・[50784] 紅葉 
     ・[50785] 蒼威桜 
     ・[50787] Dixq (管理人) 
     ・[50796] dic 
   ゲームが重いです。   
     ・[50782] Ma 
     ・[50786] Dixq (管理人) 
   C++の質問   
     ・[50739] conio 
     ・[50772] カトブムシ 
   'DxLib_d.lib' を開く ....   
     ・[50764] ムンバ 
   麻雀の和了形判定につ ....   
     ・[50656] nayo 
     ・[50658] たいちう 
     ・[50662] nayo 
     ・[50675] たいちう 
     ・[50679] バグ 
     ・[50680] たいちう 
     ・[50681] バグ 
     ・[50698] nayo 
     ・[50763] nayo 
   開きません・・・   
     ・[50762] Dixq (管理人) 
   3Dプログラム   
     ・[50618] Ma 
     ・[50710] Justy 
     ・[50732] s-rush 
     ・[50759] s-rush 

Name: dic  ..熟練のプログラマー(61,596ポイント)   Date: 2010/04/17(土) 17:57   No:50812       
Title: リリースモードだと画像がでない(オリジナルライブラリ使用    
ある程度進めて、リリースモードで速度を見ようとしたら
リリースモードでコンパイル実行だと画像が表示されないです
デバック版のビルドでは表示されるので、どこかにバグがあるとは思うのですが
予想できそうな所は一応目を通し、チェックしたのでどこが悪いか予想つかないです

pSurface -> 初期化済み
pBack -> バックバッファー初期化済み
void    DXDRAW3::Blt( LPDIRECTDRAWSURFACE pSurface, RECT src, RECT dest )
{
    if( !bReady )
        return;

    HRESULT    h;

    if( pSurface==NULL ){
        gLogdraw.Put( "pSurface==NULL.\n" );
        return;
    }

    h = pBack->Blt( &dest, pSurface, &src, DDBLT_KEYSRC | DDBLT_WAIT, NULL );

    if( h!=DD_OK )
    {
        if( h==DDERR_INVALIDRECT )
        {
// DDERR_INVALIDRECT に入る
            char    str[80];
            wsprintf( str, "ERR : src:(%d,%d)-(%d,%d)  dest:(%d,%d)-(%d,%d)\n",
                src.left, src.top, src.right, src.bottom,
                dest.left, dest.top, dest.right, dest.bottom );
            OutputDebugString( str );

        }
        else
            ddErr_(h);
    }
}

void hoge()
{
    //    背景を描画
    SetRect( &src, 0, 0, 800, 600 );
    SetRect( &dest, 0, 0, 800, 600 );
    DXDRAW3::Instance()->Blt( g_iImgBack01, src, dest );
}


他に予想できそうなところはないでしょうか?


594ポイント を手に入れた。


Name: dic  ..熟練のプログラマー(61,695ポイント)   Date: 2010/04/17(土) 18:02   No:50813     
Title: Re:リリースモードだと画像がでない(オリジナルライブラリ使用    
ちなみに
    RECT    src, dest;
    SetRect( &src, 0, 0, 640, 480 );
    SetRect( &dest, 0, 0, 640, 480 );
    DXDRAW3::Instance()->Blt( g_iTitle01, src, dest );

これは動くので、LPDIRECTDRAWオブジェクトの大きさが・・・?
とは思ってはいます


99ポイント を手に入れた。

Name: dom  ..ぴよぴよ(636ポイント)   Date: 2010/04/18(日) 20:39   No:50867     
Title: Re:リリースモードだと画像がでない(オリジナルライブラリ使用    
画像への相対パスが変わっているのでわないでしょうか。

12ポイント を手に入れた。

Name: dic  ..熟練のプログラマー(62,871ポイント)   Date: 2010/04/21(水) 16:30   No:51034     
Title: Re:リリースモードだと画像がでない(オリジナルライブラリ使用    
返答おくれました
ん〜、確認しましたけど、IDE上から呼び出すのでDebugもReleaseもパスは変わらないですね

回答ありがとうございました


8ポイント を手に入れた。

Name: dic  ..熟練のプログラマー(62,891ポイント)   Date: 2010/04/21(水) 16:34   No:51036 解決!     
Title: Re:リリースモードだと画像がでない(オリジナルライブラリ使用    
後回しってことで解決押しておきます


20ポイント を手に入れた。



Name: 胡椒  ..初心者(5,673ポイント)   Date: 2010/04/21(水) 11:55   No:51018       
Title: 当たり判定のことです    
龍神録のプログラムのout.cppなんですが

int out_judge(double x1, double y1, double x2, double y2,
              double range1, double range2, double spd1,double angle1){
    int j;
    double x=x1-x2;//敵と自機ショットとの距離
    double y=y1-y2;
    //敵の当たり判定と自機ショットの当たり判定の合計範囲
    double r=range1+range2;
    //中間を計算する必要があれば
    if(spd1>r){
        //1フレーム前にいた位置を格納する
        double pre_x=x1+cos(angle1+PI)*spd1;
        double pre_y=y1+sin(angle1+PI)*spd1;
        double px,py;
        for(j=0;j<spd1/r;j++){//進んだ分÷当たり判定分ループ
            px=pre_x-x2;
            py=pre_y-y2;
            if(px*px+py*py<r*r)
                return 1;
            pre_x+=cos(angle1)*r;
            pre_y+=sin(angle1)*r;
        }
    }
    if(x*x+y*y<r*r)//当たり判定内なら
        return 1;//当たり
    return 0;
}

の部分に

for(j=0;j<spd1/r;j++){//進んだ分÷当たり判定分ループ
            px=pre_x-x2;
            py=pre_y-y2;
            if(px*px+py*py<r*r)
                return 1;
            pre_x+=cos(angle1)*r;
            pre_y+=sin(angle1)*r;
        }

とありますが、ここのjは忌があるのでしょうか?
見たところfor文の中でjが使われていないと思うのですが・・・


647ポイント を手に入れた。


Name: kazuoni [URL]  ..ハッカー(142,600ポイント)   Date: 2010/04/21(水) 15:01   No:51028     
Title: Re:当たり判定のことです    
> jは忌があるのでしょうか? 

意味ですかね?
ではforてはなく、whileで書き換えてみてください。
そうすればjの意味がわかるかと思います。
一度for文の用法の再確認をしてみた方がよいかもしれません。


44ポイント を手に入れた。

Name: 胡椒  ..初心者(5,699ポイント)   Date: 2010/04/21(水) 16:23   No:51032 解決!     
Title: Re:当たり判定のことです    
すみません・・
ものすごく初歩的なことで勘違いをしていました・・・


26ポイント を手に入れた。



Name: miyaza  ..中級者(12,801ポイント)   Date: 2010/04/20(火) 14:50   No:50969       
Title: 龍神録にロード画面を実装する方法    
昔、どなたかが
▼以下のロードのサンプルを作った▼

#include "Lib/DxLib.h"

//毎回しないといけない処理
int LoopProcess(){
    if(ScreenFlip())//裏画面反映
        return -1;
    if(ProcessMessage())//メッセージ処理
        return -1;
    if(ClearDrawScreen())//画面クリア
        return -1;
    if(CheckHitKey(KEY_INPUT_ESCAPE))//ESCキーが押されていると終了
        return -1;
    return 0;
}

//読み込み個数(GraphLoadが呼ばれる回数)
#define NUM 120
//何回呼ばれたかカウントする変数
int LoadNum;

//ロード状態を描画
void GraphLoad(){
    DrawFormatString(300,400,GetColor(0,255,255),"%d%",LoadNum*100/NUM);
    DrawBox( 20, 440, 20+600*    NUM/NUM, 460, GetColor(0,255,255), FALSE );//枠描画
    DrawBox( 20, 440, 20+600*LoadNum/NUM, 460, GetColor(0,255,255), TRUE );//中身描画
    LoadNum++;
}

//データのロードと描画関数の呼び出し
int MyLoadGraph(char *st){
    GraphLoad();
    return LoadGraph( st );
}

//データのロード
void Load( int GraphHandle[NUM] ){
    int i;
    for(i=0;i<NUM;i++){
        LoopProcess();
        GraphHandle[i] = MyLoadGraph("Image.png");
    }
}

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
    int n=0;
    int GraphHandle[NUM];//画像ハンドル
    if( ChangeWindowMode(TRUE) || DxLib_Init() || SetDrawScreen( DX_SCREEN_BACK ) ) return -1;

    Load( GraphHandle );//データのロード
    while( !LoopProcess() ){

        //通常ここに処理を追加

    }
 
    DxLib_End();
    return 0;
}


これを利用して龍神録にロード画面を表示させる方法を実装してみたいのですが、
画像ハンドルが例えば
    img_board[10] = LoadGraph("../dat/img/board/10.png");
    img_board[11] = LoadGraph("../dat/img/board/11.png");
    img_board[12] = LoadGraph("../dat/img/board/12.png");
    img_etc[1]    = LoadGraph( "../dat/img/enemy/hp.png" );
    img_etc[2]    = LoadGraph( "../dat/img/enemy/bossback.png" );
    img_etc[5]    = LoadGraph( "../dat/img/enemy/bossback3.png" );
    LoadDivGraph( "../dat/img/bullet/b0.png" ,  5 ,  5 , 1 , 76 ,  76 , img_bullet[0] ) ;
    LoadDivGraph( "../dat/img/bullet/b1.png" ,  6 ,  6 , 1 , 22 ,  22 , img_bullet[1] ) ;
    LoadDivGraph( "../dat/img/bullet/b2.png" , 10 , 10 , 1 ,  5 , 120 , img_bullet[2] ) ;
    sound_se[0]=LoadSoundMem("../dat/se/enemy_shot.wav");
    sound_se[1]=LoadSoundMem("../dat/se/enemy_death.wav");
    sound_se[2]=LoadSoundMem("../dat/se/cshot.wav");
    color[0] = GetColor(255,255,255);//白
    color[1] = GetColor(  0,  0,  0);//黒
    color[2] = GetColor(255,  0,  0);//赤
みたいにバラバラで、どうもロードの仕方が分かりません。
どうしたら上手くいくか分かる方がいましたら教えてください。
よろしくお願いします。


1,118ポイント を手に入れた。


Name: dic  ..熟練のプログラマー(62,501ポイント)   Date: 2010/04/20(火) 20:27   No:50976     
Title: Re:龍神録にロード画面を実装する方法    
継承を使ってみてはどうでしょう?
#include <iostream>

class    Image
{
public:
    Image();
};
Image::Image() { }

class    Sound
{
public:
    Sound();
};
Sound::Sound() { }


class Data
{
public:
    virtual void    Load( char *filename, Image *image ) = 0;
    virtual    void    Load( char *filename, Sound *sound ) = 0;
};

class    DataLoad    :    public    Data
{
public:
    void    Load( char *filename, Image *image );
    void    Load( char *filename, Sound *sound );
};

void    DataLoad::Load( char *filename, Image *image )
{
    //    ロード処理
    //    image = Load( filename );
    printf( "Image Loaded.\n" );
}

void    DataLoad::Load( char *filename, Sound *sound )
{
    //    ロード処理
    //sound = Load( filename );
    printf( "Sound Loaded.\n" );
}

int main()
{
    DataLoad    *manager = new DataLoad();
    Image    image;
    Sound    sound;

    manager->Load( "test.jpg", &image );
    manager->Load( "test.wav", &sound );

    delete manager;

    return 0;
}



493ポイント を手に入れた。

Name: dic  ..熟練のプログラマー(62,598ポイント)   Date: 2010/04/20(火) 21:12   No:50978     
Title: Re:龍神録にロード画面を実装する方法    
自分で自分にレスするのもなんですが
Load( char *filename, Image *image );
Load( char *filename, Sound *sound );
とありますが、これってテンプレート化できたらやったほうがいい気がしてきた


97ポイント を手に入れた。

Name: 組木紙織  ..比類無きプログラマー(79,602ポイント)   Date: 2010/04/20(火) 23:34   No:50987     
Title: Re:龍神録にロード画面を実装する方法    
>とありますが、これってテンプレート化できたらやったほうがいい気がしてきた 
テンプレート化してみました。


#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <functional>
class    Image
{
public:
    bool run();
};
bool Image::run() {std::cout <<"image"<<std::endl; return true;}

class    Sound
{
public:
    bool run();
};
bool Sound::run(){std::cout << "sound" <<std::endl; return true;}

class  base
{
    base* thisPtr;
public:
    virtual bool run()=0;
};

template<typename T>
class Data: public base
{
private:
    T t;
public:
    bool run(){return t.run();}
    bool load(char*filename);
//    コンストラクタ
    Data(char*filename){std::cout << "open " << filename << std::endl; }
    Data(){thisPrt=this;}
};

struct f : public std::unary_function<base*,bool>
{
    bool operator()(base *b)
    {
        return b->run();
    }

};

int main()
{
    Data<Image> dataImage("image");
    Data<Sound> dataSound("sound");

    std::vector<base*> vec;
    vec.push_back(&dataImage);
    vec.push_back(&dataSound);
    std::for_each(vec.begin(),vec.end(),f());

    return 0;
}


361ポイント を手に入れた。

Name: miyaza  ..中級者(12,820ポイント)   Date: 2010/04/21(水) 05:02   No:51004     
Title: Re:龍神録にロード画面を実装する方法    
つまり、どうすればよろしいのでしょうか?

19ポイント を手に入れた。

Name: Ma  ..比類無きプログラマー(90,745ポイント)   Date: 2010/04/21(水) 05:16   No:51005     
Title: Re:龍神録にロード画面を実装する方法    
すべての変数をポインタ化して、そのポインタとファイル名を構造体にする。
それを配列にすれば、サンプルの方法でできます。


struct pointer_file{
    int* soundHand;
    std::string fileName;
}

pointer_file graphInitList[100] = {
{&graph_enemy[0],"fweagweag.jpg"},
{&graph_anime[1],"fwgeawg.jpg"},
}



もうひとつの方法は、グラフハンドルはすべてひとつの配列にしてしまう。
区別の仕方はインデックスにする値を#define することで、わかりやすくなる。

graphs[100];

#define G_BULLET1 (0)

graphs[G_BULLET1] = LoadGraph(...


*注意:テンプレートがどうのこうのってところはまったく読んでないです。

*追記注意
LoadDivGraph は、このようにはいかないので、もうひと工夫が必要です。
最初の質問と最初の過去のサンプルをみて答えました。 編集済み


330ポイント を手に入れた。

Name: dic  ..熟練のプログラマー(62,804ポイント)   Date: 2010/04/21(水) 16:20   No:51031     
Title: Re:龍神録にロード画面を実装する方法    
む?
miyazaさんは
バラバラで、どうもロードの仕方が分かりません。 
どうしたら上手くいくか分かる方がいましたら教えてください。
とおっしゃってたので
統一した形式でロード処理のソースを書きたいのかなと思い
継承を使った場合をサンプルで書いてみました

継承がわからないのか、関数のオーバーロードがわからないのか
関数の組み方がわからないのか、どうやっていいのかまったくわからないのか

どこらへんでつまづいてます?

Maさんのサンプルもありますので、私だけのやりかたにこだわらなくていいですけど


206ポイント を手に入れた。



Name: HK  ..ぴよぴよ(794ポイント)   Date: 2010/04/21(水) 00:49   No:50994       
Title: フォントサイズを連続的に変える    
DXライブラリを使って
文字が大きくなったり小さくなったりと、
フォントサイズを連続的に変えたい場合、
どういった方法が一般的なのでしょうか。

一応、考えたのですが
SetFontSize( )の引数を単純にフレームごとに
変更していくだけの方法ではダメなのでしょうか。
処理の速さなどの面も心配です。


154ポイント を手に入れた。


Name: Ma  ..比類無きプログラマー(90,415ポイント)   Date: 2010/04/21(水) 04:02   No:51003     
Title: Re:フォントサイズを連続的に変える    
かなりの頻度でかわるようならば、描画可能グラフハンドルに大きめのフォントを描画して、
必要に応じて拡大率を変えて描画するのが一番いい方法だとおもいます。

SetFontSize はおもかったはずです。
なお、CreateFontHandle で大量生産する方法もありますが、かなりメモリを消費するため、やめたほうがいいです。


38ポイント を手に入れた。

Name: K  ..かけだし(2,131ポイント)   Date: 2010/04/21(水) 12:42   No:51020     
Title: Re:フォントサイズを連続的に変える    
>必要に応じて拡大率を変えて…

DXライブラリの関数で「描画の拡大率を変える」というようなものがあるのでしょうか。


8ポイント を手に入れた。

Name: kazuoni [URL]  ..ハッカー(142,556ポイント)   Date: 2010/04/21(水) 14:57   No:51026     
Title: Re:フォントサイズを連続的に変える    
> 描画の拡大率を変える

関数DrawExtendGraphですかね。


13ポイント を手に入れた。

Name: HK  ..ぴよぴよ(808ポイント)   Date: 2010/04/21(水) 15:40   No:51029     
Title: Re:フォントサイズを連続的に変える    
解決しました。


ありがとうございました。


14ポイント を手に入れた。

Name: HK  ..ぴよぴよ(821ポイント)   Date: 2010/04/21(水) 15:40   No:51030 解決!     
Title: Re:フォントサイズを連続的に変える    
解決済 チェックします

13ポイント を手に入れた。



Name: 蒼威桜  ..ぴよぴよ(289ポイント)   Date: 2010/04/17(土) 11:45   No:50788       
Title: 敵が出現しない    
このホームページを参考にシューティングを製作しているのですが、load.cpp のエクセルのデータを読み込む
処理をそのまま使って敵キャラを出現させてみたのですが、出たり出なかったりといった具合にデータどおり
出ません。
仕方なくswitch case文を使いstage_countを条件にしてみたのですが、先ほどまではランダムだったのですが、
ある程度countをあければ出てくるようになったのですが、10カウントごとみたいに短い間隔で出せないので
困っています。
今日はプログラム自体を持ってないので必要があれば後日添付したいと思います。
よろしくお願いします。


246ポイント を手に入れた。


Name: Dixq (管理人) [URL]  ..ウィザード(1,179,766ポイント)   Date: 2010/04/17(土) 11:48   No:50790     
Title: Re:敵が出現しない    
まず、龍神録プログラミングの館の話でよいでしょうか?

load.cppのエクセルファイルで読み込んでいるファイルと変更しているファイルは一致していますか?
そうでないなら、これだけの情報ではこちらでも解らないですね・・


81ポイント を手に入れた。

Name: 蒼威桜  ..ぴよぴよ(276ポイント)   Date: 2010/04/17(土) 12:02   No:50791     
Title: Re:敵が出現しない    
すみません。説明足らずで、龍神録プログラミングの館であってます。

13ポイント を落としてしまった。

Name: 蒼威桜  ..ぴよぴよ(209ポイント)   Date: 2010/04/21(水) 09:36   No:51012     
Title: Re:敵が出現しない    
プログラムを添付しておきますので、よろしくお願いいたします。
龍神録プログラミングの館の画像等を流用したままの部分がありますが最終的には直すつもりなのでご了承ください。龍神録プログラミングの館


67ポイント を落としてしまった。

Name: 蒼威桜  ..ぴよぴよ(226ポイント)   Date: 2010/04/21(水) 09:40   No:51013     
Title: Re:敵が出現しない    
すいません、間違いました。
添付します。


17ポイント を手に入れた。

Name: 蒼威桜  ..ぴよぴよ(262ポイント)   Date: 2010/04/21(水) 10:01   No:51015     
Title: Re:敵が出現しない    
たびたびすいません。編集の仕方がわからないので、再度書き込みをして添付します。

36ポイント を手に入れた。



Name: とも  ..ぴよぴよ(283ポイント)   Date: 2010/04/21(水) 00:06   No:50990       
Title: 明日提出の課題が終わりません。どなたか教えて下さい。    
「ある学級のテストの点数(0または正の整数)をキーボードから入力し、60点以上なら「合格」それ以外は「不合格」と表示し、受験者数、合格者数、全体の平均点を画面に出力するプログラムを作れ。点数の読み込みは、負の点数が入力されたとき終了するものとする。」という課題なのですがどなたか教えて下さい。よろしくお願いします。

111ポイント を手に入れた。


Name: Ma  ..比類無きプログラマー(90,353ポイント)   Date: 2010/04/21(水) 03:57   No:51001     
Title: Re:明日提出の課題が終わりません。どなたか教えて下さい。    
まるなげ禁止です。規約の要点を読んでください。
水曜日 00:06 に書き込みしたようなので、明日っていうと木曜でしょうか?
初心者でも2時間もあれば、入門サイトを読むだけで、それぐらいのプログラムを書けるようになりますので
少し努力してみてはどうでしょうか。

ヒントは、
合計点数、受験者数、合格者数 をint型で用意しておく。(0で初期化)*あるいは配列で入力データを記録する。
cout で入力指示
cin でスコア入力
負かどうか確認、負ならreturn
例の変数にデータをそれぞれ適当に記録
if 文で判定、
判定に応じて合格かどうかcout。
受験者数、合格者数、平均をcout
ここから入力指示にループによて戻る。


242ポイント を手に入れた。

Name: Ma  ..比類無きプログラマー(90,377ポイント)   Date: 2010/04/21(水) 03:59   No:51002     
Title: Re:明日提出の課題が終わりません。どなたか教えて下さい。    
なんだ。。。もう他のスレで進行中だったのか。 編集済み

24ポイント を手に入れた。

Name: とも  ..ぴよぴよ(674ポイント)   Date: 2010/04/21(水) 09:22   No:51011     
Title: Re:明日提出の課題が終わりません。どなたか教えて下さい。    
Maさん間違えてスレを二つ立てて迷惑をかけてしまいすみませんでした。でもとても分かりやすいです。ありがとうございます。

2倍のポイントを手に入れた! 98ポイント を手に入れた。



Name: とも  ..ぴよぴよ(172ポイント)   Date: 2010/04/21(水) 00:01   No:50988       
Title: 課題が終わりません。どなたか教えて下さい。    
「ある学級のテストの点数(0または正の整数)をキーボードから入力し、60点以上なら「合格」それ以外は「不合格」と表示し、受験者数、合格者数、全体の平均点を画面に出力するプログラムを作れ。点数の読み込みは、負の点数が入力されたとき終了するものとする。」という課題なのですが全然分かりません。明日の午後提出なのですがどなたか教えていただければ幸いです。お願いします。

172ポイント を手に入れた。


Name: たかぎ [URL]  ..ハッカー(176,506ポイント)   Date: 2010/04/21(水) 00:03   No:50989     
Title: Re:課題が終わりません。どなたか教えて下さい。    
まずは規約を熟読しましょう。
急ぐならなおさらです。


23ポイント を手に入れた。

Name: とも  ..ぴよぴよ(447ポイント)   Date: 2010/04/21(水) 00:41   No:50992     
Title: Re:課題が終わりません。どなたか教えて下さい。    
すいませんでした。規約を見てきました。それでも失礼があればまた教えて下さい。プログラムはPCは無いので紙に書いて作っています。プログラムは60点以上か判断する所までやったのですが、その後の受験者数、合格者数、全体の平均点を出すプログラムがよくわかりません。 
#include<stdio.h>
int main(void)
{
  int data;
  printf("点数入力");    scanf("%d",&data);
  if(data>=60);
  printf("合格\n");
  else  
    printf("不合格\n"); return 0;
}
と作りました。携帯からの投稿なのでうまく表示されないかもしれませんがよろしくお願いします。


2倍のポイントを手に入れた! 164ポイント を手に入れた。

Name: ぽこ  ..中級者(9,404ポイント)   Date: 2010/04/21(水) 01:19   No:50996     
Title: Re:課題が終わりません。どなたか教えて下さい。    
1. 上記表示を無限に続けるコードを書く。
2. 1.で書いたコードを負値を入力された場合に終了するコードに変更する。
3. 2.で書いたコードを、入力値がなら、受験者数を1増やすコードに変更する。
4. 3.で書いたコードを、入力値が60点以上なら合格者数を1増やすコードに変更する。
5. 4.で書いたコードを、負値が入力された場合に受験者数と合格者数を表示するコードに変更する。
6. あとは平均点を出す。平均点の計算方法は知ってますよね?それが分かっていれば、
  3.か4.を応用すれば書けるはずです。



2倍のポイントを手に入れた! 456ポイント を手に入れた。

Name: とも  ..ぴよぴよ(509ポイント)   Date: 2010/04/21(水) 01:46   No:50997     
Title: Re:課題が終わりません。どなたか教えて下さい。    
ぽこさんありがとうございます。平均を出す所は分かるのですが人数を数える所がよくわかりません。ヒント程度でいいので、プログラムを教えてくれるとありがたいです。
あとPAD図というものも書いて提出らしいのですがどう書いたらいいのでしょうか教えて下さい。 編集済み


62ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(151,217ポイント)   Date: 2010/04/21(水) 01:59   No:50998     
Title: Re:課題が終わりません。どなたか教えて下さい。    
こちらのサイトでPCが無くてもコンパイルと実行が出来ます。
http://codepad.org/
掲示板に貼るように、プログラムをコピペしてください。
Submitを押すとコンパイル結果とコンパイルに問題が無ければ実行結果が出ます。




85ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(176,555ポイント)   Date: 2010/04/21(水) 02:03   No:50999     
Title: Re:課題が終わりません。どなたか教えて下さい。    
codepadでは入力ができませんね。
それはそうと、スレッドを乱立させたり、とても規約を熟読したとは思えません。


49ポイント を手に入れた。

Name: ぽこ  ..中級者(9,586ポイント)   Date: 2010/04/21(水) 02:09   No:51000     
Title: Re:課題が終わりません。どなたか教えて下さい。    
> ぽこさんありがとうございます。平均を出す所は分かるのですが人数を数える所がよくわかりません。ヒント程度でいいので、プログラムを教えてくれるとありがたいです。

int student = 0;

0以上の入力がある度に、
student = student + 1;
で良いです。

> あとPAD図というものも書いて提出らしいのですがどう書いたらいいのでしょうか教えて下さい。
いや、「らしい」って他人事なら書かなくていいんじゃないのですか?
と冗談はさておき、Webで調べてください。
正直、掲示板で教えることはできません。
とりあえず、PAD図を解説しているWebページのリンクだけ提示しておきます。
携帯から閲覧できない場合は自分で探してください。
http://www2.ee.knct.ac.jp/el/E2/L210/algorism/pad1.html

#というか、課題として出ているなら習っているはずですよね?



182ポイント を手に入れた。

Name: とも  ..ぴよぴよ(546ポイント)   Date: 2010/04/21(水) 09:14   No:51009     
Title: Re:課題が終わりません。どなたか教えて下さい。    
ぽこさん親切にありがとうございます。PAD図は資料を配布された程度で授業ではやってなかったんです。でもおかげで理解出来ました。

37ポイント を手に入れた。

Name: とも  ..ぴよぴよ(576ポイント)   Date: 2010/04/21(水) 09:18   No:51010     
Title: Re:課題が終わりません。どなたか教えて下さい。    
たかぎさんすみませんでした。言い訳くさいんですが一つだけ作ったつもりが操作を間違えて二つ作ってしまったんです。

30ポイント を手に入れた。



Name: アトラス  ..入門者(4,360ポイント)   Date: 2010/04/17(土) 04:04   No:50778       
Title: ブロック崩しを作ってみました    
ゲームプログラミングの館や、龍神録のプログラムの組み方を参考にしながら、ブロック崩しを作ってみました。

きちんと完成させたのはこれが初めてです。

以前は謎を解き、敵を倒しながらダンジョンを進んでいくというゲームを作ってた(いつか少しだけ公開してたと思います)のですが、作業量の多さや、知識・技術不足のため断念しましたorz

ゲームの中で比較的簡単な部類に入ると考えてたブロック崩しですが、ボールとブロックの判定にかなり苦戦しました(^ω^;)

http://cid-57255bf3fbd40f40.skydrive.live.com/browse.aspx/.Public

ソースも一応上げてます。
全体的に荒いかもしれませんが、ざっと見た感じで気になった(良くない)記述等があれば指摘していただけると助かります。

あとゲーム自体の感想もお待ちしてます。 編集済み


233ポイント を落としてしまった。


Name: Ma  ..比類無きプログラマー(84,517ポイント)   Date: 2010/04/17(土) 04:34   No:50779     
Title: Re:ブロック崩しを作ってみました    
ボールのスタート位置と初期ベクトルは、修正したほうがいいです。
いきなり、ななめにさがってくるなんて。予想外でしたよw

初期位置は、プレート上中央で、初期ベクトルの向きは斜め上か上方向がいいかと。



オプションで、対応するキーを・・・
とありましたが、対応するボタンの間違いではないですか?
また、このオプションはパッドがつながっていない場合はできないようにしたほうがいいんじゃないでしょうか。

また、オプションの上下左右は、あまり意味がないとおもいます。
パッドの上下左右ボタンで操作できるため、別のボタンを適応することは稀ではないでしょうか。

オプション中にキーボードXキーでキャンセルするためには、最後の三つの選択肢のどれかを選択していないといけませんでした。
これは、どこを選択してあってもキャンセルをできるようにしてはいかがでしょうか。



313ポイント を手に入れた。

Name: アトラス  ..入門者(4,879ポイント)   Date: 2010/04/19(月) 00:58   No:50903     
Title: Re:    
コメントありがとうございます!
指摘された部分を直して修正版をupしました


>ボールのスタート位置と初期ベクトルは、修正したほうがいいです。 
>いきなり、ななめにさがってくるなんて。予想外でしたよw 

昔windowsに入ってたブロック崩しがこういう感じだったのでそれに倣ったのですが、
確かに、これだと初めて遊ぶ方に易しくないですね



>オプションで、対応するキーを・・・ 
>とありましたが、対応するボタンの間違いではないですか? 

その通りですね、ボタンですね。


>また、このオプションはパッドがつながっていない場合はできないようにしたほうがいいんじゃないでしょうか。


うーん、そうするメリットというか、理由って何でしょうか?
元々パッドの入力でしかコンフィグできないようにしてありますし・・。



それと・・・

>また、オプションの上下左右は、あまり意味がないとおもいます。 
>パッドの上下左右ボタンで操作できるため、別のボタンを適応することは稀ではないでしょうか。 

この点については、パッドの3Dスティックと十字キーどちらでも操作できるようにするために、上下左右の設定を入れてます。


>オプション中にキーボードXキーでキャンセルするためには、最後の三つの選択肢のどれかを選択していないといけませんでした。 
>これは、どこを選択してあってもキャンセルをできるようにしてはいかがでしょうか。

これはやはり煩わしかったみたいですね。
コンフィグ中、キーボードでのみキャンセル処理を受け付けるようにしました。

 編集済み


519ポイント を手に入れた。

Name: Ma  ..比類無きプログラマー(89,409ポイント)   Date: 2010/04/19(月) 01:21   No:50907     
Title: Re:    
>うーん、そうするメリットというか、理由って何でしょうか? 
>元々パッドの入力でしかコンフィグできないようにしてありますし・・。

パッドを持っていない人が、コンフィグ画面を見たら普通キーボードのコンフィグとおもいます。
なのに、どうやっても変わらないと、おかしいなって思うわけですが、そんな疑問を抱かせないために
というわけです。

ひどいと、苦情もくるかもしれません。キーボードのコンフィグ使えないんですけど、みたいに。

そのため、パッドがつながっていない場合はコンフィグをOFFにするか、あるいは「コントローラー」のコンフィグであることを明記するといいと思います。
(パッドという単語はあまり知られていないので、コントローラーにするといいです。)


>この点については、パッドの3Dスティックと十字キーどちらでも操作できるようにするために、上下左右の設定を入れてます。 

なるほど、そういう(十字ボタンが最初は対応していない)パッドもあるんですかね、
私のパッドでは最初から十字ボタンと3Dスティックに対応していました。
それならいいとおもいます。


483ポイント を手に入れた。

Name: アトラス  ..入門者(4,526ポイント)   Date: 2010/04/21(水) 00:45   No:50993 解決!     
Title: Re:    
>パッドを持っていない人が、コンフィグ画面を見たら普通キーボードのコンフィグとおもいます。 
>なのに、どうやっても変わらないと、おかしいなって思うわけですが、そんな疑問を抱かせないために 
>というわけです。 

キー押しても反応が無いと確かに戸惑いますね


>パッドという単語はあまり知られていないので、コントローラーにするといいです。

そうなのですか、コントローラという表記のほうがいいのですね。


>なるほど、そういう(十字ボタンが最初は対応していない)パッドもあるんですかね

私はPS3のコントローラを使っているのですが、十字がボタンとして認識されますね。
このため方向のコンフィグが無いゲームではスティック操作を使わざるを得ませんorz(JoyToKey等のソフトをプレイヤー側で用意すれば一応問題は無いですけどね)


こうやって自分以外の人の目を通すと、いくらでも改善点は見つかりますね、Maさん、コメントありがとうございました!


353ポイント を落としてしまった。



Name: ムウ  ..ぴよぴよ(29ポイント)   Date: 2010/04/20(火) 22:06   No:50980       
Title: javaでのクイックソートの実装    
このサイトにアップされているクイックソートのアプリを見ながら実装を試みたのですがエラーが出てうまく実装できません・・・
なにか悪い点があればご指摘して頂けると幸いです

プログラムソース

public class quicksort {

    private static void c(int x[], int i, int j){
        int t;
        t = x[i]; x[i] = x[j]; x[j] = t;
    }

    private static void s(int x[], int l, int r){
        int i, j, p;
        i = l; j = r;
        p = x[l + r / 2];
        while(true){
            while(x[i] < p) //左から見てpより大きい物を探す
                i++;
            while(p < x[j]) //右から見てpより小さい物を探す
                j--;
            if(i >= j)
                break;
            c(x, i, j);
            i++;
            j--;
        }
        if(l < i -1)
            s(x, l, i - 1);    
        if(j + 1 < r)
            s(x, j + 1, r);
    }
        public static void main(String[] args) {
            int x[] = {10,2,33,26,4,6,55,1,98,48,3,100};
            s(x, 0, 11);
            for(int i = 0; i <= 9; i++)
                System.out.println("x[i]");
        }
}


29ポイント を手に入れた。


Name: box  ..ハッカー(152,122ポイント)   Date: 2010/04/20(火) 22:43   No:50983     
Title: Re:javaでのクイックソートの実装    
> エラーが出てうまく実装できません・・・

何をしたときにどんなエラーが出るかを「具体的に」書いてください。
そうでないと、

> なにか悪い点があればご指摘して頂けると幸いです

このご要望にはお応えできません。
仮に、質問者さんが回答する立場であるとして、
単に「エラーが出た」という状況説明に対して
何か有効な回答ができるとお考えですか?

ところで、

>             for(int i = 0; i <= 9; i++)

9までにとどまっている(配列全体を出力しようとしていない)
のは、何か理由があるのですか?

>                 System.out.println("x[i]");

"x[i]"という文字列を10回出力するのが、プログラムの仕様なのですか? 編集済み


96ポイント を落としてしまった。

Name: ぽこ  ..初心者(8,948ポイント)   Date: 2010/04/20(火) 22:52   No:50984     
Title: Re:javaでのクイックソートの実装    
変数pの算出方法が参考元と異なります。
修正してみると、どう動きますか?


29ポイント を手に入れた。

Name: ムウ  ..ぴよぴよ(127ポイント)   Date: 2010/04/20(火) 23:03   No:50986 解決!     
Title: Re:javaでのクイックソートの実装    
>>boxさん
出力の仕方を間違えてました・・・
正しくは
for(int i = 0; i <= 11; i++)
   System.out.println(x[i]);
でした。
エラーについては後述してくださった変数pの算出方法を変えたらうまくいきました
スレ汚しすいません

>>ぽこさん
見落としてました・・・
わざわざありがとうございます! 編集済み


98ポイント を手に入れた。



Name: STESH  ..ぴよぴよ(6ポイント)   Date: 2010/04/19(月) 22:55   No:50936       
Title: 無題    
写メの問題の1.4の検討を解いてくださいませんでしょうか??;;
どうしても分からなく困っております;; C言語でよろしくお願いします!

親切な方お願いします!! 編集済み


6ポイント を手に入れた。


Name: Dixq (管理人) [URL]  ..ウィザード(1,180,110ポイント)   Date: 2010/04/19(月) 23:06   No:50937     
Title: Re:無題    
STESHさん

こんにちは。
お困りのようですが、この問題結構簡単ですよ。
難しそうに見えるだけでC言語としては簡単です。
ただ仕様によりますが、グラフもC言語で書くんですか?
その場合どうやってかきますか?
プロンプトで書くのか、OpenGLみたいなものでかくのか、グラフライブラリを使うのか。
はたまたエクセルに出力するのかなど。

簡単なfor文で解けますが、STESHさんはどの辺りまでC言語を学んでいますか?
また、C言語で解こうとした時、どの部分で解らないと感じますか?
例えば1〜10までの整数をforで足し合わせて表示するプログラムなら書けますか?

後、次から投稿する前に規約を軽くでいいので読んでくださいね。


291ポイント を手に入れた。

Name: ぽこ  ..初心者(8,710ポイント)   Date: 2010/04/19(月) 23:09   No:50938     
Title: Re:無題    
> どうしても分からなく困っております;;
何かを考えたのなら、その考えたことをきちんと書いてください。
そうすれば、親切な方が分からない点を教えてくれると思いますよ。


54ポイント を手に入れた。

Name: STESH  ..ぴよぴよ(131ポイント)   Date: 2010/04/19(月) 23:25   No:50939     
Title: Re:無題    
すみません、規約も読まずに投稿してしまいました;; 正直自分は、プログラミングがとてつもなく苦手で、
for文の使い方もはっきりと分かる感じではありません;;

学校の宿題で出されまして、グラフは、プログラミング作成後にエクセルにプログラミングで得た結果をコピーし作成します。ですのでそこまでのプログラミングを教えていただきたいと思いました。


125ポイント を手に入れた。

Name: ぽこ  ..初心者(8,713ポイント)   Date: 2010/04/19(月) 23:31   No:50942     
Title: Re:無題    
> for文の使い方もはっきりと分かる感じではありません;;

んでは、for文を使って1から10までを足し合わせ、
結果を出力するプログラムを書いてみてください。
これが出来れば、半分終了です。


3ポイント を手に入れた。

Name: ROM  ..かけだし(1,633ポイント)   Date: 2010/04/19(月) 23:36   No:50943     
Title: Re:無題    
> すみません、規約も読まずに投稿してしまいました;;

というなら直しましょうよ。
規約にあるように、自分の環境を書き、今自分がどこまで解っていてどこから知りたいのかも書きましょう。
そもそもこのままではまだ課題の丸投げである状態は変わりません。

for文が書けないならprintf関数の使い方ならわかりますか?


91ポイント を手に入れた。

Name: STESH  ..ぴよぴよ(268ポイント)   Date: 2010/04/19(月) 23:49   No:50944 解決!     
Title: Re:無題    
皆さん大変申し訳ありませんでした。正直、自分はプログラミング無知に近く課題を出されても解ける能力は、ありません。

もう少し基礎を勉強してきます。管理人さん、申し訳ありませんが、このスレッドの削除をよろしくお願いします。

皆さん、かき回すだけかき回しほんとうに申し訳ありませんでした。


137ポイント を手に入れた。

Name: ROM  ..かけだし(1,693ポイント)   Date: 2010/04/19(月) 23:51   No:50945     
Title: Re:無題    
問題文が無くなってますね。
ここでは誰かが解いてくれそうにないからもういいという感じでしょうか?
最後まで規約違反をするつもりでしょうか。


60ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(151,128ポイント)   Date: 2010/04/19(月) 23:57   No:50946     
Title: Re:無題    
やはり、自分で考える気がないようです。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1139714576


12ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,180,287ポイント)   Date: 2010/04/19(月) 23:58   No:50947     
Title: Re:無題    
> STESHさん

トピックを消すことはないんじゃないでしょうか。
C言語の課題が出るということは授業でCを勉強されてるんですよね?
ということはコンパイル環境はありますよね?
for文の部分はまだ自信が無いということは、C言語の1ページ目に書いてあるhello worldなら出来ると解釈していますが正しいでしょうか?

printfとfor文位ならいくらでも参考サイトがありますし

http://www.google.co.jp/search?hl=ja&q=%EF%BC%A3%E8%A8%80%E8%AA%9E%E3%80%80%E5%85%A5%E9%96%80&lr=lang_ja&aq=f&aqi=&aql=&oq=&gs_rfai=

いつが提出期限かわかりませんが、2日もあれば解けると思います。
大学か高校か専門学校課はわかりませんが、せっかくC言語を学ぶコースに高いお金を払って行っているのですから
自力で解いてみませんか?
苦手意識があるのかもしれませんが、それは解らないからで、解れば面白くなりますよ。

とりあえずどこが解らないか、どこまでならわかるか、はっきりさせてみませんか?
hello worldなら書けますよね?
ならば、1+2の計算結果を表示することは出来ますか?
出来ない場合、上記リンクなどを参考に自力で答えられますか?


177ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,180,316ポイント)   Date: 2010/04/20(火) 00:01   No:50948     
Title: Re:無題    
> softyaさん

う〜ん、、。
何とか自力で解いてほしいものです・・。


# ・・ってリンク先消えてますね。


29ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(176,406ポイント)   Date: 2010/04/20(火) 00:07   No:50949     
Title: Re:無題    
プログラミングが分からないだけなら大きな問題はない(学習中ですからね)わけですが、国語もわからない、誠意もない、やる気もないとなると重症です。
最近はこういう人が増えていますね。


5ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(151,132ポイント)   Date: 2010/04/20(火) 00:07   No:50950     
Title: Re:無題    
あっ知恵袋は消されちゃいましたね。
こちらなら、出来るまでサポートする方々がいるんですけどね。


4ポイント を手に入れた。

Name: ぽこ  ..初心者(8,681ポイント)   Date: 2010/04/20(火) 00:07   No:50951     
Title: Re:無題    
いや〜後味悪い。
C言語の基礎とよりも、人としての基礎を
学んで欲しいものですねぇ。。


32ポイント を落としてしまった。

Name: たかぎ [URL]  ..ハッカー(176,441ポイント)   Date: 2010/04/20(火) 00:12   No:50952     
Title: Re:無題    
> 人としての基礎

そこまでいうと人格否定になりかねません。
国語がわからない状況を考えると、外国人ではないかと疑っています。
それなら致し方ありませんね。


35ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,180,413ポイント)   Date: 2010/04/20(火) 00:12   No:50953     
Title: Re:無題    
後はmixiのC言語丸投げコミュか2chか教えてGoo関連など質問する場所はあると思いますが、
案外似たような場所には似たような人が集まってるみたいですよね。

ハンドルネームが違うから同じ人かどうか解らないだけで。
結局マルチポストしてるのが解ってしまって余計に答えてくれる人がいなくなるっていう悪循環になってしまうのに・・。


97ポイント を手に入れた。

Name: ぽこ  ..初心者(8,703ポイント)   Date: 2010/04/20(火) 00:34   No:50955     
Title: Re:無題    
> そこまでいうと人格否定になりかねません。
仰る通り、人格否定です。
どんだけ馬鹿で無礼でもイイが、嘘はイカンよ、と思っていますので。
ネット上は別人格とも言いますから、次に登場する時には
せめて正直者でいて欲しい、と願っております。

>案外似たような場所には似たような人が集まってるみたいですよね。
これが分かってないのが、初心者の特徴ですよね。


22ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,180,479ポイント)   Date: 2010/04/20(火) 08:00   No:50963     
Title: Re:無題    
まぁまぁそこまで言ってしまうと戻りにくくなってしまうでしょうから・・。

> STESHさん

1+2の計算結果を表示する辺りからやってみませんか?
後はfor文がわかれば解けますから
(csvファイルならエクセルファイルに出力するのも簡単です)


66ポイント を手に入れた。

Name: ぽこ  ..初心者(8,919ポイント)   Date: 2010/04/20(火) 22:26   No:50982     
Title: Re:無題    
> まぁまぁそこまで言ってしまうと戻りにくくなってしまうでしょうから・・。

失礼しました。
以降、このスレッドでの発言は控えます。



29ポイント を手に入れた。



Name: ザヌオウ  ..ぴよぴよ(186ポイント)   Date: 2010/04/18(日) 18:52   No:50863       
Title: MIDI入力でキャラを動かしたい    
初めまして、ザヌオウと申します。

今、14歳からはじめるC言語ゲームプログラミングを見ながらDXライブラリを使用して、
十字キーでキャラを左右に動かすプログラムを書いたのですが、これをキーボード等から単音のMIDIデータを入力することで、例えばドを入力したら左に歩くといった感じに動かせるようにしたいと考えているのですが、
まずはどうすれば入力されたMIDIデータを認識できるようになるのかを教えていただきたいです。

自分の知識は上記の本と、10日で覚えるC言語という本をを一通り読んだ程度です。
どうかお力をお貸し下さい。

OS:Windows XP
開発環境:Visual c++
ライブラリ:DXライブラリ



186ポイント を手に入れた。


Name: Justy  ..伝説なるハッカー(520,092ポイント)   Date: 2010/04/18(日) 20:44   No:50868     
Title: Re:MIDI入力でキャラを動かしたい    
 MIDIキーボードで MIDI INしたのを検知したいということですか?
 であればこちらが参考になりそうです。

About MIDI INPUT for Visual C++
http://www.alles.or.jp/~minoc/dtm/midiin.htm

MIDI INプログラム
http://m-niwa.hp.infoseek.co.jp/store/midi_in.html

MIDIの入出力 (C Magazine9月号掲載)
http://www.ne.jp/asahi/nagoya/ahomaro/builder/cpb-062.html


142ポイント を手に入れた。

Name: ザヌオウ  ..ぴよぴよ(549ポイント)   Date: 2010/04/20(火) 18:32   No:50972     
Title: Re:MIDI入力でキャラを動かしたい    
返信が送れてすみませんでした。
色々とありがとうございます。

そしてそうです、MIDIキーボードからMIDI INしたのを検知したいのです。
そこで質問なのですが、
> MIDI INプログラム
http://m-niwa.hp.infoseek.co.jp/store/midi_in.html
こちらに書いてあるものをコンパイルしますと、

(54)error C2065: 'HMidiIn' : 定義されていない識別子です。
(66)error C2664: 'midiInGetErrorTextW' : 2 番目の引数を 'char [255]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
(88) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません

といったエラーが出てしまうのですが、
(54)のHMidiInのHをhに変えるとこのエラーは消えるのですが、
他をどうすればいいのかがわかりません。
初歩的なことを見落としているのだと思いますが、どうか教えていただけないでしょうか?
よろしくお願いします。


363ポイント を手に入れた。

Name: hoge  ..入門者(4,206ポイント)   Date: 2010/04/20(火) 20:49   No:50977     
Title: Re:MIDI入力でキャラを動かしたい    
これでビルドは通った。

 http://codepad.org/flK4yipv

修正箇所には 修正 と入れてあるので検索してみて。
あと#pragma も入れてあるけど、これは無くてもいいかも。リンカエラーが出たら入れてみ。

使い方は良く分からないから動作確認はしていません。
ビルド環境は VisualC++2008 ExpressEdition

【 追記 】
質問者記事で書いてあるエラーは、C言語のソースコードをC++でコンパイルしたときに出るものだね。
ソースコードの拡張子を .cpp から .c にしたら状況変わるはず。
 編集済み


18ポイント を手に入れた。

Name: ザヌオウ   Date: 2010/06/04(金) 18:08   No:508631275642523     
Title: Re:MIDI入力でキャラを動かしたい    
>hogeさん
わざわざ修正までしてもらったのに一ヶ月以上ほったらかしにしてしまって大変失礼いたしました。
そしてありがとうございます。

しかし、それでもまだコンパイルしたときに、
LINK : warning LNK4199: /DELAYLOAD:OleAcc.dll は無視されます。OleAcc.dll にインポートがありません。
>LIBCMTD.lib(wincrt0.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数___tmainCRTStartup で参照されました。
といったものが出てきてうまく行きません。

これらのことを解決しようといろいろ考えて試していたのですが、
解決できませんでしたので、
どうかもう一度お力をお貸しいただけないでしょうか?

長い間本当に失礼いたしました。




Name: junjun  ..ぴよぴよ(24ポイント)   Date: 2010/04/14(水) 23:10   No:50663       
Title: 暗号について    
今回は学校の宿題で、以下の通りのものです。
考えてみて、どうすればいいのかはわかるのですが、どう書いたらいいのかイマイチわからなかったのでどなたかよろしくお願いします。

暗号を用いて、平文を暗号文に変換するプログラムを作成せよ。

    * 入力ファイル、"plain.txt"から平文を読み、これを矩形転置で暗号化して暗号文ファイル、"crypt.txt"に出力する。
    * 暗号鍵(矩形の行数(4)と列数(8))は定数で与える。
    * ファイル末尾に到達した場合は、矩形の残りの部分にスペース「' '」が入った状態にしてから暗号文を取り出して終了する。
まだまだ初心者です。
OS:vista
VS 2008

 編集済み


24ポイント を手に入れた。


Name: たいちう  ..比類無きプログラマー(72,567ポイント)   Date: 2010/04/15(木) 15:23   No:50684     
Title: Re:矩形転置暗号について    
> 考えてみて、どうすればいいのかはわかるのですが、
> どう書いたらいいのかイマイチわからなかったので
> どなたかよろしくお願いします。

このような状況は「どうすればいいのかわからない」と言います。
現状を認識しましょう。


> * 矩形転置暗号は、プログラミング概論II第1回の講義資料で説明する。

とあります。「矩形転置暗号」でググると255件しかヒットせず、
一般的な用語というにはマイナーすぎます。説明してください。


具体的な暗号の種類と関係なく言えることですが、
次のプログラムは作れますか?

入力ファイル"plain.txt"から平文を読み、【そのまま】"crypt.txt"に出力する。


161ポイント を手に入れた。

Name: junjun  ..ぴよぴよ(90ポイント)   Date: 2010/04/15(木) 16:50   No:50687     
Title: Re:矩形転置暗号について    
説明不足で申し訳ありませんでした。

改めて、今回の場合についてですが、矩形転置暗号とは、
指定した行列のマスの中に左上から右へと入力ファイルから読み込んだ文字を格納していき、その行が一杯になったら次の行に移り、マスがすべて埋まったら左上から文字を出力しながら下へといき、一杯になったら次の列に移るという作業を入力ファイルの末尾まで繰り返すものです。

という感じなのですが、こんな説明しかできずに申し訳ありません。

よくわかりません。
教えていただけたら有り難いです。 編集済み


66ポイント を手に入れた。

Name: たいちう  ..比類無きプログラマー(72,845ポイント)   Date: 2010/04/15(木) 17:02   No:50688     
Title: Re:矩形転置暗号について    
指定した行列のマスの中に左上から右へと入力ファイルから読み込んだ文字を格納していき、その行が一杯になったら次の行に移り、マスがすべて埋まったら左上から文字を出力しながら下へといき、一杯になったら次の列に移るという作業を入力ファイルの末尾まで繰り返すものです。 


↓こういうことですか?


指左ル納にマ上下らを繰
定上かしなスかへ次入り
しからてっがらとの力返
たら読いたす文い列フす
行右みきらべ字きにァも
列へ込、次てを、移イの
のとんその埋出一るルで
マ入だの行ま力杯とのす
ス力文行にっしにい末。
のフ字が移たななう尾
中ァを一りらがっ作ま
にイ格杯、左らた業で

違うならば説明をお願いします。

いずれにしても、↓にも回答をお願いします。

> 次のプログラムは作れますか?
> 入力ファイル"plain.txt"から平文を読み、【そのまま】"crypt.txt"に出力する。


278ポイント を手に入れた。

Name: junjun  ..ぴよぴよ(336ポイント)   Date: 2010/04/15(木) 23:45   No:50717     
Title: Re:矩形転置暗号について    
指定した行列のマスの中に左上から右へと入力ファイルから読み込んだ文字を格納していき、その行が一杯になったら次の行に移り、マスがすべて埋まったら左上から文字を出力しながら下へといき、一杯になったら次の列に移るという作業を入力ファイルの末尾まで繰り返すものです。 


↓こういうことです(行数と列数は適当です)

指定した行列のマ       指ス右ル文きににべ上しきらいァ繰
スの中に左上から       定の・・・・
右へと入力ファイ       ・・・
ルから読み込んだ       ・・・
文字を格納してい       ・・・
き、その行が一杯       ・・・
になったら次の行       ・・・
に移り、マスがす    →→→→ ・・・・・・・・・・いたとフです。
べて埋まったら左    暗
上から文字を出力    号
しながら下へとい    化
き、一杯になった
ら次の列に移ると
いう作業を入力フ
ァイルの末尾まで
繰り返すものです。 

> 次のプログラムは作れますか?
> 入力ファイル"plain.txt"から平文を読み、【そのまま】"crypt.txt"に出力する。
よくわかりません。
教えていただけたら有り難いです。
 編集済み


246ポイント を手に入れた。

Name: ぽこ  ..初心者(8,229ポイント)   Date: 2010/04/16(金) 00:46   No:50727     
Title: Re:矩形転置暗号について    
どの程度分からないかではなく、何が分からないか
頭の整理しましょう。

> 入力ファイル"plain.txt"から平文を読み、【そのまま】"crypt.txt"に出力する。

これのどの部分が実現できて、どの部分が実現出来ないのでしょうか?


65ポイント を手に入れた。

Name: junjun  ..ぴよぴよ(362ポイント)   Date: 2010/04/16(金) 23:22   No:50767     
Title: Re:矩形転置暗号について    
以下のように作ってみたのですが、コンパイルエラーはない代わりに何も出力されませんでした。
どう修正するべきかご指導よろしくお願いします。
 編集済み


26ポイント を手に入れた。

Name: ぽこ  ..初心者(8,456ポイント)   Date: 2010/04/16(金) 23:53   No:50769     
Title: Re:矩形転置暗号について    
>     // ファイルの終わりまで以下の処理を繰り返す。
>     while(inFile.eof()){
>            (略)
>     }
>

ファイルの終わりの時だけwhile文の中が実行されます。
あと、while文の中のif文の条件がおかしいです。

その辺を直してみては?



2倍のポイントを手に入れた! 70ポイント を手に入れた。

Name: junjun  ..ぴよぴよ(367ポイント)   Date: 2010/04/17(土) 00:17   No:50770     
Title: Re:矩形転置暗号について    
これでどうでしょうか?

 編集済み


5ポイント を手に入れた。

Name: ぽこ  ..初心者(8,498ポイント)   Date: 2010/04/17(土) 00:36   No:50773     
Title: Re:矩形転置暗号について    
多分、論理積の演算子を間違えています。

>         if(xpos != M-1, ypos <= N-1){
>              (略)
>         }

この条件式はypos<=N-1のみで判定されます。
意図通りですか?



>         // もし、矩形が満杯になったら以下の処理を行う。
>         if(xpos = M-1, ypos = N-1){
>              (略)


この条件式はypos = N-1のみで判定される上、
Nが8だから必ず成立します。
意図通りですか?



42ポイント を手に入れた。

Name: junjun  ..ぴよぴよ(390ポイント)   Date: 2010/04/17(土) 00:48   No:50774     
Title: Re:矩形転置暗号について    
確かに論理演算子がちがいました。
これでどうでしょうか?
 編集済み


23ポイント を手に入れた。

Name: ぽこ  ..初心者(8,549ポイント)   Date: 2010/04/17(土) 00:56   No:50775     
Title: Re:矩形転置暗号について    
比較演算子も間違えていませんか?
=は代入演算子です。

>         // もし、矩形が満杯になったら以下の処理を行う。
>         if(xpos = M-1 && ypos = N-1){


あと、変更したら必ず自分で動作確認してください。
kos-mosさんの望んだ結果が出たなら問題ないと思います。


51ポイント を手に入れた。

Name: junjun  ..ぴよぴよ(403ポイント)   Date: 2010/04/17(土) 01:06   No:50776     
Title: Re:矩形転置暗号について    
エラーがでなかったので、実行したところ動作を停止しましたと表示されました。

どうしたらいいでしょうか?  編集済み


13ポイント を手に入れた。

Name: ぽこ  ..初心者(8,626ポイント)   Date: 2010/04/17(土) 15:13   No:50800     
Title: Re:矩形転置暗号について    
ブレイクポイントを何箇所か入れて、
その時の各変数が(xpos、ypos、rectangleなど)が
予想通りの結果になっているか確認してください。

変更後のソースがどうなっているか知りませんが、
xposかyposのリセットを忘れている場所がありませんか?


77ポイント を手に入れた。

Name: junjun  ..ぴよぴよ(409ポイント)   Date: 2010/04/17(土) 15:59   No:50804     
Title: Re:矩形転置暗号について    
変更後のソースはこんな感じです。
 編集済み


6ポイント を手に入れた。

Name: junjun  ..ぴよぴよ(426ポイント)   Date: 2010/04/18(日) 01:34   No:50821     
Title: Re:矩形転置暗号について    
確認の仕方としては、ステップオーバーで値を見ていくってことでいいんでしょうか?
 編集済み


17ポイント を手に入れた。

Name: junjun  ..ぴよぴよ(434ポイント)   Date: 2010/04/19(月) 01:46   No:50910     
Title: Re:矩形転置暗号について    
どなたかご指導願えないでしょうか? 編集済み

8ポイント を手に入れた。

Name: たいちう  ..比類無きプログラマー(74,119ポイント)   Date: 2010/04/19(月) 04:41   No:50913     
Title: Re:矩形転置暗号について    
> 確認の仕方としては、ステップオーバーで値を見ていくってことでいいんでしょうか?

それも1つの確認の仕方ですが、この質問は本当に必要でしたか?
いいか悪いか誰かに聞かなければ変数を確認できませんか?

「ステップオーバーで値を見ていく」という事を思いついたのなら、
誰かに聞く前に、自分で試せばいいのです。
試した後なら別の聞き方になるはずです。


102ポイント を手に入れた。

Name: ookami  ..入門者(3,619ポイント)   Date: 2010/04/19(月) 14:07   No:50918     
Title: Re:矩形転置暗号について    
質問ばっかしですいませんが...

(1) inFile.get() から予想通りの値が得られているかどうか確認しましたか?
(2) 全角文字は考慮しなくてよいですか?
(3) plain.txtもアップしてもらえますか?
(4) それから...老婆心ながら...宿題の締め切りはいつですか?


98ポイント を手に入れた。

Name: junjun  ..ぴよぴよ(383ポイント)   Date: 2010/04/19(月) 16:07   No:50919     
Title: Re:矩形転置暗号について    
(1)それはできているようです

(2)書体は plain.txt のままにしたいのですが、全角と半角で命令が異なるのでしょうか?
 編集済み


51ポイント を落としてしまった。

Name: ookami  ..入門者(3,790ポイント)   Date: 2010/04/20(火) 08:47   No:50964     
Title: Re:矩形転置暗号について    
なるほどですね。引き続き質問ばかりですが...

> (1)それはできているようです
どのように確認しましたか?printfで1文字ずつ出力してみた感じでしょうか。

> (2)書体は plain.txt のままにしたいのですが、全角と半角で命令が異なるのでしょうか? 
命令ではなくロジックが変わりますね。2byte 文字を考慮せず作ると出力結果が文字化けするので確認が難しくなるだろうなということなんですが、とりあえず例に使われている plain.txt が半角だけなので保留にしときますね。

> (3)↓これです。 
> NASA...
この時、期待する出力結果はどのようになりますか?改行はどうしますか?50717の例では改行がなかったので。8×4に収まりきらない分はどうするのでしょうか?50804を見ると、何度も同じファイルに書き出す、ということでいいのでしょうか。


171ポイント を手に入れた。

Name: asd  ..上級者(20,020ポイント)   Date: 2010/04/20(火) 20:03   No:50973     
Title: Re:矩形転置暗号について    
えぇと、横槍を入れるようで申し訳ないのですが、
新しいプログラムを投稿するたびに過去の投稿からプログラムを削除するのは避けたほうがよいかと。

私のように後から見た人が流れを追えなくなりますので。

一番最初の質問文も編集されているようですが、質問文を大きく変えられてしまうと
流れを追うのが困難になってしまいます。
たいちうさんの返信から推察すると以下の1文は削除されてますよね。

> * 矩形転置暗号は、プログラミング概論II第1回の講義資料で説明する。 

横槍失礼しました。
本題についても助言したかったのですが、質問者さんのプログラムがことごとく編集によって
消えているので^^;


127ポイント を落としてしまった。



Name: Ma  ..比類無きプログラマー(85,239ポイント)   Date: 2010/04/18(日) 04:55   No:50823       
Title: ~ をキーボードから打てない。    
環境は、

英語OS, Windows 7 64 bit、(英語キーボードです。)

です。

購入直後に日本語入力に対応させるため、Microsoftの日本語のIMEを有効化させて、Alt+~キーで、ひらがな入力と半角英数入力をいききできるように、どこかで設定しました。
(昔だったのでどう設定したか覚えていない。)

プログラミングやっているうちに気づいたら、いまさらながらビット否定演算子である~キーが打てない事に気づきました。

現在は、~キーはIMEの切り替えキーに割り当てられているようです。
(JP と EN の切り替えになります。ひらがなとローマ字との切り替えのような入力モード切替ではありません。)

そこで、JPのIMEのみ残してEN のほうを消し(Remove)てみましたが、~の入力はいまだできませんでした。
~を~キーで入力できるようになる方法、わかる方いらっしゃいましたらよろしくお願いします。 編集済み


255ポイント を手に入れた。


Name: たいちう  ..比類無きプログラマー(73,460ポイント)   Date: 2010/04/18(日) 11:38   No:50838     
Title: Re:~ をキーボードから打てない。    
> ~を~キーで入力できるようになる方法、わかる方いらっしゃいましたらよろしくお願いします。

直接の回答ではないですが、キーボードに10キーがあるならば、
altを押しながら126と入力すれば、altを離したときに~が入力されているはずです。
(126 = 0x7E : ~のASCIIコード)


2倍のポイントを手に入れた! 48ポイント を手に入れた。

Name: Ma  ..比類無きプログラマー(86,415ポイント)   Date: 2010/04/18(日) 12:07   No:50840     
Title: Re:~ をキーボードから打てない。    
たいちうさん、返信ありがとうございます。
ネットで記号を検索してくるよりははやくできますね、ありがとうございます。

ただ、キーボードの数字パッドの部分を使わないといけないし、数値を記憶しないといけないし、キー数が多くて少し面倒なので、
1キーでできる方法を引き続き調べようとおもいます。
また、何かありましたら引き続きアドバイスおねがいします。

Microsoftに問い合わせるべきかな・・・。


118ポイント を手に入れた。

Name: Justy  ..伝説なるハッカー(519,925ポイント)   Date: 2010/04/18(日) 12:52   No:50842     
Title: Re:~ をキーボードから打てない。    
 Shift+[~]キーか、Shift+[=+]キーだとどうなりますか?

18ポイント を手に入れた。

Name: Ma  ..比類無きプログラマー(86,449ポイント)   Date: 2010/04/18(日) 22:27   No:50880     
Title: Re:~ をキーボードから打てない。    
おくれました。

>Shift+[~]キー
何もおこりません。


>Shift+[=+]キー
+ になります。


34ポイント を手に入れた。

Name: Justy  ..伝説なるハッカー(520,452ポイント)   Date: 2010/04/18(日) 23:56   No:50900     
Title: Re:~ をキーボードから打てない。    
 だめですか。うーん、となると OSのキーボードの設定を見直す、片っ端からキーを押して調べるくらしか思いかないです。
 どうしてもダメなら別のキーボードにするとか XPに入っているスクリーンキーボード(osk.exe)を起動して
そこから入力するのが早いかも。


95ポイント を手に入れた。

Name: Ma  ..比類無きプログラマー(88,796ポイント)   Date: 2010/04/19(月) 01:05   No:50904     
Title: Re:~ をキーボードから打てない。    
>片っ端から
見つけられないとかではなく、たぶん設定をいじらないとどうやっても打てません。

>別のキーボード
キーボードそのものが原因ではないとおもうんですよね。
あと、日本仕様のキーボードは簡単には手にはいらない環境です(汗


>XPに入っているスクリーンキーボード
試してみましたが、無反応でした。


キーボード側というよりは、OSの設定だと思うのですが、
同じような人はぐぐっても見つからないし、キーの割り当てを変えることすら珍しいと思うので
難しい問題ですよね。。

Microsoft さんの質問掲示板にも聞いてみようかと思います。


84ポイント を手に入れた。

Name: Ma  ..比類無きプログラマー(88,926ポイント)   Date: 2010/04/19(月) 01:14   No:50905     
Title: Re:~ をキーボードから打てない。    
http://social.answers.microsoft.com/Forums/ja-JP/w7hardwareja/thread/98e9b633-f494-4300-a0fc-35cb832f7793

こちらでも、質問しました。 編集済み


2倍のポイントを手に入れた! 130ポイント を手に入れた。

Name: dic  ..熟練のプログラマー(61,752ポイント)   Date: 2010/04/19(月) 16:56   No:50920     
Title: Re:~ をキーボードから打てない。    
キーボードのドライバを日本製にしてみては?
OSが対応してるかわかりませんし、ハードも対応してるかもわかりませんが

Microsoftに問い合わせる前に、入手経路の方が気になりますが・・・


57ポイント を手に入れた。

Name: Njin  ..ぴよぴよ(10ポイント)   Date: 2010/04/19(月) 17:10   No:50922     
Title: Re:~ をキーボードから打てない。    
shift+「半角/全角」(1の左にあるキー)ではどうでしょうか?

追記
質問文をちゃんと読めてませんでしたね。失礼しました。

日本語キーボードだとshift+「^」ででますが
 編集済み


10ポイント を手に入れた。

Name: Ma  ..比類無きプログラマー(89,687ポイント)   Date: 2010/04/20(火) 04:11   No:50961     
Title: Re:~ をキーボードから打てない。    
>Microsoftに問い合わせる前に、入手経路の方が気になりますが・・・ 
PCの入手経路でしょうか・・・?
米在住なので、PC買い換えると同時にこちらで買いました。


日本製のドライバ。。。日本製のキーボードがないので、逆に他のキーとかがめちゃくちゃになりそうなきがします。

>日本語キーボードだとshift+「^」ででますが
^ キーは、数字の6のところにあって、 Shift+ 6 で ^ になりますね。
また、左上のキーは、~になりますが、Shift + ~キーは無反応ですね。


それにしても、何回も使っているうちに、Alt+1,2,6を覚えてしまいましたw
もう少し案を募集してみて、駄目そうなら諦めることにします。


277ポイント を手に入れた。

Name: Ma  ..比類無きプログラマー(90,111ポイント)   Date: 2010/04/20(火) 04:25   No:50962 解決!     
Title: Re:~ をキーボードから打てない。    
例のMicrosoft の掲示板にて、解答をえることができました。

抜粋します。

1.言語バーを右クリックします。 
2.コンテキストメニューの「設定」 "Settings" をクリック。 
3.「テキスト サービスと入力言語」"Text Service and Input Language" が開きます。 
4.「詳細なキー設定」"Advanced Key Settings" タブに切り替えます。
ここの「入力言語のホットキー」"Hot keys for input Language" の「キー シーケンス」"Key sequence" がどうなっているか確認してみてください。
` である「アクサン グラーブ」" Grave Accent" が登録されていませんか? 
~~~~~~~~~~~~~~~~~転載終わり~~~~~~~~~~~~~~
↑せっかくだからつかった。


この、Grave Accent がよくなかったみたいでした。
ここまでご協力してくださったかたがた、どうもありがとうございました。

あと、波線〜もタイプできるようになって一石二鳥です。
*追記
解決おしわすれで編集。 編集済み


2倍のポイントを手に入れた! 424ポイント を手に入れた。



Name: kuri  ..かけだし(1,405ポイント)   Date: 2010/04/20(火) 00:41   No:50956       
Title: 生成された実行ファイルについて    
[環境]
WnidowsXP
Visual C++
DXライブラリ

[レベル]
超初心者

[質問]
ビルドを行い作成された実行ファイルを、出力されたフォルダ内から実行した場合、
文字は表示されるのですが、画像や音楽は表示、再生されませんがこの原因は何なのでしょうか?
Visual C++からデバッグを行った場合には正常に表示されます。
ソリューションの構成がRelease、Debugで関係しているのかと思いビルドしてみたのですが・・・残念な事に
見当違いのようでした。

初歩的な質問かと思いますが教えていただけますか?


188ポイント を手に入れた。


Name: ぽこ  ..初心者(8,890ポイント)   Date: 2010/04/20(火) 00:45   No:50958     
Title: Re:生成された実行ファイルについて    
以下の手順で実行した場合は、どうですか?

1.デスクトップにフォルダを作成する。
2.作成した実行ファイルをそのフォルダにコピーする。
3.画像、音楽ファイルをそのフォルダにコピーする。
4.実行ファイルを実行する。


81ポイント を手に入れた。

Name: kuri  ..かけだし(1,454ポイント)   Date: 2010/04/20(火) 00:54   No:50959 解決!     
Title: Re:生成された実行ファイルについて    
ぽこさん

ご返信ありがとうございます。
で、できました〜。
ありがとうございました。


49ポイント を手に入れた。



Name: asdf  ..ぴよぴよ(2ポイント)   Date: 2010/04/18(日) 18:33   No:50862       
Title: int型の範囲    
int型の範囲は、−32768〜32767ですが、なぜ正の値と負の値が違うのでしょうか。
調べてみたら、2の補数が関係あることがわかったのですが、よく分かりませんでした。
どなたか分かりやすく説明してください。


2ポイント を手に入れた。


Name: ぽこ  ..初心者(8,656ポイント)   Date: 2010/04/18(日) 19:56   No:50865     
Title: Re:int型の範囲    
上限が同じ場合、0を入れることが出来ないからです。


30ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(176,189ポイント)   Date: 2010/04/18(日) 20:03   No:50866     
Title: Re:int型の範囲    
処理系不明なので、一般論であれば下記URLを参照してください。
http://www.kijineko.co.jp/tech/creintro/integer-representation.html


68ポイント を手に入れた。

Name: Ma  ..比類無きプログラマー(86,864ポイント)   Date: 2010/04/18(日) 22:40   No:50882     
Title: Re:int型の範囲    
簡単に説明すれば、こんなかんじかな、(間違いがあるかもしれないので注意してね)

1111 1111 1111 1111
=
1+2+4+8+16+32+64+128+256+512+1024+2048+4096+8192+16384+(+)
(等比数列の和)
=a*((r^n-1)/(r-1)
=(1)*(2^(15)-1)/(2-1)
32767
最初のビットでプラスかマイナスか決まるらしいけど、どっちがどっちか知りません(汗)
というのは、前提として、

可能性を計算すれば、
2バイトなら、16ビット
2^16=65536
の可能性があります。
unsigned int なら、
1 から 65536 だけあらわせることになりますが、0をいれたいので
実際には 0 から 65535 になります。(たぶんあってる)


-もあらわしたいので
65536を2で割ると
32768
つまり、
-1 から -32768

1 から 32768
をあらわすことができますが、0もあらわしたいので
-1 から -32768

0 から 32767
にしましょう、ってことでは?
結果

-32768 から 32767 になります。


415ポイント を手に入れた。

Name: conio  ..比類無きプログラマー(88,199ポイント)   Date: 2010/04/18(日) 23:04   No:50891     
Title: Re:int型の範囲    
例えば、3ビットとすると、
値の範囲としては 000 〜 111 までです。

マイナスが無い場合は最大値は111(10進数の7)になります。
しかし、符号付の場合は一番左側のビットが1の時はマイナスになります。

よって、最大値は 011(10進数の3)となります。
逆に、負数の最大値(最小値)は100(10進数の-4)となります。

2の補数での負数の出し方は、
ビットを全部反転し、それに1を足せばOKです。
-------------------------
100 → 011 → 100
-------------------------


で、値を全部書いてみれば分かるように、一番左側が1の場合はマイナスになってしまう以上、
最大値はビット数 − 1となります。 

逆に、マイナスの場合は一番左側のビットまで使えるので、
正の数より絶対値が1多い値まで表現できることになります。
-----------------
011 (3)
010 (2)
001 (1)

000 (0)

111 (-1)
110 (-2)
101 (-3)
100 (-4)
----------------- 編集済み


332ポイント を手に入れた。

Name: hoge  ..入門者(4,004ポイント)   Date: 2010/04/19(月) 18:41   No:50930     
Title: Re:int型の範囲    
16ビットで表せる数値のパターンは2の16乗個(偶数個)。
偶数だからと言って、正の数と負の数で半分ずつ割り当てたら0が表現できない。
(0は正の数でも負の数でもない)。
逆に0を表現すると、正の数か負の数のどちらかの表現範囲が1つ減ることになる。
通常、数値0には、全てのビットが0である、0000000000000000 を割り当てる。

コンピュータで一般的に使われている「2の補数表現」という負数表現では、
数値の最上位ビットは符号(プラスマイナス)を表す。
最上位ビットが 0 なら正の数、1なら負の数となる。

既に書いたようにゼロのビット列は全てのビットが0。最上位ビットも0。
つまり正の数の取り分のうちの一つがゼロを表現するために奪われた形になる。
だから、正の数の表現範囲は、負の数の表現範囲より1つ少ない。

ちなみに2の補数表現ではコンピュータ特有のオーバーフローする特性を使って負数を表現できる。
16ビットでは、「1 + 0xffff」 がオーバーフローで 0 になる。
 1 に足して、0 になるわけだから、0xffffは -1 と同じとみなせる。
同様に 0xfffe は -2、0xfffdは-3となる。

これは16ビットだけじゃなく、何ビットの場合でも当てはまる話です。 編集済み


255ポイント を手に入れた。

Name: asdf  ..ぴよぴよ(138ポイント)   Date: 2010/04/19(月) 22:41   No:50935 解決!     
Title: Re:int型の範囲    
回答ありがとうございました。お礼が遅くなってしまい申し訳ありません。

おかげでよく分かりました。

また質問させてもらうことがあるかもしれませんが、そのときもよろしくお願いします。
ありがとうございました。


2倍のポイントを手に入れた! 136ポイント を手に入れた。



Name: koose  ..ぴよぴよ(477ポイント)   Date: 2010/04/19(月) 18:01   No:50925       
Title: お金の計算のプログラム    
環境はOS:unix コンパイラ:gccです。
最近、プログラムを始めたところです。

大学の課題でお金の計算をするプログラムを作っています。
完成型としては、
19867円
10000円1枚
5000円1枚
2000円2枚
1000円0枚
500円1枚
100円3枚
50円1枚
10円1枚
5円1枚
1円2枚

という形にしたいのですが、下のプログラムだと何故か計算がおかしくなります。

#include<stdio.h>
main()
{
    int x;
    int a,b,c,d,e,f,g,h,i,j;

    a=x/10000;
    b=(x-a*10000)/5000;
    c=(x-a*10000-b*5000)/2000;
    d=(x-a*10000-b*5000-c*2000)/1000;
    e=(x-a*10000-b*5000-c*2000-d*1000)/500;
    f=(x-a*10000-b*5000-c*2000-d*1000-e*500)/100;
    g=(x-a*10000-b*5000-c*2000-d*1000-e*500-f*100)/50;
    h=(x-a*10000-b*5000-c*2000-d*1000-e*500-f*100-g*50)/10;
    i=(x-a*10000-b*5000-c*2000-d*1000-e*500-f*100-g*50-h*10)/5;
    j=(x-a*10000-b*5000-c*2000-d*1000-e*500-f*100-g*50-h*10-i*5)/1;

           scanf("%d円",&x);

    printf("10000円%d枚\n",a);
    printf("5000円%d枚\n",b);
    printf("2000円%d枚\n",c);
    printf("1000円%d枚\n",d);
    printf("500円%d枚\n",e);
    printf("100円%d枚\n",f);
    printf("50円%d枚\n",g);
    printf("10円%d枚\n",h);
    printf("5円%d枚\n",i);
    printf("1円%d枚\n",j);

}

どうすればいいのでしょうか?教えてください。



477ポイント を手に入れた。


Name: hoge  ..入門者(3,749ポイント)   Date: 2010/04/19(月) 18:07   No:50926     
Title: Re:お金の計算のプログラム    
scanf を6行目に移動する。

15ポイント を手に入れた。

Name: koose  ..ぴよぴよ(439ポイント)   Date: 2010/04/19(月) 18:21   No:50927 解決!     
Title: Re:お金の計算のプログラム    
hogeさん、本当にありがとうございます。
ちゃんと計算出来ました。
でも、何故scanfが下にあるとだめなのでしょうか?


38ポイント を落としてしまった。

Name: softya [URL]  ..ハッカー(151,059ポイント)   Date: 2010/04/19(月) 18:38   No:50929     
Title: Re:お金の計算のプログラム    
代わりに答えますね。
C言語の命令は常に上から逐次実行(順番に実行)です。
なので、kooseさんのプログラムでは、xの値が入力される前にxを使って計算していた事になります。
この場合xは不定ですので、計算結果も不定です。


54ポイント を手に入れた。

Name: koose  ..ぴよぴよ(462ポイント)   Date: 2010/04/19(月) 21:55   No:50933     
Title: Re:お金の計算のプログラム    
なるほど。softyaさん、わかりやすい説明ありがとうございます。
勉強になりました。


23ポイント を手に入れた。

Name: 初級者  ..初心者(8,035ポイント)   Date: 2010/04/19(月) 22:10   No:50934     
Title: Re:お金の計算のプログラム    
変数には意味のある名前を付けましょう。


#include <stdio.h>

int main(void)
{
    int kingaku;
    int yen10000, yen5000, yen2000, yen1000, yen500;
    int yen100, yen50, yen10, yen5, yen1;

    printf("何円ですか? "), scanf("%d", &kingaku);

    yen5000 = kingaku % 10000, yen10000 = kingaku / 10000;
    yen2000 = yen5000 % 5000, yen5000 /= 5000;
    yen1000 = yen2000 % 2000, yen2000 /= 2000;
    yen500 = yen1000 % 1000, yen1000 /= 1000;
    yen100 = yen500 % 500, yen500 /= 500;
    yen50 = yen100 % 100, yen100 /= 100;
    yen10 = yen50 % 50, yen50 /= 50;
    yen5 = yen10 % 10, yen10 /= 10;
    yen1 = yen5 % 5, yen5 /= 5;

    printf("%d円\n", kingaku);
    printf("10000円%d枚\n", yen10000);
    printf("5000円%d枚\n", yen5000);
    printf("2000円%d枚\n", yen2000);
    printf("1000円%d枚\n", yen1000);
    printf("500円%d枚\n", yen500);
    printf("100円%d枚\n", yen100);
    printf("50円%d枚\n", yen50);
    printf("10円%d枚\n", yen10);
    printf("5円%d枚\n", yen5);
    printf("1円%d枚\n", yen1);
    return 0;
}



362ポイント を手に入れた。



Name: dic  ..熟練のプログラマー(61,931ポイント)   Date: 2010/04/19(月) 17:51   No:50924       
Title: クラックされた?    
まったくわたくしごとですいませんが
今日朝8時に仕事にいって16時に家に帰ってくると
長男がパスワードのかかっている私のアカウントでゲームしてました
Windows XP Home Edition でアカウントを3つ作ってます
ひとつは、仕事用 ユーザー名:Owner 用パスワード 
ふたつめは、二男用 ユーザー名:dic
みっつめは、ゲーム用 ユーザー名:ゲーム用
セキュリティログを見ると「特権の使用」とあるのですが、
これはパスワードの必要のないdicのアカウントから
なんらかしらの手続きを行ってひとつめのパスワードを抜き取ったか
「ポリシーの変更」とあるので、なんらかしらクラックされたと
考えていいのでしょうか?


179ポイント を手に入れた。


Name: softya [URL]  ..ハッカー(151,116ポイント)   Date: 2010/04/19(月) 18:44   No:50931     
Title: Re:クラックされた?    
administratorのパスワードが未設定だったりしませんか?
http://itpro.nikkeibp.co.jp/free/NT/NEWS/20011119/3/

まぁ、クラックされたといえばそう言えるかも知れませんが。
本人に聞いた方が早いと思いますよ。 編集済み


57ポイント を手に入れた。

Name: dic  ..熟練のプログラマー(62,008ポイント)   Date: 2010/04/19(月) 21:24   No:50932 解決!     
Title: Re:クラックされた?    
本人に確認し、無事解決できました
とある無料のソフトウェアを経由してのハックだったようでした
名前はヤバイので非公開にしておきます

失礼しました


77ポイント を手に入れた。



Name: no  ..中級者(10,340ポイント)   Date: 2010/04/15(木) 23:01   No:50711       
Title: 3D機能を停止させたことによる速度低下    
機能が低いというか,DXライブラリと適応力が低いグラボを使っている場合(ちょっと表現がずれている気がしますが),フルスクリーンモードで描写しようとするとノイズのようなものが発生します.

それについての解決策は,紅葉さんをはじめとする数名の方のアドバイスにより,

int SetUse3DFlag( int Flag ) ;

を使用することで解決しました。しかしながら,この関数のリファレンス

http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_other.html#R15N1

で記されている通り,速度低下が起こりました。これがなかなか顕著な効果を示し、画像の密度が高いときなど,FPSが30前後になります。
こちらのホームページで述べられているFPS制御関数について,とても早くwhile文が回っているものを遅くしているという認識があります。
正直な話,遅いものを速くする(FPS30を60にする)というのはちょっと無理がある気がするのですが実際問題どうなんでしょう。
グラボを変えるなど,プログラミング以外でならなんとかなりそうだとは思いますが,プログラミングのみで修正するというのは可能でしょうか。

多分無理だろうとは思いますが,何分プログラミングを真面目に取り組んで日が浅いもので,何か手段があれば回答お願いします。


430ポイント を落としてしまった。


Name: Justy  ..伝説なるハッカー(519,631ポイント)   Date: 2010/04/15(木) 23:45   No:50716     
Title: Re:3D機能を停止させたことによる速度低下    
 CPU/GPU/メモリ、OS等環境はなんでしょうか?
 あと、(SetUse3DFlagを使わないとき)DXライブラリ ver2.25bを使っても
同様にノイズが発生しますか?
 

>実際問題どうなんでしょう。 
 例えば解像度を落とし、扱うテクスチャも合わせて解像度を落とすとかすれば
多少は fpsを改善できるかもしれません。

 或いはアプリの作りを 30fpsで動くようにつくるか、いっそのこと根本的にfpsに
依存しない構造にするとか。


120ポイント を手に入れた。

Name: no  ..中級者(10,598ポイント)   Date: 2010/04/17(土) 12:53   No:50792     
Title: Re:3D機能を停止させたことによる速度低下    
>CPU/GPU/メモリ、OS等環境はなんでしょうか? 
CPU:ペンティウムデュアルコア
GPU:添付画像を参照してください。
メモリ:1GB
OS:ウィンドウズXP

>あと、(SetUse3DFlagを使わないとき)DXライブラリ ver2.25bを使っても 
同様にノイズが発生しますか?

ちょっと語弊があったかもしれませんが、SetUse3DFlag(FALSE);と記述しない場合にノイズが発生します。で、SetUse3DFlag(FALSE);を使用することでノイズが完全になくなります。

SetUse3DFlag(FALSE);を使う→ノイズがなくなり、弾幕の密度が濃いとFTPが30くらいになってしまう。
SetUse3DFlag(FALSE);を使わない→フルスクリーン時のみノイズが発生し、FTPが常時60で動作する。

あちらがたてばこちらがたたず、という状態です。



やはり、何かを捨てずに事を成すためには、開発環境を改善するしかないのでしょうか。というか、ないのでしょうね。
ただどこが悪いのかわからない、即ち、どれを変えれば改善できるかがわからないので、この情報で見抜ける方がいれば、よろしくお願いします。

まー見た感じGPUだとは思いますが……どうにも確信がもてないです。


258ポイント を手に入れた。

Name: 紅葉  ..中級者(14,352ポイント)   Date: 2010/04/17(土) 13:03   No:50794     
Title: Re:3D機能を停止させたことによる速度低下    
CPU等の性能面では問題ないかと思います。
恐らく(90%)グラボが原因です。
そのPCで表示出来なくでも他のPCだと表示できる場合があります。

管理人様が作ったエアロビートを実行してみて下さい。
恐らくそのPCではノイズが出ます。

グラボを更新してみても駄目な場合は別のPCにした方が早い気がします。


81ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(150,618ポイント)   Date: 2010/04/17(土) 13:28   No:50795     
Title: Re:3D機能を停止させたことによる速度低下    
少なくともGPUのドライバは最新にしてみた方が良いと思いますが、最新でしょうか?



39ポイント を手に入れた。

Name: no  ..中級者(10,638ポイント)   Date: 2010/04/19(月) 17:49   No:50923     
Title: Re:3D機能を停止させたことによる速度低下    
softyaさん>
申し訳ありません、GPUのドライバを最新にするとはどのような手順を踏めばよいのでしょうか。


40ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(151,005ポイント)   Date: 2010/04/19(月) 18:34   No:50928     
Title: Re:3D機能を停止させたことによる速度低下    
インテルのi945Gの最新ドライバはこれです。
http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=16835&ProdId=2115〈=jpn
ただし、メーカー製PCだとカスタマイズされている可能性があると書かれていますよね。なので、パソコンメーカーのダンロードサイトやマザーボードメーカーのダウンロードサイトから手に入れた方が良いでしょう。
どの様なパソコンか分からないので、そこは自己責任でお願いします。


118ポイント を手に入れた。



Name: far-off  ..ぴよぴよ(234ポイント)   Date: 2010/04/18(日) 18:22   No:50861       
Title: 配列の上限について    
今リアルタイムSLGをVC++で作っています。
どうせならド派手なものを、と思い50000隻の戦艦を使って戦うゲームにしようとして
typedef struct ship_t{
    int flag;
    int spd;
    int atc;
    int search;
    int bullet;
    int max_bullet;
    ship_t *next;
    ship_t *prev;
}ship_t

ship[50000]

という配列を作った時、
デバッグを使ってその変数を見てみると、
270f、10進法で9999までしか見ることができませんでした。
また、リスト構造を作るために、ship[10033].prev の値を書き換えようとすると、
他の変数の値が書き換わってしまいました。
こんな配列を作ること自体が間違っているのは承知済みですが、
配列に上限、または使えるメモリの量などは決まっているのでしょうか。
稚拙な文章ですみません。 編集済み


234ポイント を手に入れた。


Name: far-off  ..ぴよぴよ(274ポイント)   Date: 2010/04/19(月) 17:03   No:50921 解決!     
Title: Re:配列の上限について    
何かよく分からないまま気が付いたら普通に動かせるようになってました。
またおかしくなったらその時に聞きます。


40ポイント を手に入れた。



Name: しんご  ..ぴよぴよ(91ポイント)   Date: 2010/04/19(月) 13:17   No:50916       
Title: 画像解析 OCR    
画像の中の文字を抽出する画像解析OCRを作成しようと考えてるのですが、なかなか参考になるようなサイトと巡り会えません。

どこか参考になるサイト、もしくは作り方を教えていただけたらお願いします。


91ポイント を手に入れた。


Name: たいちう  ..比類無きプログラマー(74,326ポイント)   Date: 2010/04/19(月) 13:43   No:50917     
Title: Re:画像解析 OCR    
ググってみると大昔の論文が見つかりました。
今となってはより洗練された方法が主流だと思いますが、
原始的なほうがプログラムは作りやすいのではないかと。

http://www.hokkaido-iri.go.jp/book/reports/291/0302TB0120.pdf


106ポイント を手に入れた。



Name: ジジ猫  ..入門者(2,948ポイント)   Date: 2010/04/13(火) 04:06   No:50517       
Title: おひさしぶりです。まだまだ募集中です。    
なんだかまだこのスレ続いてるような・・・。BYジジ猫。

僕はゲーム製作をしようと思っていました。
最近では東方シューティングブームで同系統のゲームが多数あります。
なるべくシューティングは避け、面白いゲームジャンルは、と考えた末、SLG(シミュレーションゲーム)に行き着いたのです。
ストーリーは僕が考えていた能力戦闘ものの「光に照らされて」という話を元に、メンバーみんなから案をもらいつつ、修正、推敲して行こうとおもっています。
今現在、この計画のインターネットサイトは存在しません。
つまり、見積もりが決まれば製作を公表すると共に、サークルの結成をしようと思っています。


☆ゲーム概要
タイトル:未定
ジャンル:シミュレーションゲーム
プレイ人数:一人


☆現在決まっているメンバーです。
企画・監督・シナリオ原案・メイン作画:ジジ猫
音楽:situmon


☆プログラマー、サブ作画等を最も求人しております。☆

作業は各自宅での作業です。
一応、僕のPCにも開発環境があるので、プログラマーさん含むメンバーは製作物を僕に送信してください。その後、各メンバーPCにも送信します。


☆プログラマーへの要求スキル☆
C言語、C++などのプログラミングができる方。
ゲームライブラリは基本自由です。
変更事項。ゲームプログラム仕様書は参加者のみに公開ということにします。グラフィック表現は2Dまでできるソフトで結構です。

注意(重要)プログラマーの募集は終了しました。


☆サブ作画への要求スキル☆
基本建物などを作ってもらいます。他にも雑魚キャラやウインドウデザインなども依頼するかもしれません。
追加事項。
4/18現在こちらを最優先で募集しています。


☆音楽に希望の方へ
音楽の人数はすでに足りています。募集は行っていません。
ご了承ください。


☆製作期間は延長して二年間にします。

参加は無料、無償で製作を手伝ってもらいますが、ゲームを有料での販売、配信が決まれば、収入を配当します。

変更事項。ゲームは完全フリーソフトにします。収入はなしです。

また製作に携わった方にはゲームに著作権を分け与えます。

変更事項。ゲーム作品は結合著作権物にします。

良心的な参加者を求めています。


☆質問があればジジ猫のメールアドレスに質問事項を書き、送信してください。

追加事項。一応毎日チェックしています。大体七時あたりに見てます。

なお、いたずらメールなどの迷惑メールが多数送信された場合、このメールアドレスは封鎖します。僕はもちろん、多数の友人や参加希望者に迷惑がかかります。絶対にしないでください。
<g.g.artproject@gmail.@>
最後の@をcomにしてください。

☆「光に照らされて」

僕が考えたオリジナルストーリーです。二年ぐらい前から考えて途中、友人のアドバイスをもらいつつ、原型が完成しました。

天使や悪魔と契約し、彼らの心臓「因子」を身体に取り入れ、超人的な能力を使えるという覚醒者が、他の覚醒者と戦う。また、襲い掛かってくる天使の覚醒者、黒い天使、削除団体(デリーター)・・・。数々の謎が入り乱れる。

こんな話です。
キャラクター原画は全て完成しており、あとはデジタル処理となりました。

参加者募集中です。
 編集済み


823ポイント を手に入れた。


Name: Ma  ..比類無きプログラマー(83,763ポイント)   Date: 2010/04/13(火) 07:32   No:50520     
Title: Re:おひさしぶりです。まだまだ募集中です。    
プログラマー募集について。
私は参加できませんが、アドバイスを一つ。

いいプログラマーを捕まえたいなら説明不十分だとおもいます。
現状では、とてもやさしい方か、少し経験不足の人がくるかもしれません。
前者ならラッキーですw


私は初グループ製作の時、仕様書を書いてなかったんですが
プログラムを手伝っていただく方が来た時、これではなにが正常なのか判断できないじゃないか、
といわれて、つくっておけばよかったと思いました。

ましてや、メインとしてのプログラマーをお願いするなら、細かい指定がある仕様書がほしいです。
ですから、仕様書がすでにある場合は、
「*プログラマーを検討してくださる方には仕様書をメールにて送信いたします。」
の一言があるといいですよ。


もうひとつ、気になった点。
>3D表示まで可能なものが良いと
3Dを予定するなら、モデリング等、3Dデータを取り扱う人が必要になりますよ。

あと、まだやってないならフリームでも呼びかけるといいですよ^^
あそこは、そこそこいい腕の人がたまにいるので。 編集済み


413ポイント を手に入れた。

Name: 御津凪 [URL]  ..ハッカー(141,316ポイント)   Date: 2010/04/13(火) 12:55   No:50528     
Title: Re:おひさしぶりです。まだまだ募集中です。    
> 現状では、とてもやさしい方か、少し経験不足の人がくるかもしれません。 

私だと、前者に当たるのでしょうね。

本職は ゲームPG ですが、恐らく PG としては参加しません。(現在嫌と言うほど忙しいので)
代わりにプロジェクトのアシスタントとして参加を希望してみたいですね。
(段取りとか、ソース管理とか、デバッグとか色々)

ただし、
結成するからには最後までやり遂げる責任を持っている事が条件です。
あらゆる理由(忙しくなったからなど)によって放棄あるいは中止となるようなことはあってはなりません。

その辺りの意思をここで確認してから、応募させていただきたいと思います。

私からは現状では上記の確認だけで十分ですが、他の方も何か気になれば質問なり意見なりしたほうが良いでしょう。
意見や質問を受け付けない(答えない)ような所には普通入りたいとは思いませんからね。


あと、上記とは関係ありませんが、メールアドレスを記載する場合はメールアドレス自動収集プログラムに
拾われてしまう為、@の部分を変える等、プログラムから拾われ辛いようにしたほうが良いですよ。


375ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(148,540ポイント)   Date: 2010/04/13(火) 13:07   No:50530     
Title: Re:おひさしぶりです。まだまだ募集中です。    
ジジ猫さんは、完全にプログラマは諦めたのでしょうか?
今回の募集を見る限り、そんな感じですよね。
募集するプログラマーに期待する事を書いた方が良いと思います。
自分はどこまでするのかとか、何処を担当してもらいたいかとか。

>意見や質問を受け付けない(答えない)ような所には普通入りたいとは思いませんからね。 
前回の問いかけにも一つ一つ答えてもらっていないので、その点でも不十分だと思います。

で、技量のあるプログラマーが参加してみたいと思う理由を考えてみました。
・シナリオやシステムが気に入る。 → 企画書的なモノが欲しい。
・原画さんが好きで参加してみたくなる。 → 絵でアピール。
・既に基本部分がよく出来ていて更に挑戦的なことを使用としている。 → 参加あすると面白そうだ。
・過去作があり、次にしたいことがはっきりしている。自分のやることが見える。 → 企画書的なモノが欲しい。
あたりでしょうか。

こちらも読んでみてください。
「プログラマと付き合う」
http://www.geocities.co.jp/HeartLand-Kaede/9677/read.htm

>ストーリーは僕が考えていた能力戦闘ものの「光に照らされて」という話を元に、メンバーみんなから案をもらいつつ、修正、推敲して行こうとおもっています。 

問題なのは、ジジ猫さんが担当する部分とゲームシステムの対しての言及が成さすぎることですね。
まず担当ですが、今回はメイン作画と書かれています。前はプログラマーもすると書かれてましたね。
じゃあ、シナリオは?ゲームデザインは?これもジジ猫さんですよね。ここをはっきりましょうね。
それと、SLGと言ってもシステムは千差万別ですよね。
まるっきりスーパーロボット大戦のシステムなんでしょうか?
それとも、これから決めるんでしょうか?

経験の公開。ジジ猫さん他のサークルの開発に参加した経験はおありでしょうか?
あるのであれば、それも書かれた方が良いと思います。

あとこちらも参考に。
http://sinsin2006.web.fc2.com/omake/omake04.html
http://sinsin2006.web.fc2.com/omake/omake05.html
いきなり3Dとか言い出したので、不安要素増大中です。

以上、参考になれば幸いです。
参加は出来ませんが、現状のシステムや進行に関してアドバイス出来ますので、必要であればメールを送りますがどうでしょうか?(絵とシナリオについてはコメントしません)


869ポイント を手に入れた。

Name: 御津凪 [URL]  ..ハッカー(141,359ポイント)   Date: 2010/04/13(火) 13:30   No:50531     
Title: Re:おひさしぶりです。まだまだ募集中です。    
softya さんの記事内容については私も同意見ですね。
後で確認しようと思いましたが、確かに今確認した方がいいでしょうね。


43ポイント を手に入れた。

Name: たいちう  ..比類無きプログラマー(70,870ポイント)   Date: 2010/04/13(火) 13:51   No:50532     
Title: Re:おひさしぶりです。まだまだ募集中です。    
私が聞きたいのは地方かな。
メールでのやり取りが中心としても、
月に一度位は実際にあってやり取りする必要を感じます。
全メンバーが集まる必要はないかもしれませんが。

仮に私がシステムのプログラム作成を担当するとして、
ジジ猫さんが完全な仕様書を作ることは不可能でしょ?
実際に会ってジジ猫さんの考えを吸収し、
私にとって十分な仕様を考えないといけません。

あくまでも仮定の話です。面白そうですが。
ジジ猫さんが関西在住でなければ参加は不可能ですし、
実際にお会いしてから、ジジ猫さんがどの位明確なビジョンを
持っているかを判断してからですね。


253ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(174,652ポイント)   Date: 2010/04/13(火) 17:29   No:50552     
Title: Re:おひさしぶりです。まだまだ募集中です。    
参加してもかまいませんが、主催者がどこの誰かわからないような状況だと論外です。
そして、参加するとしてもエンジニアではない部分ですので、おそらく真っ向から意見が衝突すると思います。
また、たいちうさんと同様、ミーティングの都合を考えると、京阪神以外では無理です。


59ポイント を落としてしまった。

Name: Dixq (管理人) [URL]  ..ウィザード(1,175,985ポイント)   Date: 2010/04/13(火) 19:44   No:50563     
Title: Re:おひさしぶりです。まだまだ募集中です。    
前回の質問から随分内容が詳しくなりましたね。
以前得られた回答からしっかり吸収する姿勢、素晴らしいと思います。

しかしsoftyaさんも仰っているように、聞いた事にきちんと漏れなく答えていない部分があるので、
次から何か聞かれていることに漏れがないか注意してみてください。
文章の最後に「?」がある所は引用して

> こんな風にして

レスを一つ一つ書いていくと分かりやすいでしょう。

以前と被りますが、共同で何かを作る時は自分よりスキルの上の人と組みたがるもので、
どんなスキルを持っているかわからない人とはなかなか協力する意思が固まらないものです。
ですのでお互いを知る一歩として過去の作品などを見せることが大事になってくると思います。

ジジ猫さんはグラフィック担当ということなので、これまでに力を入れて書いた力作をいくつか公開してはいかがでしょうか?
パッと見のゲームの第一印象は絵で決まってくる部分が多いと思いますので、ゲーム制作に携わる時のグラフィック担当のスキルは気になるところだと思います。
どんなゲームになりそうか、想像出来ないうちはなかなか責任もって参加しますとは言いにくいものだと思います。
ピクシブのIDは持っていませんが、なるべく登録しなくても見られる場にあると良いですね。

また、気になるのが、高校生であり、制作期間が2年であることです。
高校生で、何年生かは秘密だということでしたが、
2年間責任もって行動できるということは1年生でしょうか?
また、後半になるに従って忙しくなると思いますが、3年生となると後半になるに従って学業が忙しくなるんじゃないでしょうか。
この辺も参加者としては気になるところだと思います。
掲示板で実年齢や詳しい個人情報を公開する必要はありませんが、制作仲間にはきちんと伝えた方が良いでしょう。
それにしても年齢とだいたいの住所位は公開してもよさそうですね。

後これもかなり重要な事ですが、問い合わせなどに対する返信は出来るだけ早くすることです。
一般的には当然平日昼は作業できない、書き込みできないのが普通だと思いますので、
そんな時にも神経を使うようにとは言いませんが、可能な限り円滑なコミュニケーションを取るようにすると良いでしょう。
どんなに忙しい日も最悪24時間以内には返信した方がよろしいかと。
試験中など事情がある時は前もって言っておくといいと思います。

そして、私も経験がありますが、メールだけのやり取りで共同作業をしようとするのは本当に難しいですよ。
気の合う友達とレストランに食事に行くのと、初めて会った人と食事にいくのでは、きっと話のしやすさも楽しさも違うでしょう。
共同作業は気の合う人と行いたいものです。
制作を進めていくうちに「この人とはあわない」と思ったってそれから辛いですよ。
まずはざっくばらんに話して交流を深めるのが大事ですね。
制作に入る前にメッセンジャーやスカイプみたいなもので交流を深めるのもいいかもしれませんね。

最後に、これだけ大きく募集するなら、専用のHPが欲しくなると思います。
また、データを共有する為のシステムも欲しくなるところ。
贅沢を言えば専用サーバーを作ってsubversionを入れて・・、、みたいにしたいところですが、
高校生ということで金銭的にも贅沢は言えないでしょうし、スカイドライブとかを使うことになるでしょうか。
何か良い案があればその辺も書いておくと良いかと思います。

まぁ誰からも突っ込みどころがないほどに漏れなく記載するのは不可能なので、
私が言ったことは一応聞くだけ聞いておいてください。
記載が無かったとしても意識しているかしていないかで書き方は変わってくるでしょうから。

ではよい作品が出来るといいですね。


1,321ポイント を手に入れた。

Name: ookami  ..かけだし(1,284ポイント)   Date: 2010/04/13(火) 21:48   No:50575     
Title: Re:おひさしぶりです。まだまだ募集中です。    
応援しています! うまくいくと良いですね。募集文を読む限り、ゲーム製作を最近始められたんだろうと勝手に想像しているので、違ったらごめんなさい。

高校生とのこと、うらやましい限りです。例え失敗したってとても良い経験になるし、もちろん成功したらもっといいし、大いにやったらいいと思いますが、ただ、もうちょっと小さく初めてもいいかなとは思います。

具体的には、2年計画の前に、まずはジジ猫さんが「1ヵ月もあればできると思う」程度の企画で募集してみて、実際に1ヵ月でできたら、その時集まっているメンバーに「次はこの2年計画をやらないか」と持ちかけてみる、という提案です。もしその程度の経験はとっくにお持ちなんでしたら大変申し訳ないです。

既出のように、2年計画で始めて「あわないな」という人が出たら2年ガマンしなくてはなりませんから、そっちの方が心配です。

(蛇足ですが 著作権は「分け与え」るものではなくて、当然の権利として発生するものじゃないでしょうか?)


37ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(174,833ポイント)   Date: 2010/04/13(火) 22:16   No:50579     
Title: Re:おひさしぶりです。まだまだ募集中です。    
> (蛇足ですが 著作権は「分け与え」るものではなくて、当然の権利として発生するものじゃないでしょうか?)

字面どおり理解すれば、著作権に関しては、

「自分のものは自分のもの、ジジ猫さんのものも(一部は)自分のもの」

というジャイアニズムのような状況になります。
(多分、考えていることは違いますよね?)

あと、お金のことは後出しするとトラブルの原因になります。
必ず最初にルールに決めておくべきです。




98ポイント を手に入れた。

Name: conio [URL]  ..比類無きプログラマー(83,277ポイント)   Date: 2010/04/13(火) 23:29   No:50588     
Title: Re:おひさしぶりです。まだまだ募集中です。    
>>参加は無料、無償で製作を手伝ってもらいますが、ゲームを有料での販売、
配信が決まれば、収入を配当します。 

これは明確に決めておかないとマズいですね。
特に、分野の違う人たちが協力するので当然 一人ひとりの作業量も変わります。

場合によっては、
------------------------------------------------------------
「〜より仕事量が多いから、もっと配当が得られるべきだ」
「沢山 仕事をしたのに、配当としては少なすぎる」
------------------------------------------------------------
といった不平・不満が出ると思います。


なので、予め下記の様に細かい取り決めをしておくべきだと思います。
----------------------------------------------------------------------------------------
・キャラクターが4人居て、それを128×128の大きさで描いてください。
表情差分も含め、合計●●枚描く事になります。
もし、販売する事になった場合の配当は収入に対し●●になります

・音楽は、タイトル画面、メニュー画面、ゲームプレイ画面、オープニング、エンディング、ゲームオーバーの
合計6曲作成してもらいます。
販売する場合には、配当は●●となります。

・使用する言語は、C言語、C++で、ライブラリはDirectXを用います。
ゲームの仕様は、まずジャンルはシミュレーションゲームで、仕様は●●となっており、
<中略>〜の部分を担当してもらいたいと思ってます。
作成したゲームが販売される事になった場合の配当は●●です。
----------------------------------------------------------------------------------------

アルバイトの募集なんかでも、「●●の作業をしてもらいます。時給・月給は良く分かりません。
こんなのだと、「よし!働こう!」と思えないはずです。

そして、一度決めた事はむやみに変えない、変わらないように注意した方が良いでしょう。
(やっぱり配当は●●にします。など)


最後に著作権についてですが、この場合は 多分結合著作物に当たると思います。
ただ、プログラムを分担作業して 分担したものが合わさって1つのソースコードとして動く
と言うような場合は、
(分割すると、作品(著作物)として成り立たない場合)

共同著作物になると思います。
※共同著作物を利用する場合は、共同作業をした全員に許可を取らなければならない。

-------------------------------------------------------------------
結合著作物・・・独立した著作物が結合して1つの作品を成している物。
共同著作物・・・分担した部分を、分離して個別に利用する事が出来ない物。
-------------------------------------------------------------------

詳しい事は色々と調べたり、あと決まったメンバーの中の取り決めとして
その後の作業を進めたりすれば良いと思います。 編集済み


2倍のポイントを手に入れた! 1,332ポイント を手に入れた。

Name: たいちう  ..比類無きプログラマー(71,383ポイント)   Date: 2010/04/13(火) 23:52   No:50591     
Title: Re:おひさしぶりです。まだまだ募集中です。    
著作権やギャラの配当など、このような募集に起こりそうな問題については、
softyaさんの貼ってくれたリンクに詳しく書かれていますね。
ジジ猫さんや応募しようという人はもちろん、このスレに書きこむ人は
読んでおいたほうが良い内容だと思いました。
先人の失敗談は為になります。

募集の詳細については公開できればそれに越したことは無いのでしょうが、
不特定多数に公開するのには不安もあるかもしれませんので、
公開しないことのディメリットをジジ猫さんが認識しているならば、
それはそれで良いのではないでしょうか?


219ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(175,179ポイント)   Date: 2010/04/14(水) 00:09   No:50598     
Title: Re:おひさしぶりです。まだまだ募集中です。    
もう一点重要なことを指摘しておかなければなりません。

著作権にせよ、報酬のことにせよ、それらの取り決めはすべて契約行為になります。
けれども、ジジ猫さんは未成年のようですので、親権者の同意がなければ、あとから契約無効として取り消しができてしまいます。
これでは取り決めに何の効力もなくなってしまいます。
そのあたりも、どうクリアするのか、明確にする必要があります。


2倍のポイントを手に入れた! 346ポイント を手に入れた。

Name: ワクワク  ..ぴよぴよ(796ポイント)   Date: 2010/04/14(水) 00:33   No:50601     
Title: Re:おひさしぶりです。まだまだ募集中です。    
>私だと、前者に当たるのでしょうね(御津凪さん)
>実際にお会いしてから、ジジ猫さんがどの位明確なビジョンを 
持っているかを判断してからですね(たいちうさん)
>参加してもかまいませんが(たかぎさん)

状況次第だとはしても、こんなにも前向きに検討されている方がいるんですねー。
すばらしいことです。
ちなみに、僕だとこの3人に助力していただくことになれば、怖くて(何が怖いかは置いておいて)死んでしまうかもしれません。
   ●←御津凪さん
   ○←僕
 ●   ●←たいちうさん
 ↑
たかぎさん

なんてリンチリッチ!!


151ポイント を手に入れた。

Name: sizuma [URL]  ..プログラマー(39,509ポイント)   Date: 2010/04/14(水) 00:52   No:50603     
Title: Re:おひさしぶりです。まだまだ募集中です。    
>ワクワクさん
わかります。
とりあえず企画書をガッツリかいて、学校のコピー用紙を使い切る勢いで印刷するでしょう。
多分初回は足震えながらプレゼンしてます(笑
通用すればプランナーとしてゲーム業界に就職できますねー
別にプランナーに興味はありませんけど。


   ●←御津凪さん
   ○←ワクワクさん
   ○←僕
   ○←なんかでっかい人
 ● ●←たいちうさん
 ↑
たかぎさん 

ふぅ。これで僕は安全地帯を確保です。


まぁ冗談は置いておいて、経験豊富な先輩方にアドバイスもらえる機会があるなんてすばらしいことだと思います。僕がお会いして話をしたいです。企画なんてないですけど。
僕もいろいろなことに挑戦したいと思ってるし、向上心・積極性が自分の武器だと思ってるので、チーム制作にチャレンジしようとする気持ちはわかります。
がんばって欲しいとは思いますが、高校の2年間を学内ではなくネット空間で費やすのはどうかな、とも思います。


296ポイント を手に入れた。

Name: kai  ..中級者(14,697ポイント)   Date: 2010/04/14(水) 03:05   No:50616     
Title: Re:おひさしぶりです。まだまだ募集中です。    
応援します。制作頑張ってください。

様子を見ていると役割が不明な部分もあるようなので
もうちょっと詳しく役割を決めてみてはいかがでしょうか?
典型的なゲーム開発での役割はこれくらいかな。

■監督者
・General Producer

■企画
・Planner

■プログラマー
・Chief Programmer
・Assistant Programmer
・Script

■ゲームデザイナー、アーティスト、製作デザイナー
・Background Graphics
・Character Graphics
・System Graphics
・Game Illustration

■サウンド技術者
・Sound Effects
・Music

■その他(必要ならば)
・Package
・System Voice Actor

役割が多い感じがしますが、だからといって人数も増やすものではありません。
多くのゲーム開発者は、何らかの個性主義を持っていると思います。
そのため、開発に関する思いが違い、仲違いすることがあってもおかしくありません。
なので、それほど高度なゲームでなければ少人数でチームを組むという手もありです。
まあ、そういうことが起こらないように監督者、プランナ(企画職)の方が
しっかりまとめてくれるのが一番良いのですが。

余談ですが、
PlayStation(PS)のころは2〜3人の開発メンバーで、
「デザイナー」「ディレクター」「プログラマー」の各役割を分担するのが一般的だそうですよ。


551ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,177,353ポイント)   Date: 2010/04/14(水) 08:07   No:50621     
Title: Re:おひさしぶりです。まだまだ募集中です。    
よく見たらジジ猫さんの投稿時間4時って、早起きなのか夜更かしなのかわかりませんが、よく起きてますね;
次の日休みとかだったのかな?

しかしたかぎさん、たいちうさん、ミツナギさんが参加される可能性があるだなんて、
ゲームに限らず、何か研究したり特許も考えつつ本格的なものを作りたくなりますね・・。
こんなことなら滋賀に居る間にもっとアクション起こしておけばよk(ry
いやこんなチームのリーダーは私じゃ務まらないな^^;

たかぎさんもたいちうさんも大阪で開いたソフトウェア技術研究会に参加して下さいましたよね。
(たいちうさんは当日残念でしたが)
みつなぎさんも大阪近ければ必ず参加して下さったでしょうしw
アクティブな方が沢山いらっしゃって有り難いです^^
あぁ第二回を開催しなければ・・
(段々脱線してる・・

===

今私も似たような事をしていて、
プログラマーとして就職した先の同期3人であるものを作っています。
いつも制作会議と称してワイワイ遊ぶことになってしまうんですが。。w
お互い良いものが出来ると良いですね。

後たかぎさんが仰るように、確かに高校生だと金銭的な契約に困りますね。
私が思うにジジ猫さんはシェア販売はほとんど頭に無いようなので、ここは完全に無料と決めておいた方がいいのではないでしょうか?
金銭的な問題は思った以上に難しい事ですよ。
友達の間で金の貸し借りをするなと教えられるでしょうけど、お金の問題は人の関係を壊しますから・・。


534ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(175,318ポイント)   Date: 2010/04/14(水) 08:49   No:50623     
Title: Re:おひさしぶりです。まだまだ募集中です。    
> 私が思うにジジ猫さんはシェア販売はほとんど頭に無いようなので、ここは完全に無料と決めておいた方がいいのではないでしょうか? 

私もそう思います。
あるいは、収益は配分するのではなく、(経費を除いて)次回作の資金に100%回すことに決めるかです。
後者の場合、資金管理のための団体が必要になります(納税もしないといけませんので)。

> 友達の間で金の貸し借りをするなと教えられるでしょうけど、お金の問題は人の関係を壊しますから・・。 

仮に利益配分を行わない場合でも、経費の負担をどうするかなど、お金の問題は必ずついてまわります。
一応経営者なのでよくわかるのですが、何か事をなそうとすれば、技術的な問題より、資金繰りや資金管理の方が難しいことも多々あるのです。


139ポイント を手に入れた。

Name: 通り  ..かけだし(1,360ポイント)   Date: 2010/04/14(水) 11:33   No:50627     
Title: Re:おひさしぶりです。まだまだ募集中です。    
参加しない立場で口を挟むのもあれですが、レスが遅いとせっかくの参加者が逃げますよ。
前のスレでも亀レスだったみたいですが、これだけ大規模に呼び掛けるならやり取りは迅速にするべきです。


2倍のポイントを手に入れた! 106ポイント を手に入れた。

Name: ジジ猫  ..入門者(2,987ポイント)   Date: 2010/04/14(水) 15:32   No:50635     
Title: Re:おひさしぶりです。まだまだ募集中です。    
レス遅くなってすみませんでした。
高校生である都合上、レスは二、三日に一度になってしまいます。

質問は後で答えます。



39ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(175,359ポイント)   Date: 2010/04/14(水) 15:41   No:50637     
Title: Re:おひさしぶりです。まだまだ募集中です。    
> 高校生である都合上、レスは二、三日に一度になってしまいます。 

だったら、通常1年で完成できるようなものでも、5年ぐらい見ておかないと無理ではないのですか?


41ポイント を手に入れた。

Name: あ〜る  ..上級者(18,199ポイント)   Date: 2010/04/14(水) 15:49   No:50639     
Title: Re:おひさしぶりです。まだまだ募集中です。    
携帯使えば、やろうと思えば四六時中掲示板見れますよ
見てるだけで色々勉強になりますし


32ポイント を手に入れた。

Name: conio [URL]  ..比類無きプログラマー(84,143ポイント)   Date: 2010/04/14(水) 15:53   No:50640     
Title: Re:おひさしぶりです。まだまだ募集中です。    
>>レス遅くなってすみませんでした。 
>>高校生である都合上、レスは二、三日に一度になってしまいます。


返信は遅れ気味になると、チーム全体の士気にも関わってくると思います。
(程度にもよりますが。)

遅くても、せめて1日以内の遅延ぐらいに留まるようにしておくべきかな、と。
企画して募集する、という役割の人なら 尚更 重要になるでしょう。

あと高校何年生なのかは分からないのですが、開発期間が2年という事になると
確実に大学の入試などの時期と重なってきますよね?

進路がもう決まっているのなら問題は無いのですが、
決まっていないのならば、「試験勉強をするので しばらく返信できません」という状態になる
可能性もあるのではないのでしょうか?
(現状でレスが2〜3日なのを考慮すると、更にレスポンスが悪化する事が予想されます。)


398ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(150,231ポイント)   Date: 2010/04/14(水) 16:08   No:50641     
Title: Re:おひさしぶりです。まだまだ募集中です。    
>レス遅くなってすみませんでした。 
>高校生である都合上、レスは二、三日に一度になってしまいます。 

チーム運営のリーダーが2〜3日に一回しか連絡取れないのはまずいでしょう。
チーム作業を経験してみると分かりますが、ゲームデザイン・進行管理者が一番仕事していないとチームは回りません。プログラマやグラフィック・音楽の担当が疑問を聞きたいときに返事してもらえなかったらモチベーション下がりまくりですよ。その間作業が進まないかも知れないんですよ。2〜3日待ってくださいなんて・・・。
常にゲームデザインでは他の作業者の先を行くこと、なるべく返事を早く返すこと、他の作業者の進行状況を把握すること、作業者間のコミュニケーションに気をくばることはチーム運営リーダーの最重要事項です。


292ポイント を手に入れた。

Name: 通り  ..かけだし(1,700ポイント)   Date: 2010/04/14(水) 18:45   No:50648     
Title: Re:おひさしぶりです。まだまだ募集中です。    
制作が始まってから忙しくなって3日位返事がなくなってしまうならともかく、
募集をかけている段階で既にそんな状態では参加者が集まらなくても仕方ないですね。
あくまでも自分のペースでやるから、自分のペースに合わせてくれる人だけ参加して下さいというのは無理がありますよ。

上でも出てましたけど学校の友達と作った方がいいんじゃないですか?
平日なら嫌でも1日に1度会えるんですから。

今の状況を見ているとスレ主がこれだけのメンバーのリーダーをつとめるのは無理だと思わざるをえません。
募集をかけようと思った理由が自分が初めてゲームを作ってて素材が欲しくなったからということでは余計に参加者も不安にならざるをえません。
こんなことを言うとまた潰しだとかいう意見が出るかもしれませんが。


340ポイント を手に入れた。

Name: ookami  ..入門者(2,705ポイント)   Date: 2010/04/14(水) 19:43   No:50651     
Title: Re:おひさしぶりです。まだまだ募集中です。    
あくまで参考としてリンク。スレタイは「エロゲ作る」ですが、内容はまったくそんなことはなく、ゲーム作りの苦労話が書いてあります。
http://yaruomatome.blog10.fc2.com/blog-entry-378.html


64ポイント を手に入れた。

Name: dic  ..熟練のプログラマー(60,990ポイント)   Date: 2010/04/14(水) 21:09   No:50657     
Title: Re:おひさしぶりです。まだまだ募集中です。    
あまりつつかないで
本人にやらせてみては?


12ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,178,837ポイント)   Date: 2010/04/14(水) 22:06   No:50659     
Title: Re:おひさしぶりです。まだまだ募集中です。    
なんだか募集以外の雑談もどきばかり話してしまって申し訳ないですが・・。

>ookamiさん

読んでみました。
ながっ!
興味深い記事ではありましたが、あまりにも長かったんで6までしか読んでません;
この記事立てた人は経験者か何かなんですかね。
読んでいる人が多そうであることからも似たような苦労した経験してる人も多いのかもしれませんね。

記事の中では色々と制作の難しさが表現されていたように思います。
しかし欲を言えばプロデューサーが詐欺だったというオチで終わるんじゃなくて、
計画も無しに始めた共同制作ゆえ次第にボロボロと崩れ落ちる所を書いてほしかったなと思ったのと
「ネットで募集をかけたら制作がダメになった時リアル仲間と違ってアッサリお別れ出来るから気軽に協力出来るのがメリット」ってとこはちと違うな〜と思ってしまったり・・(ブツブツ

見ず知らずの人が突然共同で何かを作ろうとするのは難しいですよね。
難しさを知っている人が沢山いるからこそこのトピにも多くの意見が集まっている事でしょう。

なんだか今回の一件で共同制作日記みたいなものを書いてみたくなりました。
といっても、私には小規模のグループでしか経験が無く、後は失敗経験しか無いので、書けませんが、今3人で進めている制作も記録を残していきたいなと思いました。
会社では大規模でやってますけど、仕事でやるのとプライベートでやるのは完全に違いますからね。
例えばリーダーのモチベーション管理役はプライベートなら最重要かもしれません。仕事なら「嫌でも仕事だから・・」ってやらないといけないことはやりますから(w

その分ジジ猫さんはプライベートで大規模な募集をかけていらっしゃるので、是非制作が終わった時制作日記みたいなものを書いてほしいな〜なんて勝手に期待します。
良い作品が出来る事を願っています☆


2倍のポイントを手に入れた! 1,484ポイント を手に入れた。

Name: ジジ猫  ..入門者(3,860ポイント)   Date: 2010/04/15(木) 00:13   No:50664     
Title: Re:おひさしぶりです。まだまだ募集中です。    
とりあえず、質問などに答えようと思います。


>結成するからには最後までやり遂げる責任を持っている事が条件です。

確かに、結成したら、最後まで実行し、やり遂げるべきです。
しかし、管理人さんがいう通り、高校生である僕には、学業、成績、入試と、学生としてしなければいけないことがたくさんあります。

入学したてで(年齢分かってしまったか・・・)、一応、応用クラスに入れてほっとしています。高校生活の三年の間に、何か作り残したいという気持ちがあります。
高校卒業後も、みなさんがいてくれればやり遂げることは可能です。


>前回の問いかけにも一つ一つ答えてもらっていないので、その点でも不十分だと思います。

すみませんでした。以後気をつけます。


>まるっきりスーパーロボット大戦のシステムなんでしょうか?

僕も思っていました。同じままでいいのだろうか?これではシューティングを作るのと変わらないじゃないか?

アニメーションシーンの省略、かわりにフィールド内での迫力があるアクション・・・。
まったく別ではないですけどこんな風に多少違うところがあります。


>制作が始まってから忙しくなって3日位返事がなくなってしまうならともかく、 
募集をかけている段階で既にそんな状態では参加者が集まらなくても仕方ないですね。 

パソコン部に入部しました。パソコン部にはネットが繋がってません。驚きです。
しかし、開発環境は整っていました。
だがしかし、プログラムに詳しい先輩がいないことに気づきました。これじゃただゲームしてるだけじゃないか!!
高校ということもあり、知らない生徒もたくさんいます。話をしていると、プログラムに詳しい人が見つかったんで、一応たのんでみることにします。
それでも、熟練者の方がよりくわしいと思うので、誰か参加してください。


>あと高校何年生なのかは分からないのですが、開発期間が2年という事になると 
確実に大学の入試などの時期と重なってきますよね?

はい。間違いなくかぶってます。(暴露)
とりあえずはゲームデザイン、キャラクターデザインを部活内でしようと思っています。
これなら家に帰って勉強もできますし、製作もできます。

仕様書は今急いで打ち込んでます。もう少しまってください。

先読みですが、絶対に「無理だろ。」と突込みが飛んでくると思います。
部活は部活、勉強は勉強と両立していこうと思います。


ここで一旦区切らせてもらいます。


873ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(175,659ポイント)   Date: 2010/04/15(木) 00:54   No:50670     
Title: Re:おひさしぶりです。まだまだ募集中です。    
> 高校生である僕には、学業、成績、入試と、学生としてしなければいけないことがたくさんあります。 

そんなことを言い出したら、みんなそれぞれの事情を抱えています。
暮らしの心配もなく、暇を持て余している穀潰しなど、そう多くはいません。
メンバー全員が自分の個人的な都合を優先していると、それこそ一往復のやり取りを行うのに一週間以上かかってしまうでしょう。

リーダーが自分の都合を中心に考えていると、そうではないと思いたいですが、参加者は、

> ネットで募集をかけたら制作がダメになった時リアル仲間と違ってアッサリお別れ出来るから気軽に協力出来るのがメリット

ということになる可能性も考えておかなければならなくなります。
もっと厳しいことをいえば、参加者から見れば、何かトラブルが起きた場合、リアル仲間と違って、容赦なく責任者(=つまり、ジジ猫さん)に対して法的措置を含めた責任追及ができると考えることもあり得るのです。
そうならないためにも、信頼関係の構築は最優先課題だと考えてください。


300ポイント を手に入れた。

Name: ジジ猫  ..入門者(4,055ポイント)   Date: 2010/04/15(木) 23:26   No:50713     
Title: Re:おひさしぶりです。まだまだ募集中です。    
>私が思うにジジ猫さんはシェア販売はほとんど頭に無いようなので、ここは完全に無料と決めておいた方がいいのではないでしょうか?

はい。完全無料のフリーソフトにしようと思います。

>そうならないためにも、信頼関係の構築は最優先課題だと考えてください。

どこかに携帯で見えるでしょ?っていう意見もありましたが、
すみません。持ってないんです。
昼休み、放課後などに使える、学校の図書室のパソコンが唯一の連絡法になってます・・・。
できる限り円滑な会話、連絡、信頼関係構築ができるようがんばります。
とりあえずは一日一回メールと掲示板をチェックします。


195ポイント を手に入れた。

Name: ムンバ  ..プログラマー(32,184ポイント)   Date: 2010/04/15(木) 23:54   No:50718     
Title: Re:おひさしぶりです。まだまだ募集中です。    
とりあえず、主催者のじじ猫さんが募集をかけられていらっしゃるので
とりあえず、参加ご希望の方がいらっしゃれば
とりあえずはお試しにでも参加されてみては如何(いかが)でしょうか?

とんでもなく割り込みで、自分勝手な意見で申し訳御座いません。<(_ _)>

>昼休み、放課後などに使える、学校の図書室のパソコンが唯一の連絡法になってます・・・。 
>できる限り円滑な会話、連絡、信頼関係構築ができるようがんばります。

今後、この様な連絡事項を、この掲示板でなさるのか
他の掲示板でなさるのか、お聞きしたいです。


104ポイント を手に入れた。

Name: ジジ猫  ..入門者(4,261ポイント)   Date: 2010/04/16(金) 01:43   No:50729     
Title: Re:おひさしぶりです。まだまだ募集中です。    
>今後、この様な連絡事項を、この掲示板でなさるのか 
他の掲示板でなさるのか、お聞きしたいです。

基本メールにしたいと思っています。
この掲示板で話すのはちょっと迷惑になると思うんで・・・。(そうですよね?管理人さん?)
もし、掲示板のほうが都合がいいなら、専用掲示板を作ろうと思います。

とりあえず参加してみたいな、と思う方はメールしてみてください。
やっぱりやめたいと思うなら言ってくださって結構ですし。

そろそろトップの質問事項のとこ編集しようと思います。いちいちレス見ていくのも面倒ですから。 編集済み


2倍のポイントを手に入れた! 206ポイント を手に入れた。

Name: ジジ猫  ..入門者(4,277ポイント)   Date: 2010/04/17(土) 00:18   No:50771 解決!     
Title: Re:おひさしぶりです。まだまだ募集中です。    
参加者が多数来ています!!
ありがとうございました!


16ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(150,579ポイント)   Date: 2010/04/17(土) 13:01   No:50793     
Title: Re:おひさしぶりです。まだまだ募集中です。    
相互リンクが不完全ですよ。こっちからも張りましょうね。
http://www.freem.ne.jp/cgi-bin/bbs/party/osiete.cgi/mode_view/no_967/

参加者が集まってきたそうでおめでとうございます。
と言ってもこれからが始まりですよね。
まず、参加者の皆さんに対する説明とプログラマーのメインを誰とするかとか、普通最初は一人で十分というかプログラマーが複数いると混乱するだけなんですけどね。良いところメインとサブです。これも、メインを担当する人の能力次第で決めた方が良いでしょう。
そんな話し合いの意味でも、専用の掲示板を作った方が良いと思いますよ。


156ポイント を手に入れた。

Name: ジジ猫  ..入門者(4,294ポイント)   Date: 2010/04/17(土) 18:43   No:50816     
Title: Re:おひさしぶりです。まだまだ募集中です。    
忘れてました。すみません。

17ポイント を手に入れた。

Name: こめかみ  ..熟練のプログラマー(54,245ポイント)   Date: 2010/04/18(日) 18:12   No:50860     
Title: Re:おひさしぶりです。まだまだ募集中です。    
サウンド制作に興味がありますが人手はsitumonさんで足りてしまっているのでしょうか。
作曲経験は皆無ですが耳コピ経験を元に参加してみたいのですが。

前スレにはサウンドが募集項目にありましたがフリームの掲示板には無かったのでこちらで質問をします。

経験者がたの忠告は膨大で私には消化しきれてないのですが、ジジ猫さん結果を考える前に行動してみる姿勢に共感しています。

参加"したい"と言い切れずにく"してみたい"なのが成果を出す能力と自信の無さを表していると自覚していますがそんな奴でよければお誘いください。ですがやるからには能力の範囲で全力を出します。簡単な効果音の作成ならできると思いますがなんといっても未経験ですので。

また私のようなココロザシ低めの人間の参加を容認すれば非常にマジメにやる気のある方達の志気に関わると思いますので注意してください。私が心配することではないかもしれませんしジジ猫さんもとっくに承知のコトかもしれませんが一応。

あとつけ加えるならSLGというジャンルのプレイ経験は少ないです。スパロボはプレイ未経験です。でも音楽なら参加できるかもしれないと思い名乗り上げてみました。


373ポイント を手に入れた。

Name: situmon  ..熟練のプログラマー(49,365ポイント)   Date: 2010/04/18(日) 22:05   No:50876     
Title: Re:おひさしぶりです。まだまだ募集中です。    
TKOZさんもサウンド担当に参加してくれます♪

自分は作曲といっても低レベルな曲しか作れませんので
(でも参加はしたいから参加したのですが)
たくさん参加してくれたほうがうれしいんですよね。。。
(いろいろと教わりたいので・・・)

まだまだ募集中みたいですし、是非是非こめかみさんも来てくれるとうれしいです。
 編集済み


84ポイント を手に入れた。

Name: ジジ猫  ..入門者(4,471ポイント)   Date: 2010/04/19(月) 00:34   No:50901     
Title: Re:おひさしぶりです。まだまだ募集中です。    
こめかみさん、はじめまして。
企画者のジジ猫と申します。

situmonさんがメールを下さってまだ、このスレが続いていることに気づきました!(なんと!)

音楽の方はいまだメインが決まっていない状態です。(二人で仲良くしてくださいという程度で)
そこで、一度あなたの作った「かっこいい」というイメージのサンプル曲を聞かせてください。

誰をメインにするか考えます。

あと、一度メールを送ってください。
お願いします。


177ポイント を手に入れた。

Name: こめかみ  ..熟練のプログラマー(54,281ポイント)   Date: 2010/04/19(月) 02:27   No:50912     
Title: Re:おひさしぶりです。まだまだ募集中です。    
メールしました。それでは。

>>situmonさん
参加は決まっていません。期待されませぬように。


36ポイント を手に入れた。



Name: 光冠  ..かけだし(2,289ポイント)   Date: 2010/04/18(日) 10:35   No:50836       
Title: cppunit    
こんばんは。
前シューティングゲームを作るといってた光冠です。

この授業の一つにテストをしっかりやるという事がありまして、
とりあえずcppunitをVC++2008EEでやろうと思ったのですがどうも上手くいきません

とりあえず下のサイトを参考にしていたのですが
http://www.atmarkit.co.jp/fdotnet/cpptest/cpptest02/cpptest02_01.html
サンプルで試してみたところ同じようなエラーがでます。

1>リンクしています...
1>CounterTest.obj : error LNK2019: 未解決の外部シンボル "public: __thiscall Counter::Counter(void)" (??0Counter@@QAE@XZ) が関数 "public: virtual void __thiscall CounterTest::setUp(void)" (?setUp@CounterTest@@UAEXXZ) で参照されました。
1>CounterTest.obj : error LNK2019: 未解決の外部シンボル "public: int __thiscall Counter::get(void)const " (?get@Counter@@QBEHXZ) が関数 "protected: void __thiscall CounterTest::test_init(void)" (?test_init@CounterTest@@IAEXXZ) で参照されました。
1>CounterTest.obj : error LNK2019: 未解決の外部シンボル "public: void __thiscall Counter::incr(void)" (?incr@Counter@@QAEXXZ) が関数 "protected: void __thiscall CounterTest::test_incr(void)" (?test_incr@CounterTest@@IAEXXZ) で参照されました。
1>CounterTest.obj : error LNK2019: 未解決の外部シンボル "public: void __thiscall Counter::clear(void)" (?clear@Counter@@QAEXXZ) が関数 "protected: void __thiscall CounterTest::test_clear(void)" (?test_clear@CounterTest@@IAEXXZ) で参照されました。
1>C:\/*省略*/CounterSolution\Debug\CounterTest.exe : fatal error LNK1120: 外部参照 4 が未解決です。
1>ビルドログは "file://c:CounterSolution\CounterTest\Debug\BuildLog.htm" に保存されました。
1>CounterTest - エラー 5、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

なにが問題なのでしょう?


787ポイント を手に入れた。


Name: Justy  ..伝説なるハッカー(519,950ポイント)   Date: 2010/04/18(日) 13:04   No:50843     
Title: Re:cppunit    
 そのサイトの説明通りやっているとして、テスト対象であるCounterプロジェクトへの依存関係は設定しましたか?


25ポイント を手に入れた。

Name: 光冠  ..入門者(2,695ポイント)   Date: 2010/04/18(日) 22:14   No:50877     
Title: Re:cppunit    
すいませんお返事遅れました。

依存設定を忘れていたようです。
簡単なミスですいません。

しかしシューティングゲームのほうでやってみると

2>リンクしています...
2>ShootingTest.obj : error LNK2001: 外部シンボル ""public: virtual void __thiscall ShootingGame::initializeStage(void)" (?initializeStage@ShootingGame@@UAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""public: virtual void __thiscall ShootingGame::loadFiles(void)" (?loadFiles@ShootingGame@@UAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""public: virtual void __thiscall ShootingGame::drawTitleScreen(void)" (?drawTitleScreen@ShootingGame@@UAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""public: virtual void __thiscall ShootingGame::drawMainScreen(void)" (?drawMainScreen@ShootingGame@@UAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""protected: virtual void __thiscall GameFrame::drawGameOverScreen(void)" (?drawGameOverScreen@GameFrame@@MAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""protected: virtual void __thiscall GameFrame::drawGameClearScreen(void)" (?drawGameClearScreen@GameFrame@@MAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""protected: virtual void __thiscall GameFrame::initializeStage(void)" (?initializeStage@GameFrame@@MAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""protected: virtual void __thiscall GameFrame::loadFiles(void)" (?loadFiles@GameFrame@@MAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""protected: virtual void __thiscall GameFrame::drawTitleScreen(void)" (?drawTitleScreen@GameFrame@@MAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""protected: virtual void __thiscall GameFrame::drawMainScreen(void)" (?drawMainScreen@GameFrame@@MAEXXZ)" は未解決です。
2>C:\shooting_game\Debug\ShootingTest.exe : fatal error LNK1120: 外部参照 10 が未解決です。
2>ビルドログは "file://\ShootingTest\Debug\BuildLog.htm" に保存されました。
2>ShootingTest - エラー 11、警告 5
========== ビルド: 1 正常終了、1 失敗、0 更新不要、0 スキップ ==========

こちらは依存など全部サイトの書いてあるとおりにしてあるはずなのに直りません。
こちらの問題はなんでしょうか?


406ポイント を手に入れた。

Name: 光冠  ..入門者(2,792ポイント)   Date: 2010/04/19(月) 02:12   No:50911 解決!     
Title: Re:cppunit    
自信ないですが多分できたと思います・・・。

cppunitをbuildするときに/MD->/MT /MDd->/MTd等にして
やってみたらとりあえずエラーは無くすことができました。

まだテストがちゃんとできるか確認してませんが
恐らく出来るんではないかなーっと思います^^;

ありがとうございました。


97ポイント を手に入れた。



Name: lan  ..ぴよぴよ(164ポイント)   Date: 2010/04/18(日) 23:49   No:50899       
Title: vector配列    
連投申し訳ありません。

実行結果の最後の行(元ファイルの最後の単語)だけが二回繰り返して表示されるのですが、どこを修正したらいいでしょうか?

問題は以下の通りのものです。 

テキストファイルを読み、各単語をvector配列に格納するプログラムを作成せよ。
 編集済み


95ポイント を手に入れた。


Name: たいちう  ..比類無きプログラマー(73,625ポイント)   Date: 2010/04/19(月) 00:56   No:50902     
Title: Re:vector配列    
test.txtの内容が判りませんが(特にファイルの末尾)、
とりあえずこの方法を試してみて下さい。
もしうまくいかなかったら、test.txtを添付してください。
while (!inFile.eof()) {
    word = "";
    inFile >> word;
    if (word == "") break;
    array.push_back(word);
}


126ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(176,401ポイント)   Date: 2010/04/19(月) 01:16   No:50906     
Title: Re:vector配列    
なぜこんな面倒なことをするのか分かりませんが...

copy(istream_iterator<string>(inFile), istream_iterator<string>(), back_inserter(array));

とするだけでよいのでは?

# 質問をちゃんと読んでいないので外しているかも


70ポイント を手に入れた。

Name: lan  ..ぴよぴよ(69ポイント)   Date: 2010/04/19(月) 01:45   No:50909 解決!     
Title: Re:vector配列    
無事なりました。
お二方とも的確なご指摘ありがとうございます。

よろしければ、下にある矩形転置のものも見ていただけると本当にありがたいです。 編集済み


69ポイント を手に入れた。



Name: Lipton  ..ぴよぴよ(666ポイント)   Date: 2010/04/18(日) 22:23   No:50879       
Title: ネット上でプログラム関連の情報を調べる時    
お世話になります。
ネット上でプログラム関連の情報を調べる際の質問です。
資料等が書籍で出版されていないものや、特定のフォーマット
に関して調べる際に、どんなに検索をかけても日本語のサイトでは
見つからないものがありますが、そんな時、英語のサイトを見て
解析をしなければいけない場面がありますよね。

この場合、自力で、なんとか英語のまま読めると良いのですが
時間がない場合など、断片的にでも日本語に訳せればと思うことが
あります(私は、今そういう状態なのですが)。

ただ、技術関連の用語というか、説明が英語のものは、翻訳ソフトで
直訳の状態で訳せても、かえって意味がわからなくなることが多いです。

ということで、みなさんは、このような場合、どのように訳して読み
解いていっているのか?。プログラム関連のサイトを翻訳するなら
こんなソフトやサイトが良い等の助言を頂けたら幸いです。

ちなみに、私が現在苦戦しているのは、FLASH(SWF)のフォーマット
です。TWIPS型とか、わかりにくい型が多くて苦労しています。

以上、宜しくお願いします。


347ポイント を手に入れた。


Name: Ma  ..比類無きプログラマー(86,922ポイント)   Date: 2010/04/18(日) 22:44   No:50884     
Title: Re:ネット上でプログラム関連の情報を調べる時    
いい翻訳ソフト、私はみたことないですね。
辛口ですが、やっぱり一番いいのは、英語を勉強することかと思いますよ。
もしくは、英語できる人を安く雇うか、英語できる友達で同じことに興味がある人をつれてくるとか。


58ポイント を手に入れた。

Name: Lipton  ..ぴよぴよ(912ポイント)   Date: 2010/04/18(日) 23:11   No:50893     
Title: Re:ネット上でプログラム関連の情報を調べる時    
Maさん、レスありがとうございます。

>英語を勉強すること
が、一番だというのは私もわかっているのですが
時間的に、今回は厳しいです。
とはいえ、今後、何とかしたいと思っています。


64ポイント を手に入れた。

Name: たかぎ [URL]  ..ハッカー(176,331ポイント)   Date: 2010/04/18(日) 23:33   No:50897     
Title: Re:ネット上でプログラム関連の情報を調べる時    
> 時間的に、今回は厳しいです。 

時間優先であれば、英語が得意で技術もわかる人を派遣か何かで入れるしかないと思います。
安価で、というのは期待しない方がよいでしょうね(下手に単価をけちれば、かえって時間がかかる危険性があります)。



2倍のポイントを手に入れた! 142ポイント を手に入れた。

Name: たいちう  ..比類無きプログラマー(74,017ポイント)   Date: 2010/04/19(月) 01:27   No:50908     
Title: Re:ネット上でプログラム関連の情報を調べる時    
> 時間的に、今回は厳しいです。

きつい言い方ですが、授業も碌に受けず初歩的な文法も判らないまま、
課題の締め切りが迫っていると訴える質問者と、本質的な違いはないと思います。
(ある意味、誰もがそうでしょうね)
レベル的には雲泥の差なのかもしれませんが。

今回については次の選択肢しかないと思いますが。

1.翻訳ソフトなしで自分でなんとかする(ピンポイントの質問なら掲示板利用も有効)
2.翻訳ソフトの訳文と原文を自分でなんとかする
3.社内の英語の得意で技術的素養のある人に頼む
4.外部委託
5.日本語の情報をもっと良く探す(意外と見つかるかも)


翻訳ソフトではないですが、PDICというソフトはマウスカーソルを英単語に
合わせるだけでその単語の日本語訳がポップアップで表示されます。熟語も。
変な訳文を見せられるよりも、瞬時に単語の意味だけを調べられる方が役に立つと思います。

あと、今回のLiptonさんの役には立たないかもしれませんが、先日Wikipediaに、
Simple Englishという「言語」の版があることに気付きました。
もちろん情報量はEnglish版と比べものになりませんが、ハードルはかなり低いです。
興味のある記事や自分のよく知っている記事などを、
普段から少しずつ読む習慣を付けておくとよさそうです。


392ポイント を手に入れた。



Name: junjun  ..ぴよぴよ(423ポイント)   Date: 2010/04/18(日) 22:57   No:50888       
Title: 二分探索    
連投申し訳ありません。

問題は以下の通りのものです。 

テキストファイルを読みvector配列に格納した単語に、二分探索を適用して、指定された単語を検索するプログラムを作成せよ。

 編集済み


40ポイント を手に入れた。


Name: Ma  ..比類無きプログラマー(88,712ポイント)   Date: 2010/04/18(日) 23:28   No:50896     
Title: Re:二分探索    
    //探索する単語を受け付け、その単語がvector配列中に存在するか否かを答える。 
    //探索は終了指示マークを受け付けるまで繰り返す。終了指示マークは"$$"とする。
    cout << "探索する単語を入力してください" << endl;
    cout << "探索終了する場合は $$ を入力してください" << endl;
    cin >> quest;
    result = binary_search(array.begin(),array.end(),quest);
    if(result){
        cout << quest << "を発見しました" << endl;
    }



    //探索する単語を受け付け、その単語がvector配列中に存在するか否かを答える。 
    //探索は終了指示マークを受け付けるまで繰り返す。終了指示マークは"$$"とする。
    while(true){
        cout << "探索する単語を入力してください" << endl;
        cout << "探索終了する場合は $$ を入力してください" << endl;
        cin >> quest;
        if(quest.compare("$$") == 0)
            beak;
        result = binary_search(array.begin(),array.end(),quest);
        if(result){
            cout << quest << "を発見しました" << endl;
        }
    }


*注意:∞whileループ使ってしまったので、コンパイラによっては警告が出ます。
もしそれが駄目なら、適当に修正してください。


405ポイント を手に入れた。

Name: junjun  ..ぴよぴよ(447ポイント)   Date: 2010/04/18(日) 23:43   No:50898 解決!     
Title: Re:二分探索    
無事なりました。
本当にありがとうございました。 編集済み


24ポイント を手に入れた。



Name: 胡椒 [URL]  ..かけだし(2,340ポイント)   Date: 2010/04/18(日) 08:04   No:50824       
Title: ボスのショットについてです。    
以前、上のURLで質問したものです。
上のURLのやり方であっていたと思ったんですが、根本的な解決にはなっていないことに気づきました。
試しに

void boss_shot_bulletH003(){
 int i,k,x,j,t=boss_shot.cnt; 
 if(t%100==0){
     for(i=0;i<2;i++){ 
         if((k=search_boss_shot())!=-1){
              boss_shot.bullet[k].col = 4;
              boss_shot.bullet[k].x = boss.x;
              boss_shot.bullet[k].y = boss.y; 
              boss_shot.bullet[k].knd = 0; 
              boss_shot.bullet[k].angle = (3+2*i)*PI/4;
              boss_shot.bullet[k].flag = 1;
              boss_shot.bullet[k].cnt = 0;
              boss_shot.bullet[k].spd = 1.5;
              se_flag[0]=1;
              }
         }
 }
 for(i=0;i<4;i++){
     if(boss_shot.bullet[i].flag>0){
     }
         if(t%10==0){
              if((k=search_boss_shot())!=-1){
                         boss_shot.bullet[k].col = 1;
                         boss_shot.bullet[k].x = boss_shot.bullet[i].x;
                         boss_shot.bullet[k].y = boss_shot.bullet[i].y;
                         boss_shot.bullet[k].knd = 8;
                         boss_shot.bullet[k].angle = PI;
                         boss_shot.bullet[k].flag = 1;
                         boss_shot.bullet[k].cnt = 0;
                         boss_shot.bullet[k].spd = 5;
                         se_flag[0]=1;
                     }
              }
 }
}

というショットを作ってみたのですが、上手くいきません。
これは100カウントに一回、knd=0の弾を二個出し、その二個の弾の座標からknd=8の弾を10カウントに一回出すという意図で作りました。
どこが悪いのでしょうか?


464ポイント を手に入れた。


Name: Ma  ..比類無きプログラマー(85,274ポイント)   Date: 2010/04/18(日) 08:07   No:50825     
Title: Re:ボスのショットについてです。    
URL
http://www.play21.jp/board/formz.cgi?action=res&resno=50777&page=&id=dixq&rln=50818


35ポイント を手に入れた。

Name: Ma  ..比類無きプログラマー(85,217ポイント)   Date: 2010/04/18(日) 08:15   No:50826     
Title: Re:ボスのショットについてです。    
インデントがひどいですが、それはともかく

{}
ブレースが、おかしくありませんか?

 for(i=0;i<4;i++){ 
     if(boss_shot.bullet[i].flag>0){ 
     } 

ここ。 編集済み


57ポイント を落としてしまった。

Name: 胡椒  ..かけだし(2,408ポイント)   Date: 2010/04/18(日) 08:17   No:50827     
Title: Re:ボスのショットについてです。    
すみません。そのURLでのショットでは上手く行ったのですが違うショットを作ってみると上手くいきません。
違いは最初のif分がif(t%100==0)かif(t==1)だと思うのですが・・・


68ポイント を手に入れた。

Name: Ma  ..比類無きプログラマー(85,266ポイント)   Date: 2010/04/18(日) 08:18   No:50828     
Title: Re:ボスのショットについてです。    
>そのURLでのショットでは上手く行ったのですが

失礼、きのせいでした笑 編集済み


49ポイント を手に入れた。

Name: 胡椒  ..入門者(3,102ポイント)   Date: 2010/04/18(日) 08:21   No:50829     
Title: Re:ボスのショットについてです。    
すみません。色々と試してみたときのが残っていたみたいです。

void boss_shot_bulletH003(){ 
 int i,k,x,j,t=boss_shot.cnt;  
 if(t%100==0){ 
     for(i=0;i<2;i++){  
         if((k=search_boss_shot())!=-1){ 
              boss_shot.bullet[k].col = 4; 
              boss_shot.bullet[k].x = boss.x; 
              boss_shot.bullet[k].y = boss.y;  
              boss_shot.bullet[k].knd = 0;  
              boss_shot.bullet[k].angle = (3+2*i)*PI/4; 
              boss_shot.bullet[k].flag = 1; 
              boss_shot.bullet[k].cnt = 0; 
              boss_shot.bullet[k].spd = 1.5; 
              se_flag[0]=1; 
              } 
         } 
 } 
 for(i=0;i<4;i++){ 
     if(boss_shot.bullet[i].flag>0){ 
          if(t%10==0){ 
              if((k=search_boss_shot())!=-1){ 
                         boss_shot.bullet[k].col = 1; 
                         boss_shot.bullet[k].x = boss_shot.bullet[i].x; 
                         boss_shot.bullet[k].y = boss_shot.bullet[i].y; 
                         boss_shot.bullet[k].knd = 8; 
                         boss_shot.bullet[k].angle = PI; 
                         boss_shot.bullet[k].flag = 1; 
                         boss_shot.bullet[k].cnt = 0; 
                         boss_shot.bullet[k].spd = 5; 
                         se_flag[0]=1; 
                     } 
              } 
     }
 } 


基本的にはこれで試していました


694ポイント を手に入れた。

Name: Ma  ..比類無きプログラマー(85,375ポイント)   Date: 2010/04/18(日) 08:53   No:50830     
Title: Re:ボスのショットについてです。    
ここのシューティング講座を中途半端にしか読んでいないので、的外れな解答かもしれませんが、
なんとなく、0 から 4 のインデックスに、青色の弾(knd = 8)もはいっているきがします。

たぶんあってる・・・とおもう。

これから打開策を探ってみます。 編集済み


109ポイント を手に入れた。

Name: 胡椒  ..入門者(2,989ポイント)   Date: 2010/04/18(日) 09:31   No:50831     
Title: Re:ボスのショットについてです。    
for(i=0;i<4;i++)のところは最初はfor(i=0;i<BOSS_BULLET_MAX;i++)となっていたんですけど、
まえのURLのショットではfor(i=0;i<BOSS_BULLET_MAX;i+)をfor(i=0;i<2;i++)にかえたらできたので、
for(i=0;i<4;i++)としてしまいました。

ただ、前のは一発しか撃たなかった{if(t==1)}ので問題なかった(?)のだと思います・・・


113ポイント を落としてしまった。

Name: Ma  ..比類無きプログラマー(86,160ポイント)   Date: 2010/04/18(日) 09:31   No:50832     
Title: Re:ボスのショットについてです。    
*注意:かなり我流です。
管理人様、もしくはここの講座に慣れ親しんでいる方、最適化よろしくおねがいします。


void boss_shot_bulletH000(){
#define MAX_BIGSHOT 10

    int i,k,x,j,t=boss_shot.cnt;
    static int indexs[MAX_BIGSHOT] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
    if(t%100==0){  
        for(i=0;i<2;i++){   
            if((k=search_boss_shot())!=-1){  
                boss_shot.bullet[k].col = 4;  
                boss_shot.bullet[k].x = boss.x;  
                boss_shot.bullet[k].y = boss.y;   
                boss_shot.bullet[k].knd = 0;   
                boss_shot.bullet[k].angle = (3+2*i)*PI/4;  
                boss_shot.bullet[k].flag = 1;  
                boss_shot.bullet[k].cnt = 0;  
                boss_shot.bullet[k].spd = 1.5;  
                se_flag[0]=1;
                for(int n= 0; n < MAX_BIGSHOT; n++){
                    if(indexs[n] == k)
                        break;
                    if(indexs[n] == -1 || boss_shot.bullet[indexs[n]].flag <= 0 || boss_shot.bullet[indexs[n]].knd != 0 ){
                        indexs[n] = k;
                        break;
                    }
                }
            }
        }
    }

    for(int n= 0;(indexs[n] != - 1) && (n < MAX_BIGSHOT); n++){ 
        if(t%10==0){
            if((k=search_boss_shot())!=-1){  
                boss_shot.bullet[k].col = 1;  
                boss_shot.bullet[k].x = boss_shot.bullet[indexs[n]].x;  
                boss_shot.bullet[k].y = boss_shot.bullet[indexs[n]].y;  
                boss_shot.bullet[k].knd = 8;  
                boss_shot.bullet[k].angle = PI;  
                boss_shot.bullet[k].flag = 1;  
                boss_shot.bullet[k].cnt = 0;  
                boss_shot.bullet[k].spd = 5;  
                se_flag[0]=1;
            }
        }  
    } 
}


一応動作確認しました。
static 使ってしまったので、他の方ならもっといい方法を教えてくれるかもしれません。
バグもありえます(汗
あと、読んでみてわからなかったらコメント必要だといってください。

*ちょっとソースコード修正しました。 編集済み


785ポイント を手に入れた。

Name: あ〜る  ..上級者(19,433ポイント)   Date: 2010/04/18(日) 09:52   No:50834     
Title: Re:ボスのショットについてです。    
前回答えてた人です
出来たなら良かったと思って、完成したコードあんま見てなかったんですが、色々危なそうです

for(i=0;i<2;i++){
 if(boss_shot.bullet[i].flag>0 && t2>105){
 boss_shot.bullet[i].spd=0;}
 if(t2>240 && t>60 && t%5==0){
 for(j=0;j<30;j++){ 
 if((k=search_boss_shot())!=-1){ x=j%9;
 boss_shot.bullet[k].col = x;
 boss_shot.bullet[k].x = boss_shot.bullet[i].x;
 boss_shot.bullet[k].y = boss_shot.bullet[i].y;
 boss_shot.bullet[k].knd = 8;
 boss_shot.bullet[k].angle = bossatan3(i,ch.x,ch.y)+PI2/30*j;
 boss_shot.bullet[k].flag = 1;
 boss_shot.bullet[k].cnt = 0;
 boss_shot.bullet[k].spd = 5;
 se_flag[0]=1;
 }
 }
 }
 }
}

まず
for(i=0;i<2;i++){
としてますが、多分最初に撃った弾がたまたま0番と1番の弾だっただけなので、不測の事態が起こる可能性があります
なのでここは
for(i=0;i<BOSS_BULLET_MAX;i++){
のままで良かったです
また
if(boss_shot.bullet[i].flag>0 && t2>105){
 boss_shot.bullet[i].spd=0;}
の部分で、boss_shot.bullet[i].spd=0;}
のところでif文を閉じてはだめです
ここの流れは
フラグがある弾を探し、もしt2が105以上ならその弾のspdを0にする
さらにt2が240以上でtが60以上でt2が5の倍数ならば、その弾の座標から弾を出す
みたいな感じなんで、
「さらにt2が240以上でtが60以上でt2が5の倍数ならば、その弾の座標から弾を出す」
も、if文の中に入れとかなきゃいけません
なので}の位置が違います
ここら辺を踏まえて直してみて下さい

またまた携帯からなんで見にくいかも…(-.-;)


510ポイント を手に入れた。

Name: Ma  ..比類無きプログラマー(86,297ポイント)   Date: 2010/04/18(日) 10:14   No:50835     
Title: Re:ボスのショットについてです。    
先の私のプログラムについて追記です。

indexs[n] = -1
の処理をいれわすれたので、
以下のようなfor 文を、途中に加えるといいとおもいます。

*一例
    for(int n= 0; n < MAX_BIGSHOT; n++){
        if(indexs[n] != -1){
            if(boss_shot.bullet[indexs[n]].flag <= 0 || boss_shot.bullet[indexs[n]].knd != 0)
                indexs[n] = -1;
        }
    }


これがなくても見た目はまったく変わりませんが、-1に戻し忘れると、青い弾(knd = 8)を親の弾(knd=0)だと誤解して、青い弾の上に青い弾を発射しかねません。
(つまり弾が重なるかもしれません。)


それにともなって、最後のfor文も、以下のようします。
for(int n= 0;n < MAX_BIGSHOT; n++){ 
    if(indexs[n] != -1 && t%10==0){




*追記
>for(i=0;i<BOSS_BULLET_MAX;i++){ 
個人的な意見ではありますが、できるだけ無駄が多いfor文は避けたいので、私は static でインデックスを記録する方針をとりました。
(ただ、計算量を節約しても今度はメモリの無駄といわれるかも。) 編集済み


137ポイント を手に入れた。

Name: 胡椒  ..入門者(4,495ポイント)   Date: 2010/04/18(日) 21:01   No:50869     
Title: Re:ボスのショットについてです。    
あ〜るさん>
まずすみません「t2>105」は「t2==0」の間違いです。

if(boss_shot.bullet[i].flag>0 && t2==105){ 
         boss_shot.bullet[i].spd=0;} 

ここで}で閉じないと

              if(t2>240 && t>60 && t%5==0){ 
              for(j=0;j<30;j++){  
                     if((k=search_boss_shot())!=-1){ 
                         boss_shot.bullet[k].col = 1; 
                         boss_shot.bullet[k].x = boss_shot.bullet[i].x; 
                         boss_shot.bullet[k].y = boss_shot.bullet[i].y; 
                         boss_shot.bullet[k].knd = 8; 
                         boss_shot.bullet[k].angle = bossatan3(i,ch.x,ch.y)+PI2/30*j; 
                         boss_shot.bullet[k].flag = 1; 
                         boss_shot.bullet[k].cnt = 0; 
                         boss_shot.bullet[k].spd = 5; 
                         se_flag[0]=1; 
                     } 
              } 

で出された弾のスピードも0になっていしまいまして・・・
また、
フラグがある弾を探し、もしt2が105以上ならその弾のspdを0にする 
さらにt2が240以上でtが60以上でt2が5の倍数ならば、その弾の座標から弾を出す
のふたつの文を一つのif文に入れてしまうと最初の大弾が止まらなくなってしまいます・・・

Maさんのを見てstaticを使ってつくってみたのですが、やはり上手くいきません
コード自体は前よりは良くなっていると思うのですが・・・

void boss_shot_bulletH001(){
#define TM000 120 
        int i,k,j,t=boss_shot.cnt%TM000,t2=boss_shot.cnt;
        static int x[BOSS_BULLET_MAX][1],y[BOSS_BULLET_MAX][1];
        if(t2==5){ 
                for(i=0;i<2;i++){
                        if((k=search_boss_shot())!=-1){ 
                                boss_shot.bullet[k].col   = 4; 
                                boss_shot.bullet[k].x     = boss.x; 
                                boss_shot.bullet[k].y     = boss.y; 
                                boss_shot.bullet[k].knd   = 0; 
                                boss_shot.bullet[k].angle = (3+2*i)*PI/4; 
                                boss_shot.bullet[k].flag  = 1; 
                                boss_shot.bullet[k].cnt   = 0; 
                                boss_shot.bullet[k].spd   = 3;
                                boss_shot.bullet[k].state = 1;
                                se_flag[0]=1; 
                        } 
                } 
        } 
        for(i=0;i<BOSS_BULLET_MAX;i++){ 
            if(boss_shot.bullet[i].flag>0){
                if(t2==105 && boss_shot.bullet[i].state==1){
                    boss_shot.bullet[i].spd=0;
                    x[i][0]=boss_shot.bullet[i].x;
                    y[i][0]=boss_shot.bullet[i].y;
                }
                if(t2>240 && t>60 && t%5==0){                     
                for(j=0;j<30;j++){
                        if((k=search_boss_shot())!=-1){ 
                                boss_shot.bullet[k].col   = 1; 
                                boss_shot.bullet[k].x     = x[i][0];
                                boss_shot.bullet[k].y     = y[i][0]; 
                                boss_shot.bullet[k].knd   = 1; 
                                boss_shot.bullet[k].angle = bossatan3(i,ch.x,ch.y)+PI2/30*j; 
                                boss_shot.bullet[k].flag  = 1; 
                                boss_shot.bullet[k].cnt   = 0; 
                                boss_shot.bullet[k].spd   = 5; 
                                se_flag[0]=1;
                        }
                }
                }
            }
        }
}


1,506ポイント を手に入れた。

Name: 胡椒  ..入門者(4,828ポイント)   Date: 2010/04/18(日) 21:13   No:50871     
Title: Re:ボスのショットについてです。    
Maさん>
Maさんのコードで上手くいきました!ありがとうございます!
しかし意味がよく分からないので質問してもいいでしょうか?

まず、MAX_BIGSHOTというのはなんなのでしょうか?画面に出ている大弾の数でしょうか?

また、index[MAX_BIGSHOT]の全てにはとりあえず-1を入れておいて

for(int n= 0; n < MAX_BIGSHOT; n++){ 
                    if(indexs[n] == k) 
                        break; 
                    if(indexs[n] == -1 || boss_shot.bullet[indexs[n]].flag <= 0 || boss_shot.bullet[indexs[n]].knd != 0 ){ 
                        indexs[n] = k; 
                        break; 

でkに入れ替えている、という解釈でいいでしょうか?


333ポイント を手に入れた。

Name: 胡椒  ..入門者(4,782ポイント)   Date: 2010/04/18(日) 21:36   No:50873     
Title: Re:ボスのショットについてです。    
すみません訂正です


<まず、MAX_BIGSHOTというのはなんなのでしょうか?画面に出ている大弾の数でしょうか? 

なぜMAX_BIGSHOTは10なのでしょうか?という意味です


46ポイント を落としてしまった。

Name: あ〜る  ..上級者(19,097ポイント)   Date: 2010/04/18(日) 21:37   No:50874     
Title: Re:ボスのショットについてです。    
む、なんか出来ちゃったみたいですけど一応僕の方の正解コード載せときます
あえて若干ミスってたんですけどわからなかったみたいなんで、頑張って理解してみて下さい

void boss_shot_bulletH015(){
        #define TM015 300
    int i,j,k,n,t=boss_shot.cnt,t2=boss_shot.cnt%TM015;
    if(t%100==0){
        for(i=0;i<2;i++){
            if((k=search_boss_shot())!=-1){
                boss_shot.bullet[k].col=4;
                boss_shot.bullet[k].knd=0;
                boss_shot.bullet[k].x=boss.x;
                boss_shot.bullet[k].y=boss.y;
                boss_shot.bullet[k].angle=PI2/300*t+i*PI;
                boss_shot.bullet[k].flag=1;
                boss_shot.bullet[k].cnt=0;
                boss_shot.bullet[k].spd=1.5;
                boss_shot.bullet[k].state=1;
                se_flag[0]=1;
            }
        }
    }
    for(i=0;i<BOSS_BULLET_MAX;i++){
        if(boss_shot.bullet[i].state==1 && boss_shot.bullet[i].flag>0 && boss_shot.bullet[i].cnt>50){
            boss_shot.bullet[i].spd=0;
            if(t%10==0){
            for(j=0;j<30;j++){
                if((k=search_boss_shot())!=-1){
                    boss_shot.bullet[k].col=1;
                    boss_shot.bullet[k].knd=0;
                    boss_shot.bullet[k].x=boss_shot.bullet[i].x;
                    boss_shot.bullet[k].y=boss_shot.bullet[i].y;
                    boss_shot.bullet[k].angle=bossatan3(k,ch.x,ch.y)+PI2/30*j;
                    boss_shot.bullet[k].flag=1;
                    boss_shot.bullet[k].cnt=0;
                    boss_shot.bullet[k].spd=5;
                    boss_shot.bullet[k].state=0;
                    se_flag[0]=1;
                    }
                }
            }
            if(boss_shot.bullet[i].cnt>200)boss_shot.bullet[i].flag=0;
        }
    }
}


#追記
どんな弾幕かわからなかったんで適当にアレンジしました 編集済み


336ポイント を落としてしまった。

Name: Ma  ..比類無きプログラマー(88,307ポイント)   Date: 2010/04/18(日) 22:59   No:50889     
Title: Re:ボスのショットについてです。    
コメントつけました。

    //大きな弾が表示される弾の最大数です。if(t%100==0)の頻度によって適応しなければなりません。現在は多くても6つだったので、10個にしておきました。
    //もし、大きな弾が90個ぐらい出現する可能性があるなら、100確保する必要があります。そのため、あまり多いとメモリに無駄が発生しかねません。(intが2バイトなら200バイトしか使わないけどね…)
    #define MAX_BIGSHOT 10

    int i,x,k,t=boss_shot.cnt;
    //boss_shot.bullet配列の中で大玉が指定されたインデックスを記録しておくための配列がindexsです。
    static int indexs[MAX_BIGSHOT] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};

    if(t%100==0){  
        for(i=0;i<2;i++){   
            if((k=search_boss_shot())!=-1){  
                boss_shot.bullet[k].col = 4;  
                boss_shot.bullet[k].x = boss.x;  
                boss_shot.bullet[k].y = boss.y;   
                boss_shot.bullet[k].knd = 0;   
                boss_shot.bullet[k].angle = (3+2*i)*PI/4;  
                boss_shot.bullet[k].flag = 1;  
                boss_shot.bullet[k].cnt = 0;  
                boss_shot.bullet[k].spd = 1.5;  
                se_flag[0]=1;
                //indexs配列の中であいている配列を見つけ次第、そこにインデックスを代入します。
                for(int n= 0; n < MAX_BIGSHOT; n++){ 
                    //同じインデックスがすでに登録されているなら、ループから出ます。
                    if(indexs[n] == k) 
                        break; 
                    //あいている場合、弾が消されている場合、そこに適応します。
                    if(indexs[n] == -1){ 
                        indexs[n] = k; 
                        break; 
                    }
                } 
            }
        }
    }
    //indexs配列で、登録されているが、すでに画面外に出たものや、他の弾になってしまっている弾は配列から除外します。
    for(int n= 0; n < MAX_BIGSHOT; n++){
        if(indexs[n] != -1){
            if(boss_shot.bullet[indexs[n]].flag <= 0 || boss_shot.bullet[indexs[n]].knd != 0)
                indexs[n] = -1;
        }
    }
    //indexsの配列を全部回ります。
    for(int n= 0;n < MAX_BIGSHOT; n++){
        //indexs配列のn番目が空きではないのが条件。
        if(indexs[n] != -1 && t%10==0){
            if((k=search_boss_shot())!=-1){  
                boss_shot.bullet[k].col = 1;  
                boss_shot.bullet[k].x = boss_shot.bullet[indexs[n]].x;//大玉のインデックスはindexs[n]です。
                boss_shot.bullet[k].y = boss_shot.bullet[indexs[n]].y;  
                boss_shot.bullet[k].knd = 8;  
                boss_shot.bullet[k].angle = PI;  
                boss_shot.bullet[k].flag = 1;  
                boss_shot.bullet[k].cnt = 0;  
                boss_shot.bullet[k].spd = 5;  
                se_flag[0]=1;
            }
        }  
    } 
}



//私のは、メモリに多少無駄が出るうえ、static も使っているのであーるさんのが分かりやすいしいいと思う人も多いとおもいます。
それに対して、私のコードの長所はfor 文で MAX である 3000 だったかな?もループする必要がないところですかね。 編集済み


1,367ポイント を手に入れた。

Name: 胡椒  ..入門者(4,941ポイント)   Date: 2010/04/18(日) 23:14   No:50894     
Title: Re:ボスのショットについてです。    
あ〜るさん、ありがとうございます!

自分のと比べてみたところ、おそらく
(t2>240 && t>60 && t%5==0)
の部分が悪かったのだと思います。(もちろんその前を()で閉じたところもですけど)

そのせいで最初の大弾も引っ張られてきて訳のわからないことになってたんんだとおもいます。
ここは大弾のカウントで制御したほうが簡単だったんですね。

また、大弾が止まるカウントもt(つまりboss_shot.cnt)で決めいてたからそのあとの小弾も止まってしまっていたみたいです。


159ポイント を手に入れた。

Name: 胡椒  ..初心者(5,026ポイント)   Date: 2010/04/18(日) 23:21   No:50895 解決!     
Title: Re:ボスのショットについてです。    
Maさん、ありがとうございます!
つまりMAX_BIGSHOTは一度実行してみて目で確認しながら調整しなければならないんですね。

Maさんのコードも理解しておくと役に立ちそうなので十分ためになりました!

本当にお二人ともありがとうございました!


85ポイント を手に入れた。



Name: Lipton  ..ぴよぴよ(848ポイント)   Date: 2010/04/18(日) 23:04   No:50892       
Title: 必要なDLLの探し方    
連続書き込みになり、申し訳ありません。
swfmill(SWFコンバーター)のwin版を使用する場合

libxml2
libxslt/exslt
zlib
freetype
libpng

上記DLLが必要になるようなので、
検索してかき集めてみたのですが、exsltのDLLのみ
見つかりませんでした。他のものも、swfmillを使用する上で
必要なものなのか?現段階ではわかりません。

この辺の集め方等の情報がありましたら宜しくお願いします。

ソースの場合、私の現在のビルド可能な環境は
VC++6.0 pro
VC++Express
のみとなります。

以上、宜しくお願いします。


182ポイント を手に入れた。




Name: えむ1  ..ぴよぴよ(33ポイント)   Date: 2010/04/18(日) 22:41   No:50883       
Title: 描画領域の変更    
VC++ 2008EEにて作業をしています。

描画モード?を変更する場合、通常、ウィンドウモードは680×480で、
フルスクリーンにすると、それが引き伸ばされますよね?

ディスプレイの最高解像度(たとえば1280×1024)で描画を行いたいのですが、
どのように記述すればいいでしょうか?

よろしくお願いします。


33ポイント を手に入れた。


Name: Ma  ..比類無きプログラマー(86,940ポイント)   Date: 2010/04/18(日) 22:46   No:50885     
Title: Re:描画領域の変更    
SetGraphMode
関数を使います。
使い方はリファレンスにあります。


18ポイント を手に入れた。

Name: えむ1  ..ぴよぴよ(49ポイント)   Date: 2010/04/18(日) 23:02   No:50890 解決!     
Title: Re:描画領域の変更    
できました!

SetGraphModeで簡単に。という情報はちらほらあったのですが、
ようやく書き方がわかりました。
ほんとに簡単なんですね…


ありがとうございました。


16ポイント を手に入れた。



Name: kos-mos  ..上級者(17,318ポイント)   Date: 2010/04/18(日) 19:42   No:50864       
Title: 単語の長さ順にソート    
今回も学校の宿題で、以下の通りのものです。 
テキストファイルを読みvector配列に格納した各単語を、単語の長さ順にソートするプログラムを作成せよ。

下にも未解決のものがありますが、かなり挫折気味なのでこちらを考えることにしました。(下のがわかる方はご助力お願いします)

ここまで作ったのですが、テキストファイルを読みvector配列に格納した各単語を、単語の長さ順にソートするところがどういたらいいのかわかりません。どうかおねがいします。
#include <vector>
#include <algorithm>
#include <fstream>
#include <string> 
#include <iostream>
using namespace std;

void main(){
    ifstream inFile;    //入力ファイル
    string word;        //単語
    vector <string> array; //

    //入力ファイルを開く
    inFile.open("test.txt");
    
    //ファイル末尾でなければ、以下を繰り返す
    while(!inFile.eof()){

        //ファイルから単語を読む
        inFile >> word;

        //vectorの末尾へ格納する
        array.push_back(word);
    }
    //ファイルを閉じる
    inFile.close();

    //vector配列に格納した全要素を辞書順にソーティング
    sort(array.begin(),array.end());

    //vectorの最初から最後まで要素の出力を繰り返す
    for( unsigned i = 0; i < array.size(); i++){
        cout << array[i] << endl;
    }
}
 編集済み


579ポイント を手に入れた。


Name: Justy  ..伝説なるハッカー(520,140ポイント)   Date: 2010/04/18(日) 21:04   No:50870     
Title: Re:単語の長さ順にソート    
 std::sortには3番目の引数を受け付けるバージョンがあります。

カメログ(2005-09-15)
http://kmdsbng.railsplayground.net/diary/?date=20050915



# ところで何故 void main? 編集済み


48ポイント を手に入れた。

Name: kos-mos  ..上級者(17,379ポイント)   Date: 2010/04/18(日) 21:51   No:50875     
Title: Re:単語の長さ順にソート    
この辺りは詳しく習っていないので、読んでもイマイチわかりません。

つまりどうしたらいいのでしょうか?

void main ではダメなのでしょうか?


61ポイント を手に入れた。

Name: mosukun  ..ぴよぴよ(32ポイント)   Date: 2010/04/18(日) 22:23   No:50878     
Title: Re:単語の長さ順にソート    
こんにちは。

この場合、sort()にファンクターを使う場合は、

class Judge{
public:
    bool operator () ( string& a , string& b ){ return a.length() > b.length();}
};

(これは昇順の場合です。降順にソートしたい時は a.length() > b.length() の部分を
 a.length() < b.length() としてください)

と、クラス宣言をしてから

 sort( array.begin() , array.end() );

の部分を

 sort( array.begin() , array.end() , Judge() );

に変更します。





32ポイント を手に入れた。

Name: mosukun  ..ぴよぴよ(136ポイント)   Date: 2010/04/18(日) 22:36   No:50881     
Title: Re:単語の長さ順にソート    
ごめんなさい。

昇順、降順のくだりは逆でした。
上に記した a.length() > b.length() では、降順にソートされます。

したがって、昇順にソートしたい場合は a.length() < b.length()となります。

失礼しました。


104ポイント を手に入れた。

Name: Justy  ..伝説なるハッカー(520,357ポイント)   Date: 2010/04/18(日) 22:51   No:50886     
Title: Re:単語の長さ順にソート    
>ソート
 mosukunさんの方法でもいいですし、先のページにある「関数ポインタを使用するサンプル」のように
普通の関数として比較関数を用意してもいいです。
 で、その関数を std::sortの第三引数に指定すればOKです。


>void main ではダメなのでしょうか?
 C++では main関数の戻り値は intと決められています。
 もし参考資料などで戻り値が voidになっているようでしたら、全て intに直しておいた方が
いいかと思います。
(このレベルで間違っていると、他のところも間違っていそうで怖いですが)。


217ポイント を手に入れた。

Name: kos-mos  ..上級者(17,396ポイント)   Date: 2010/04/18(日) 22:52   No:50887 解決!     
Title: Re:単語の長さ順にソート    
無事なりました^^ノシ
本当にありがとうございましたm(__)m


17ポイント を手に入れた。



Name: hit  ..初心者(6,126ポイント)   Date: 2010/04/18(日) 13:38   No:50846       
Title: 15. 音楽を流す。    
ゲームプログラミングの館にある 15. 音楽を流す。

の章のソースををそっくりそのままコピー&ペーストして

Visual c 2008 で デバッグなしで開始からやるとちゃんとできるのですが、(test.midは
自分で用意しました。)本体の方のEXEから開始すると、演奏されないで、WaitKey() ;
の所までいってしまうんです・・・どうすればよいのでしょうか?


117ポイント を手に入れた。


Name: hit  ..初心者(6,136ポイント)   Date: 2010/04/18(日) 13:39   No:50847     
Title: Re:15. 音楽を流す。    
他の音でもだめでした。

10ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,179,819ポイント)   Date: 2010/04/18(日) 13:56   No:50849     
Title: Re:15. 音楽を流す。    
それはDebugフォルダかReleaseフォルダのexeファイルを実行しているからではないでしょうか?
相対パスを特に指定していないなら、実行ファイルがあるフォルダにmidファイルを置くと再生されると思います。


53ポイント を手に入れた。

Name: hit  ..初心者(6,158ポイント)   Date: 2010/04/18(日) 14:06   No:50850 解決!     
Title: Re:15. 音楽を流す。    
おぉ!できました!!!

管理人様 ありがとうございます!


22ポイント を手に入れた。



Name: rolf  ..かけだし(1,927ポイント)   Date: 2010/04/17(土) 15:13   No:50801       
Title: GetRandを使って    
GetRandを使って、その値によって処理を変えるということはどうやったらできるのでしょうか?

0または1の数をGetRandで作り、1だったら 〜〜〜〜〜
                               0だったら 〜〜〜〜〜

という感じです・・・説明下手ですいません・・・


105ポイント を落としてしまった。


Name: ひよこ  ..比類無きプログラマー(81,393ポイント)   Date: 2010/04/17(土) 15:50   No:50803     
Title: Re:GetRandを使って    
例えばこのようにすればいいです。
int num=GetRand(10);
if(num==0)
処理1
if(num==1)
処理2


35ポイント を落としてしまった。

Name: Ma  ..比類無きプログラマー(84,747ポイント)   Date: 2010/04/17(土) 16:14   No:50805     
Title: Re:GetRandを使って    
>0または1の数をGetRand
は、GetRand(1)


17ポイント を手に入れた。

Name: ひよこ  ..比類無きプログラマー(81,424ポイント)   Date: 2010/04/17(土) 16:50   No:50807     
Title: Re:GetRandを使って    
すいません。文を読み間違えてしまったようです。
Maさんありがとうございます。


31ポイント を手に入れた。

Name: rolf  ..かけだし(1,933ポイント)   Date: 2010/04/18(日) 11:15   No:50837     
Title: Re:GetRandを使って    
ありがとうございます!!

6ポイント を手に入れた。

Name: rolf  ..かけだし(1,948ポイント)   Date: 2010/04/18(日) 13:19   No:50844 解決!     
Title: Re:GetRandを使って    
解決マークわすれてました・・・

15ポイント を手に入れた。



Name: Arc  ..ぴよぴよ(285ポイント)   Date: 2010/04/16(金) 22:22   No:50765       
Title: ゲームがだんだんと重くなる……    
こんにちは。
ゲーム好きが高じてゲーム作成に手をつけ始めたものです。
プログラミングはまるっきり初心者なので、Dixq様のサイトを始め色々なサイトにお世話になっております。

自分が持っていた本の内容がシューティングゲーム制作用のものであったのと、初心者の私が最初から全て自力で作っていくのは厳しいだろうと思ったことからジャンルはシューティングに決め作成を開始しました。


二週間ほど掛けてコツコツ作り続けた結果、現状ある程度のゲームの骨格はできたと思っています。
自分のPCがかなり低スペックな為に(ほぼガクガクです)ゲームスピードなどの動作確認を友人に頼んだ結果、いくつかのバグと「プログラムを数秒走らせると徐々に重くなっていく現象」を指摘されました。
とりあえず視覚的にどこが原因なのか分かりやすかったバグについては既に処置済みですが、処理が遅くなっていく現象はPCにあまり通じていない私には正直どこが悪いのか依然分からず、作成がストップしています。

ソースコード、実行ファイルとその他必要なファイル(画像、マップデータetc)をアップロードしてあるので、よろしければどこが悪いのか指摘していただけないでしょうか。
また、最終的に低スペックでもそこそこ快適に動くゲームを目指しているので、パソコンにあまり負荷のかからないプログラムの書き方も教えていただけたらと思います。

まったくもって面倒なお願いですがどうかよろしくお願いします。


データアップロード先 → http://www.dotup.org/uploda/www.dotup.org816035.zip.html 
(パスは掛かっていません)

環境 borland C++ compiler5.5


285ポイント を手に入れた。


Name: Justy  ..伝説なるハッカー(519,907ポイント)   Date: 2010/04/16(金) 22:49   No:50766     
Title: Re:ゲームがだんだんと重くなる……    
 弾や敵がを出したりする度に LoadGraphを呼んでテクスチャをロードしているようですが、
これではその度にディスクにアクセスするので遅いです。

 更に敵や弾が消えた後 DeleteGraphを呼んでテクスチャのメモリを解放していないので
そのテクスチャはずっとメモリに残ったままになります。

 すると時間が経ち表示される敵や弾が増えるにつれ追加でどんどんテクスチャを読み込みますので、
メモリを激しく消費、OSがスワップを起こし重くなっています。


 改善策としては、起動時に使用する全ての素材を LoadGraphで読み込んで
事前にグラフィックスハンドル化しておきます。

 その上で、各弾や敵を表示する際にそのグラフィックスハンドルを割り当てる(使い回し)ようにすれば
毎回読み込むことがなくなるので現象は改善されると思います。

 このあたりは龍神録の館のコードを参考にするといいでしょう。


276ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,179,685ポイント)   Date: 2010/04/17(土) 11:45   No:50789     
Title: Re:ゲームがだんだんと重くなる……    
> Arcさん

こんにちは。それは大槻さんの本ですかね〜?

ところでJustyさんが紹介して下さっている

> このあたりは龍神録の館のコードを参考にするといいでしょう。

の部分を簡単に言うと、ゲームが始まる前にグラフィックを読み込み、終わったら解放する、つまり

グラフィック読み込み

while(1){ // メインループ

    ゲームの処理

}

グラフィック解放


こんな感じかなと思います。


151ポイント を手に入れた。

Name: Arc  ..ぴよぴよ(571ポイント)   Date: 2010/04/17(土) 17:07   No:50809     
Title: Re:ゲームがだんだんと重くなる……    
なるほど。
確かにグラフィックハンドルを一度取ってグローバルにでもしまっておけば、LoadGraph関数で何度もメモリに読み込む必要はありませんね……。さらに私の場合はグラフィック消滅時にメモリを開放してなかったのでそれがどんどん蓄積されていっていたと。
おかげ様で良く理解することができました。


お二方ともわざわざご丁寧にありがとうございました。
都合上少しの期間PCを触る時間がとれないのですが、なるべく早く書き変えたいと思います。


本はお察しの通り、大槻有一郎さんの「14歳から始める〜」を使っています(一番優しそうなので)。
ただこの本はDxライブラリでゲームを作ることにのみ特化し、標準関数などの使い方についてはあまり言及されていないようなので、内田智史氏監修の「C言語によるプログラミング−基礎編−」を併用しています。





一応、解決マークはプログラム改変後の動作を確認した後、報告と同時に付けさせていただきますね。


286ポイント を手に入れた。

Name: Arc  ..ぴよぴよ(715ポイント)   Date: 2010/04/18(日) 11:40   No:50839 解決!     
Title: Re:ゲームがだんだんと重くなる……    
意外と時間がとれたので早速書き変えました。

http://www.dotup.org/uploda/www.dotup.org820093.zip.html
パスなし


改善後、今までの苦悩が嘘のようにヌルヌル滑らかに動くようになりました。
特に負荷を掛けていたのは画面右側の情報表示部分のようで。一秒間に60回も読み込むんじゃ、そりゃ遅くもなりますよねぇ……。

たぶんこれで大丈夫だと思うので解決マークを付けさせていただきます。本当にありがとうございました。


144ポイント を手に入れた。



Name: 猫旅  ..入門者(3,812ポイント)   Date: 2010/04/16(金) 05:46   No:50736       
Title: パネルの反転について    
前回、質問させて頂いた時に構造体で行った方が良いという
助言をいただいたので使って製作する方向に切り替えました。

取りあえずは選択した場所にパネルがあったら1⇒2⇒3と変化するようにソースを書こうと思います。
構造体を使わないで行えば問題なく反転できるのですが
使ってしまうと変な場所が反転されてしまいます。

構造体のメンバにNumという変数があり1〜OBJ_MAXまで被らないように値がふってあります。
毎フレームこのNumの値を二次元配列に格納しそこからデータを呼び出しに行っております。

但し、変な部分が反転されてしまい非常に困っております。
ここで何十時間もつまづき正直、モチベーションが下がりまくってきております・・・。
何とか解決したいのですがお力添え願えないでしょうか。



346ポイント を手に入れた。


Name: conio  ..比類無きプログラマー(84,012ポイント)   Date: 2010/04/16(金) 07:20   No:50737     
Title: Re:パネルの反転について    
もう一度確認しますが、

カーソルがMap_01[2][2]の場所にあった場合、
下記の様に変化(反転)させたい、と言う事で宜しいでしょうか?
--------------------------------------------
int Map_01[CEL_H][CEL_W] = {
    {0, 0,0,0, 0,0,0, 0},
    
    {0, 1,2,3, 1,2,3, 0},
    {0, 3,2,1, 2,3,2, 0},
    {0, 1,1,3, 2,3,2, 0},

    {0, 1,2,3, 1,2,3, 0},
    {0, 3,2,1, 2,3,2, 0},
    {0, 1,1,3, 2,3,2, 0},

    {0, 1,2,3, 1,2,3, 0},
    {0, 3,2,1, 2,3,2, 0},
    {0, 1,1,3, 2,3,2, 0},

    {0, 1,2,3, 1,2,3, 0},
    {0, 3,2,1, 2,3,2, 0},
    {0, 1,1,3, 2,3,2, 0},

    {0, 0,0,0, 0,0,0, 0}
};



int Map_01[CEL_H][CEL_W] = {
    {0, 0,0,0, 0,0,0, 0},
    
    {0, 2,3,1, 1,2,3, 0},
    {0, 1,3,2, 2,3,2, 0},
    {0, 2,2,1, 2,3,2, 0},

    {0, 1,2,3, 1,2,3, 0},
    {0, 3,2,1, 2,3,2, 0},
    {0, 1,1,3, 2,3,2, 0},

    {0, 1,2,3, 1,2,3, 0},
    {0, 3,2,1, 2,3,2, 0},
    {0, 1,1,3, 2,3,2, 0},

    {0, 1,2,3, 1,2,3, 0},
    {0, 3,2,1, 2,3,2, 0},
    {0, 1,1,3, 2,3,2, 0},

    {0, 0,0,0, 0,0,0, 0}
};

--------------------------------------------
違うのであれば指摘してください。


あと、PLAYERクラスが持つメンバPazzとは何を表しているのでしょうか?
128個用意しているみたいなのですが。
----------------------------------------------------
#define        OBJ_MAX            128
typedef struct{
    bool Flg;
    float Px,Py;    // 位置座標
    float Mx,My;    // 移動速度
    int Cx,Cy;        // セル
    int Ptn;        // パターン
    int Num;        // ナンバー
}OBJECT;
OBJECT Pazz[OBJ_MAX];
----------------------------------------------------


あと、「構造体で実装したい」との事でしたが、
具体的に何を構造体にしようとしているのでしょうか?

PANEL型の構造体の2次元配列を作成して、その値を1→2→3と言う風に変えるというのでは
駄目なのでしょうか?


1,069ポイント を落としてしまった。

Name: 猫旅  ..入門者(4,197ポイント)   Date: 2010/04/16(金) 08:15   No:50740     
Title: Re:パネルの反転について    
>>conio様
何度も本当に回答ありがとうございます。

>>PANEL型の構造体の2次元配列を作成して、その値を1→2→3と言う風に変えるというのでは 
>>駄目なのでしょうか?
最初はそのように実装しておりました・・・。

最初は構造体なしに実装しておりました。
それで問題なく反転処理は動いておりました。
問題があったのは起動時に必ず32ドット落下してしまうということです。

しかしこちらで質問させて頂いた所、構造体でパネルの座標などを
持った方が良いと指摘して頂いたのでそれで実装しようとしております。

int Map_01[CEL_H][CEL_W]は初期化用の配列です。
PLAYERクラスが持つメンバPazzはパネル一つ一つの座標等を格納している構造体です。
取りあえずはカーソルの位置だけの反転をしてみようと思っております。

毎フレームPLAYERクラスが持つメンバのMapにそこにあるパネルのナンバーを入れていきます。

    {0, 0,0,0, 0,0,0, 0}, 
     
    {0, 1,2,3, 4,5,6, 0}, 
    {0, 7,8,9, 10,11,12, 0},  ...

この数字を使って○番のパネルの構造体にアクセスするといったような仕様にしようと考えております。
しかし現在、添付させて頂いたソースでは変な位置のパネルが反転してしまいます。


385ポイント を手に入れた。

Name: conio [URL]  ..比類無きプログラマー(84,768ポイント)   Date: 2010/04/16(金) 08:31   No:50741     
Title: Re:パネルの反転について    
>>問題があったのは起動時に必ず32ドット落下してしまうということです。 
それは多分、別の部分がおかしかったんだと思います。

とりあえず、反転するプログラムを作ってみたので実行してみてください。
これで一応 意図通りの動作にはなってないですか?

なってなかったらまた返信をお願いします。
---------------------------------------------------------------------------------
#include "DxLib.h"

int Key[256];
int GetHitKeyStateAll_2(int KeyStateBuf[]){
        char GetHitKeyStateAll_Key[256];
        GetHitKeyStateAll( GetHitKeyStateAll_Key );
        for(int i=0;i<256;i++){
                if(GetHitKeyStateAll_Key[i]==1) KeyStateBuf[i]++;
                else                            KeyStateBuf[i]=0;
        }
        return 0;


#define MAP_W 8
#define MAP_H 12

enum MY_COLOR{
    COL_WHITE,
    COL_RED,
    COL_BLUE,
    COL_YELLOW,
    COL_BLACK,
    COL_MAX
};

DWORD c[COL_MAX];

struct PANEL{
    int cNum;
    int DifY; 
    int DifX;
    PANEL(){
        cNum = COL_BLUE;
    }
};

PANEL panel[MAP_H][MAP_W];

struct Cursor{
    int cNum;
    int pX;
    int pY;
    Cursor(){
        cNum = COL_WHITE;
        pX = 1;
        pY = 1;
    }
};

Cursor cursor;

void SetColor(void)
{
    c[COL_WHITE] = GetColor(255,255,255);
    c[COL_RED] = GetColor(255,0,0);
    c[COL_BLUE] = GetColor(0,0,255);
    c[COL_YELLOW] = GetColor(255,255,0);
    c[COL_BLACK] = GetColor(0,0,0);
}

void MoveCursor(void)
{
    if(Key[KEY_INPUT_RIGHT] == 1)
    {
        if(cursor.pX + 1 < MAP_W - 1){
            ++cursor.pX;
        }
    }else if(Key[KEY_INPUT_LEFT] == 1)
    {
        if(cursor.pX - 1 > 0){
            --cursor.pX;
        }
    }

    if(Key[KEY_INPUT_UP] == 1)
    {
        if(cursor.pY - 1 > 0){
            --cursor.pY;
        }
    }else if(Key[KEY_INPUT_DOWN] == 1)
    {
        if(cursor.pY + 1 < MAP_H - 1){
            ++cursor.pY;
        }
    }
}

void CheckReverse(void)
{
    if(Key[KEY_INPUT_Z] == 1){
        for(int i = cursor.pY - 1; i < cursor.pY + 2; i++){
            for(int j = cursor.pX - 1; j < cursor.pX + 2; j++){
                if(panel[i][j].cNum == COL_BLUE){
                    panel[i][j].cNum = COL_YELLOW;
                }else if(panel[i][j].cNum == COL_YELLOW){
                    panel[i][j].cNum = COL_RED;
                }else if(panel[i][j].cNum == COL_RED){
                    panel[i][j].cNum = COL_BLUE;
                }
            }
        }
    }
}

void DrawPanel(void)
{
    for(int i = 0; i < MAP_H; i++){
        for(int j = 0; j < MAP_W; j++){
            DrawString(j*20, i*20, "●", c[panel[i][j].cNum]);
        }
    }
}

void DrawCursor(void)
{
    DrawString(cursor.pX*20, cursor.pY*20, "□", c[cursor.cNum]);
}

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
    ChangeWindowMode( TRUE );

    if(DxLib_Init() == -1 ) return -1;
    SetDrawScreen( DX_SCREEN_BACK );

    SetColor();

    while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0 ){

        MoveCursor();
        CheckReverse();
        DrawPanel();
        DrawCursor();
        ScreenFlip();
    }
    DxLib_End();
    return 0;
}
---------------------------------------------------------------------------------
 編集済み


750ポイント を手に入れた。

Name: 猫旅  ..入門者(4,441ポイント)   Date: 2010/04/17(土) 09:15   No:50781     
Title: Re:パネルの反転について    
サンプルソースまでありがとうございます。
そうです!!こんな感じに反転を行いたかったんです。

やはり構造体を使うやり方では理解できそうにないので
当初出来てた様に二次元配列を直接いじる組みなおしております。

3×3マスの反転ではなく取りあえずは選択したますのみ色が1⇒2⇒3の様に変化し
縦か横3マスが同じだったら消えて落下すると言った簡単なものにしようとしております。

落下はDropDown関数で行っているのですが
一度でも消える判定が入ってしまうと消えたパネルの
上にあるものが全て消えてしまうというバグが出てしまいました。

色々な部分を弄っては見たのですが直りません・・・。
お手数おかけして申し訳ないのですが今一度ご教授願えないでしょうか?


244ポイント を手に入れた。

Name: conio [URL]  ..比類無きプログラマー(85,353ポイント)   Date: 2010/04/17(土) 18:14   No:50814     
Title: Re:パネルの反転について    
まず、この消去する関数ですが、最初はi = 0, j = 0と代入されてますよね。
---------------------------------------------------------------------------------------------
void PLAYER::PazzleDisappear(){

    int    Check = 0;

    for(int i=0; i<CEL_H; i++){
        for(int j=0; j<CEL_W; j++){
            for(int num=1; num<4; num++){

                // 縦
                if(Map[i-1][j].Flg && Map[i][j].Flg && Map[i+1][j].Flg){
                    if(Map[i][j].Ptn == num){
                        if(Map[i-1][j].Ptn == num)    Check++;
                        if(Map[i][j].Ptn == num)    Check++;    
                        if(Map[i+1][j].Ptn == num)    Check++;
                    }
                }

                //  チェック
                if(Check == 3){
                    if(Map[i-1][j].Ptn == num)    Map[i-1][j].Flg = false;
                    if(Map[i][j].Ptn == num)    Map[i][j].Flg = false;
                    if(Map[i+1][j].Ptn == num)    Map[i+1][j].Flg = false;
                    Check = 0;
                }else{
                    Check = 0;
                }
                
/************** 中略 **************/
            }
            // 初期化
            if(Map[i][j].Flg == false){
                Map[i][j].Flg = false;
                Map[i][j].Ptn = 0;
                Map[i][j].Px = (float)j*32+48;
                Map[i][j].Py = (float)i*32+16;
                Map[i][j].Cx = int(Map[i][j].Px-48)/32;
                Map[i][j].Cy = int(Map[i][j].Py-16)/32;
                Map[i][j].ScaleX = 1.0f;
                Map[i][j].ScaleY = 1.0f;
                Map[i][j].Status = STATUS_NORMAL;
            }
        }
    }
}
---------------------------------------------------------------------------------------------


で、次の条件文のところですが、
---------------------------------------------------------
// 縦
if(Map[i-1][j].Flg && Map[i][j].Flg && Map[i+1][j].Flg){
---------------------------------------------------------
iが0の時どうなるでしょう?


それと、CEL_H = 5と仮定します。
for文でiを増やすとなると範囲は 0〜4となりますね。
では、i == 4の時、3番目の条件はどうなるでしょうか?
---------------------------------------------------------
// 縦
if(Map[i-1][j].Flg && Map[i][j].Flg && Map[i+1][j].Flg){
---------------------------------------------------------

いずれも範囲外アクセスとなります。

2次元配列の場合、添え字が範囲外アクセスすると、
2次元配列内の予想外の場所が書き換わる可能性があります。

例えば、int map[3][3]; という2次元配列があるとすると、 map[0][3] = 10;と指定した場合、
map[1][0]の値が10になります。

なんでこうなるか、というと
メモリ上は 2次元配列の次の要素が連続して並んでいるからです。
-------------------------------------------
//メモリ上の配列の並び
┃map[0][0]
┃map[0][1]
┃map[0][2]
┃map[1][0]  == map[0][3]
┃map[1][1]  == map[0][4]
┃map[1][2]  == map[0][5] 
┃map[2][0]  == map[0][6]  == map[1][3] 
┃map[2][1]  == map[0][7]  == map[1][4] 
▼map[2][2]  == map[0][8]  == map[1][5] 
-------------------------------------------

なので、範囲外アクセスして内部の値が無茶苦茶になっている可能性があります。 編集済み


585ポイント を手に入れた。

Name: 猫旅  ..入門者(4,499ポイント)   Date: 2010/04/17(土) 22:06   No:50819     
Title: Re:パネルの反転について    
何度も回答ありがとうございます。
ご指摘ありがとうございます。
間違えておりました><助かりました。

全ては消えなくなったのですがやはりパネルが落ちてきてくれません・・・。
Drop関数が行けないのでしょうか・・・。


58ポイント を手に入れた。

Name: conio [URL]  ..比類無きプログラマー(86,106ポイント)   Date: 2010/04/17(土) 23:22   No:50820     
Title: Re:パネルの反転について    
んー。 main関数の部分が無いのでなんとも。
とりあえず、初期化する関数を毎回呼び出してたりしないか確認してみてください。

それと描画するこの部分ですが、やり方がマズいです。
---------------------------------------------------------------------------------------
if(Play01.Map[i][j].Ptn == 1) DrawAlphaScale( Px, Py, Handle.Paz01, 0xff, Sx, Sy );
if(Play01.Map[i][j].Ptn == 2) DrawAlphaScale( Px, Py, Handle.Paz02, 0xff, Sx, Sy );
if(Play01.Map[i][j].Ptn == 3) DrawAlphaScale( Px, Py, Handle.Paz03, 0xff, Sx, Sy );
if(Play01.Map[i][j].Ptn == 4) DrawAlphaScale( Px, Py, Handle.Paz04, 0xff, Sx, Sy );
---------------------------------------------------------------------------------------
パネルの種類が増えるたびにif文が増えていきます。

【解決策】
Play01.Map[i][j].Ptnをハンドルの配列の添え字として使ってください。

【やり方】
・ハンドルを配列にして、それぞれの画像のハンドルを得ます。
---------------------------
Handle[0] = 青パネルの画像
Handle[1] = 黄パネルの画像
Handle[2] = 赤パネルの画像
Handle[3] = 緑パネルの画像
---------------------------

・Play01.Map[i][j].Ptnを添え字として使います。
-------------------------------------------------------------------------
DrawAlphaScale( Px, Py, Handle[Play01.Map[i][j].Ptn], 0xff, Sx, Sy );
-------------------------------------------------------------------------
この一行で全てのptnに対応できます。




あと、この部分はTrueにしてないような・・・?
-----------------------------------------------------
// 動いた箇所があったので、検査結果フラグをtrueにする
Map[i][j].Py += 32;
-----------------------------------------------------

最後に、落下&消去するプログラムを書いてみました。
参考にしてみて下さい。

あと意味が分からない所があれば言ってください。

【追記】
一部ソースコードを修正しました。(CheckVanish関数の部分) 編集済み


753ポイント を手に入れた。



Name: 胡椒  ..ぴよぴよ(0ポイント)   Date: 2010/04/17(土) 02:47   No:50777       
Title: ボスのショットについてです    
ボスが二つの大きな弾を撃って、その二つの弾の中心から、また弾を出したいのですが上手くいきません。

void boss_shot_bulletH001(){
#define TM000 120
        int i,k,n,t=boss_shot.cnt%TM000,t2=boss_shot.cnt;
        int x[2][1],y[2][1];
        if(t2==5){
                for(i=0;i<2;i++){;
                        if((k=search_boss_shot())!=-1){
                                boss_shot.bullet[k].col   = 4;
                                boss_shot.bullet[k].x     = boss.x;
                                boss_shot.bullet[k].y     = boss.y;
                                boss_shot.bullet[k].knd   = 0;
                                boss_shot.bullet[k].angle = (5+2*i)*PI/4;
                                boss_shot.bullet[k].flag  = 1;
                                boss_shot.bullet[k].cnt   = 0;
                                boss_shot.bullet[k].spd   = 1.5;
                                se_flag[0]=1;
                        }
                }
        }
        for(i=0;i<BOSS_BULLET_MAX;i++){
                if(boss_shot.bullet[i].flag>0 && t2==105){
                    boss_shot.bullet[i].spd=0;
                    x[i][0]=boss_shot.bullet[i].x;
                    y[i][0]=boss_shot.bullet[i].y;
                }                
        }
        if(t2>220 && t>60 && t%5==0){
            for(n=0;n<2;n++){
                for(i=0;i<30;i++){
                        if((k=search_boss_shot())!=-1){
                                boss_shot.bullet[k].col   = 1;
                                boss_shot.bullet[k].x     = x[n][0];
                                boss_shot.bullet[k].y     = y[n][0];
                                boss_shot.bullet[k].knd   = 1;
                                boss_shot.bullet[k].angle = bossatan2()+PI2/30*i;
                                boss_shot.bullet[k].flag  = 1;
                                boss_shot.bullet[k].cnt   = 0;
                                boss_shot.bullet[k].spd   = 5;
                                se_flag[0]=1;
                        }
                        }
                }
        }
}

としたのですが、どこが悪いのでしょうか?


912ポイント を落としてしまった。


Name: あ〜る  ..上級者(18,603ポイント)   Date: 2010/04/17(土) 07:30   No:50780     
Title: Re:ボスのショットについてです    
for(i=0;i<BOSS_BULLET_MAX;i++){
 if(boss_shot.bullet[i].flag>0 && t2==105){
 boss_shot.bullet[i].spd=0;
 x[i][0]=boss_shot.bullet[i].x;
 y[i][0]=boss_shot.bullet[i].y;
 } 
 }

この部分ですね
iの番号は何番かはわからないのに

x[i][0]

のように使ってるので、例えば、

x[100][0]=boss_shot.bullet[100].x;

みたいな事になり、正しく座標がセット出来ていないんだと思います


2倍のポイントを手に入れた! 404ポイント を手に入れた。

Name: 胡椒  ..かけだし(1,217ポイント)   Date: 2010/04/17(土) 13:54   No:50797     
Title: Re:ボスのショットについてです    
for(i=0;i<BOSS_BULLET_MAX;i++){
                if(boss_shot.bullet[i].flag>0 && t2==105){
                    boss_shot.bullet[i].spd=0;
                    x[i][0]=boss_shot.bullet[i].x;
                    y[i][0]=boss_shot.bullet[i].y;
                }                
        }

for(i=0;i<BOSS_BULLET_MAX;i++){
                if(boss_shot.bullet[i].flag>0 && t2==105){
                    boss_shot.bullet[i].spd=0;
                     for(i=0;i<2;i++){
                    x[i][0]=boss_shot.bullet[i].x;
                    y[i][0]=boss_shot.bullet[i].y;
                }                
        }
}

としてみたり

if(t2==5){ 
                for(i=0;i<2;i++){; 
                        if((k=search_boss_shot())!=-1){ 
                                boss_shot.bullet[k].col   = 4; 
                                boss_shot.bullet[k].x     = boss.x; 
                                boss_shot.bullet[k].y     = boss.y; 
                                boss_shot.bullet[k].knd   = 0; 
                                boss_shot.bullet[k].angle = (5+2*i)*PI/4; 
                                boss_shot.bullet[k].flag  = 1; 
                                boss_shot.bullet[k].cnt   = 0; 
                                boss_shot.bullet[k].spd   = 1.5; 
                                se_flag[0]=1; 
                        } 
                } 
        } 
        for(i=0;i<BOSS_BULLET_MAX;i++){ 
                if(boss_shot.bullet[i].flag>0 && t2==105){ 
                    boss_shot.bullet[i].spd=0; 
                    x[i][0]=boss_shot.bullet[i].x; 
                    y[i][0]=boss_shot.bullet[i].y; 
                }                 
        } 



if(t2==5){ 
                for(i=0;i<2;i++){; 
                        if((k=search_boss_shot())!=-1){ 
                                boss_shot.bullet[k].col   = 4; 
                                boss_shot.bullet[k].x     = boss.x; 
                                boss_shot.bullet[k].y     = boss.y; 
                                boss_shot.bullet[k].knd   = 0; 
                                boss_shot.bullet[k].angle = (5+2*i)*PI/4; 
                                boss_shot.bullet[k].flag  = 1; 
                                boss_shot.bullet[k].cnt   = 0; 
                                boss_shot.bullet[k].spd   = 1.5; 
                                se_flag[0]=1; 
                                x[i][0]=boss_shot.bullet[i].x; 
                                y[i][0]=boss_shot.bullet[i].y; 
                        } 
                } 
        } 
        for(i=0;i<BOSS_BULLET_MAX;i++){ 
                if(boss_shot.bullet[i].flag>0 && t2==105){ 
                    boss_shot.bullet[i].spd=0; 
                          }                 
        } 

としたりしてみたんですがうまくいきません・・・
あ〜るさんの言っている意味は分かるのですが、解決策が思い浮かびません。
どういう風にすればよいのでしょうか?


1,217ポイント を手に入れた。

Name: あ〜る  ..上級者(18,923ポイント)   Date: 2010/04/17(土) 15:45   No:50802     
Title: Re:ボスのショットについてです    
void boss_shot_bulletH001(){
#define TM001 300
 int i,k,n,j,t=boss_shot.cnt%TM001,t2=boss_shot.cnt;
 if(t2==5){
 for(i=0;i<2;i++){
 if((k=search_boss_shot())!=-1){
 boss_shot.bullet[k].col = 4;
 boss_shot.bullet[k].x = boss.x;
 boss_shot.bullet[k].y = boss.y;
 boss_shot.bullet[k].knd = 0;
 boss_shot.bullet[k].angle = (5+2*i)*PI/4;
 boss_shot.bullet[k].flag = 1;
 boss_shot.bullet[k].cnt = 0;
 boss_shot.bullet[k].spd = 1.5;
 se_flag[0]=1;
 }
 }
 }
 for(i=0;i<BOSS_BULLET_MAX;i++){
 if(boss_shot.bullet[i].flag>0){
 boss_shot.bullet[i].spd=0;
 if(t2>220 && t>60 && t%5==0){
 for(n=0;n<2;n++){
 for(j=0;j<30;j++){
 if((k=search_boss_shot())!=-1){
 boss_shot.bullet[k].col = 1;
 boss_shot.bullet[k].x = boss_shot.bullet[i].x;
 boss_shot.bullet[k].y = boss_shot.bullet[i].y;
 boss_shot.bullet[k].knd = 1;
 boss_shot.bullet[k].angle = bossatan2()+PI2/30*j;
 boss_shot.bullet[k].flag = 1;
 boss_shot.bullet[k].cnt = 0;
 boss_shot.bullet[k].spd = 5;
 se_flag[0]=1;
 }
 }
 }
 }
}
}
}

こんな感じでどうでしょうか?
携帯からなんでところどころミスってるかもしれませんが…(-.-;)


320ポイント を手に入れた。

Name: 胡椒  ..かけだし(1,876ポイント)   Date: 2010/04/17(土) 20:06   No:50818 解決!     
Title: Re:ボスのショットについてです    
ありがとうございます!
あ〜るさんのをヒントに

void boss_shot_bulletH001(){ 
#define TM001 120
 int i,k,x,j,t=boss_shot.cnt%TM002,t2=boss_shot.cnt; 
 if(t2==5){
     for(i=0;i<2;i++){ 
         if((k=search_boss_shot())!=-1){
              boss_shot.bullet[k].col = 4;
              boss_shot.bullet[k].x = boss.x;
              boss_shot.bullet[k].y = boss.y; 
              boss_shot.bullet[k].knd = 0; 
              boss_shot.bullet[k].angle = (3+2*i)*PI/4;
              boss_shot.bullet[k].flag = 1;
              boss_shot.bullet[k].cnt = 0; 
              boss_shot.bullet[k].spd = 3;
              se_flag[0]=1;
              }
         }
 }
 for(i=0;i<2;i++){
     if(boss_shot.bullet[i].flag>0 && t2>105){
         boss_shot.bullet[i].spd=0;}
              if(t2>240 && t>60 && t%5==0){
              for(j=0;j<30;j++){ 
                     if((k=search_boss_shot())!=-1){   x=j%9;
                         boss_shot.bullet[k].col = x;
                         boss_shot.bullet[k].x = boss_shot.bullet[i].x;
                         boss_shot.bullet[k].y = boss_shot.bullet[i].y;
                         boss_shot.bullet[k].knd = 8;
                         boss_shot.bullet[k].angle = bossatan3(i,ch.x,ch.y)+PI2/30*j;
                         boss_shot.bullet[k].flag = 1;
                         boss_shot.bullet[k].cnt = 0;
                         boss_shot.bullet[k].spd = 5;
                         se_flag[0]=1;
                     }
              }
             }
 }
}

でできました


659ポイント を手に入れた。



Name: サイホーン  ..ぴよぴよ(922ポイント)   Date: 2010/04/17(土) 14:19   No:50799       
Title: 自機ボムと敵弾の当たり判定が重いです    
こちらが以前のスレッドです。http://www.play21.jp/board/formz.cgi?action=res&resno=50703&page=&id=dixq&rln=50798

三角関数テーブル化の前にボトルネックを調べてみたところ


どうやら、ボムで敵弾を消す時にすごく重くなることが分かり
それ以外はどんなに弾が飛んでいても重くなりませんでした。

なので、ボトルネックはボムと敵弾の当たり判定だとわかりました。
それにボムで消した時の弾消去エフェクトをコメントにして消しても重かったので
やはり、ボトルネックはボムと敵弾の当たり判定の処理です。


当たり判定は二次元配列で軽くできるとここの過去ログのPSP移植関係で
見たことがありますが、
実際はどのように軽くできるでしょうか?

敵弾の最大値を3000にしています。


環境はwinXP、VC++2008EE,DXライブラリです。


330ポイント を手に入れた。


Name: Ma  ..比類無きプログラマー(84,984ポイント)   Date: 2010/04/17(土) 16:26   No:50806     
Title: Re:自機ボムと敵弾の当たり判定が重いです    
>どうやら、ボムで敵弾を消す時にすごく重くなることが分かり 
>それ以外はどんなに弾が飛んでいても重くなりませんでした。 

>なので、ボトルネックはボムと敵弾の当たり判定だとわかりました。


消すとき=あたり判定するとき?
まったくよくわからない論理ですが、


>当たり判定は二次元配列で軽くできるとここの過去ログのPSP移植関係で 
見たことがありますが、 

ちょっと私はみたことないので的外れな解答かもしれませんが、
現状、どのようにあたり判定していて、判定のどこがネックになっていると思われるか推測できませんか?

私の場合、高速化するならできるだけ円形の当たり判定にします。
正直、私はこれ以上効率のいいあたり判定の仕方がわかりません。


237ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(150,887ポイント)   Date: 2010/04/17(土) 17:37   No:50810     
Title: Re:自機ボムと敵弾の当たり判定が重いです    
速度の計測は、Releaseビルドでされていますか?まずそこを確認してくだせい。
>どうやら、ボムで敵弾を消す時にすごく重くなることが分かり
>それ以外はどんなに弾が飛んでいても重くなりませんでした。
ボムの当たり判定を常に当たりにしたら早くなりますか?必ず確認してください。
これで、当たり判定は高速化されますので、これで重かったら弾の消滅エフェクトが原因となります。

で、どうしても遅い場合ですが、当たり判定の場合は出来るだけ当たり判定回数を減らすしかありません。式でどう工夫しても、Maさんの言われている円形の当たり判定の以上の工夫ができないですね。
あとは、弾をブロック分けして弾のブロック単位で当たり判定してからここの弾の当たり判定を設けるとか(逆に遅くなる可能もあり)。あとはプログラムを見てみないとなんとも言えません。


269ポイント を手に入れた。

Name: サイホーン  ..ぴよぴよ(651ポイント)   Date: 2010/04/17(土) 19:05   No:50817 解決!     
Title: Re:自機ボムと敵弾の当たり判定が重いです    
>高速化するならできるだけ円形の当たり判定にします。
はい、自分も円形の当たり判定にしています。
円形が一番軽いんですか…知らなかったです。

>ボムの当たり判定を常に当たりにしたら早くなりますか?
ちょっと難しかったので
とにかく、当たり判定を評価する部分をコメントにしてみたところ
重くなりませんでした。どうやら当たり判定部分です。

それでいろいろとMaさんとsoftyaさんの貴重な御意見を
参考にして
当たり判定回数を減らしてみましたら、全く重たくなくなりました。

具体的には
ボムと敵弾の当たり判定を評価する回数をcount%3==0
というように3カウントに1度にし、さらに
Releaseビルドしてやってみると、
全く重たくなくなりました。

まさかこんなに軽くなるとは思いませんでした。
お二人には重ね重ね本当に感謝しています。

ありがとうございました。


271ポイント を落としてしまった。



Name: C復習中  ..ぴよぴよ(138ポイント)   Date: 2010/04/17(土) 16:57   No:50808       
Title: フォーマット指定子について    
久々にC言語を復習中の身ですが、独習C第4版でフォーマット指定子の項目を眺めていた所
printfのフォーマット指定子で「%n」なるものを見つけました。

最初の学習時にはすっ飛ばしていた様なフォーマット修飾子が出てきたので困っております。


そこで質問
printfのフォーマット修飾子「%n」と言うのはいったい何者なんでしょうか?

私の解釈としてはprintf内で出力された桁数をある変数(又はアドレス?)に格納して
その格納された値を表示出来るようにするフォーマット修飾子なのか?と思っております。

どうか理解されている方が居りましたら教えて頂けると光栄です。

一応、独習Cよりサンプルプログラムを記載しておきます。


----- サンプルプログラム -----
#include <stdio.h>

int main(void)
{
  int i;

  printf("%d %f\n%n", 100, 123.23, &i);
  printf("これまでの出力文字数は %d 個です", i);

  return 0;
}


138ポイント を手に入れた。


Name: たかぎ [URL]  ..ハッカー(176,121ポイント)   Date: 2010/04/17(土) 17:42   No:50811     
Title: Re:フォーマット指定子について    
サンプルの通りでしょう。

%nの直前、すなわち"100 123.230000"および改行の15文字が出力されるので、iには15が格納されます。


32ポイント を手に入れた。

Name: C復習中  ..ぴよぴよ(211ポイント)   Date: 2010/04/17(土) 18:26   No:50815 解決!     
Title: Re:フォーマット指定子について    
No.50811 たかぎ さん

レスありがとうございます。

質問を書いた後、色々と調べまわっていたら見つかりました。
ttp://www.mm2d.net/c/c-01.shtml


73ポイント を手に入れた。



Name: サイホーン  ..ぴよぴよ(410ポイント)   Date: 2010/04/15(木) 20:44   No:50703 解決!       
Title: SIN COS ATAN三角関数テーブル化について    
こんばんは、VC++2008EE、DXライブラリで龍神録の弾幕を高速化したいと思っています。


三角関数のテーブル化で高速になるということを知りましたが、
過去ログやグーグルで調べても
角度を度数法で代入して使うやりかただけしかなくて困っております。
以下は過去ログで見つけたテーブル化のソースです。

float sincos[360]; 

void initSincos() { 
   int i; 
   for(i = 0;i < 360;++i) 
      sincos[i] = sin(i * PI / 180); 

#define SIN(KAKUDO) (sincos[KAKUDO % 360]) 
#define COS(KAKUDO) (sincos[(KAKUDO + 90) % 360]) 

龍神録ではsin(PI/180*20)とかcos(PI/20)
のように弾幕の角度をPI/180*20やPI/20というようにラジアンで使用しているので
上のテーブル化したSIN()とCOS()では引数が整数の度数法なので当てはまらないのです。

上記のテーブル化したSIN()とCOS()を用いて
SIN(PI/180*20)やCOS(PI/20)というように使用するには
どうすればいいでしょうか?


boss_shot.angle=40;
boss_shot.X=COS(boss_shot.angle)*speed;
boss_shot.X=SIN(boss_shot.angle)*speed;
という感じでやはり度数法でやるべきでしょうか? 編集済み


410ポイント を手に入れた。


Name: Dixq (管理人) [URL]  ..ウィザード(1,179,093ポイント)   Date: 2010/04/16(金) 00:02   No:50719     
Title: Re:SIN COS ATAN2等の三角関数テーブル化について    
> サイホーンさん

こんにちは。
普通にラジアンを度数に変換したいんですよね?
PIは180度の事ですよね。
PIが180度ならxは何度か?ということは

PI:180=x:何 ですから

PI*何 = 180x より

何 = 180x ÷ PI

ということになります。求めたい角度は90度つまりPI/2だとしましょう。
xにPI/2を入れてみると「何」が90度になればいいんですよね?

何 = 180 * (PI/2) ÷ PI

何 = 180 / 2

つまり

何 = 90

となりました。
というより、度数法で計算したいなら、全ての計算式を度数に直した方が早いですよ。
この場合ラジアンを使う意味は無いのですから。

例えば90度に飛ばしたい時は

〜〜.angle = 90

とかで

〜〜.x += Cos[〜〜.angle];

とかやった方が早そうです(要素指定は書かれている通り%上限とマイナス対策が必要でしょう)

しかし1度刻みというのは少々大雑把すぎませんか?
東方のように当たり判定が小さいものは遠くから自機狙いで飛ばすとおそらく当たらないと思いますよ。
1度は分度器で見たら細かいかもしれませんが、STGの計算上は大きな誤差になると思います。
せめて3600位は用意してあげた方がいいのではないでしょうか。
その辺の理想的な数値は試行錯誤で見つけるのがよさそうですが。


209ポイント を手に入れた。

Name: softya [URL]  ..ハッカー(150,423ポイント)   Date: 2010/04/16(金) 00:35   No:50724     
Title: Re:SIN COS ATAN2等の三角関数テーブル化について    
>こんばんは、VC++2008EE、 DXライブラリで龍神録の弾幕を高速化したいと思っています。 
>三角関数のテーブル化で高速になるということを知りましたが、 

本当に三角関数をテーブル化するだけで高速化出来ますか?
三角関数がネックだと言うことは時間計測して確認されましたか?
間違った方向に努力しても、無駄になりますよ。


156ポイント を手に入れた。

Name: サイホーン  ..ぴよぴよ(592ポイント)   Date: 2010/04/17(土) 13:57   No:50798     
Title: Re:SIN COS ATAN2等の三角関数テーブル化について    
みなさんありがとうございます。
管理人さん、softyaさん、せっかくレスして頂いたのに申し訳ありません。

三角関数のテーブル化を行う前に
ボトルネックを調べてみますと、
当たり判定関係でおもくなっていることがわかりました。
また、スレッドをすみませんが、
立てさせて頂きます。


管理人さんのおっしゃるテーブル化する時はラジアン代入じゃなくて
度数で扱うということは勉強になりました。
テーブル化する時是非参考にさせていただきます。
本当にありがとうございました。
 編集済み


182ポイント を手に入れた。



Name: 蒼威桜  ..ぴよぴよ(22ポイント)   Date: 2010/04/17(土) 11:12   No:50783       
Title: 利用についての質問    
自宅でネットができないため、ネットカフェからの質問なのですが大丈夫なのでしょうか?
URL等がありません。


22ポイント を手に入れた。


Name: 紅葉  ..中級者(14,271ポイント)   Date: 2010/04/17(土) 11:25   No:50784     
Title: Re:利用についての質問    
問題ないかと思いますw

6ポイント を手に入れた。

Name: 蒼威桜  ..ぴよぴよ(43ポイント)   Date: 2010/04/17(土) 11:27   No:50785 解決!     
Title: Re:利用についての質問    
すいません。ありがとうございます。早速質問してみたいと思います。

21ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,179,534ポイント)   Date: 2010/04/17(土) 11:38   No:50787     
Title: Re:利用についての質問    
大丈夫なのでしょうかというのは何がでしょうか??

URLなどがありませんという意味もよくわかりません・・。


45ポイント を手に入れた。

Name: dic  ..熟練のプログラマー(61,002ポイント)   Date: 2010/04/17(土) 13:39   No:50796     
Title: Re:利用についての質問    
有料サイトと思っているんじゃないの?

12ポイント を手に入れた。



Name:  ..かけだし(1,434ポイント)   Date: 2010/04/16(金) 23:49   No:50768       
Title: ゲームが重いです。    
龍神録の44章でデバッグ支援関数を作ったところなんですが、
「最初」のところが多くなってしまってゲームが重くなります。

気にしなくてもよい、と書いてありますが、時には30.00くらいまでいっていしまっています。

また、一括ダウンロードした龍神録の44章を実行してみる私のPCでは「キャラ計算」の部分が0.04なのに対し、
44章に貼ってある動画では0.02となっています。

これはPCのスペックの差ということなのでしょうか?


207ポイント を手に入れた。


Name: Ma  ..比類無きプログラマー(84,730ポイント)   Date: 2010/04/17(土) 10:30   No:50782     
Title: Re:ゲームが重いです。    
>気にしなくてもよい
たぶんデバッグ用の関数だからです。
30fps で十分デバッグできるとおもいますが、非効率なところを修正したい気持ちもわかります。

>これはPCのスペックの差ということなのでしょうか?
あなたのスペックがわからないのに、スペックの差だなんていえるわけありません。
(さらに言えば、管理人さんのスペックがわからないと画像にあった速度との比較なんてできません。)
スペックの提示をしてみては?

あと、キャラ計算以外の時間も全部提示や、その「最初」というところのコードの記載もしてみたらどうでしょうか? 編集済み


213ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..ウィザード(1,179,489ポイント)   Date: 2010/04/17(土) 11:36   No:50786     
Title: Re:ゲームが重いです。    
> 岸さん

こんにちは。
気にしなくてもよいと書いているのは、「最初」の部分は裏画面を表画面に反映させる処理や画面の内容をクリアする処理をしているためです。
ScreenFlipはモニタの垂直同期を待って反映するので、ここでは待機が起こって当然なのです。
つまりこの関数があるからモニタのリフレッシュレートと同じになるわけです。

しかしモニタが30FPSなんてことはないでしょうから、30になるのはおかしいですね。

キャラ計算部分はCPUの問題なので、多分関係ないでしょう。
処理落ちが発生するとすればグラフィックボードの性能だと思います。
古いノートPCでビデオカードチップオンボードとかだと無理があるかもしれません。

一応私のPCは i7の860+9600GT です。メモリは足りてますか?
処理落ちが発生するとすれば描画部です。
一度スクリーンショットを投稿してもらった方がわかりやすいかもしれません。


316ポイント を手に入れた。



Name: カトブムシ  ..ぴよぴよ(186ポイント)   Date: 2010/04/16(金) 07:20   No:50738       
Title: C++の質問    
独学でプログラミングの勉強を始めたのですが、作ったコードが思ったように動かず困っています。
わかる方がいらっしゃいましたら解説して頂けると助かります。

#include <iostream>
using namespace std;

int main(){
    string str = "123456789";

    for(int i = 0; i < 10; i++){
        cout << str[i];
        if(str[i] == 5) ←ここがおかしいらしい
            cout << "#";
    }

    return 0;
}

このコードで実行結果として12345#6789という文字列が出力されることを期待していたのですが、実際には123456789と表示されてしまいました。
いろいろと作り変えて試していたのですが、
if(str[i] == 5) を if(str[i] > 5)
に置き換えると全ての数字の後ろに#が表示されるようです。
このif文の条件式で、関係演算子==は何を比較してしまっているのでしょうか?

よろしくお願いします。


186ポイント を手に入れた。


Name: conio [URL]  ..比類無きプログラマー(84,018ポイント)   Date: 2010/04/16(金) 07:27   No:50739     
Title: Re:C++の質問    
下記の様に変更してみてください。
-----------------------------------
if(str[i] == 5)



if(str[i] == '5')
-----------------------------------


文字を表現するchar型というのは 内部的には数値となっています。
そして、その数値は数字の値と等しくはありません。
------------------------------------------------
1 != '1'  (左が値の1、 右が文字としての'1')
------------------------------------------------


とりあえず下記のプログラムを実行して見てください。

char型の'1'〜'9'(ついでにナル文字)をint型に変換しています。
しかし、表示される値は1〜9ではない筈です。
---------------------------------------------------------
#include <iostream> 
using namespace std; 

int main(){ 
    string str = "123456789"; 

    for(int i = 0; i < 10; i++){ 
        cout << (int)str[i] << std::endl; 
    } 

    return 0; 

---------------------------------------------------------
先ほどは、このプログラムで表示される値と5の値を比較している事になり
いずれも値の5よりも大きいので、条件文が成立して 全ての文字の後に'#'が追加されたのです。 編集済み


6ポイント を手に入れた。

Name: カトブムシ  ..ぴよぴよ(312ポイント)   Date: 2010/04/17(土) 00:30   No:50772 解決!     
Title: Re:C++の質問    
conioさん、どうもありがとうございました。
おかげ様でプログラムも上手く動き、原因も理解出来ました。
実は始めは
if(str[i] == "5")
と書いていたため'==' : 'const char *' 型から 'int' 型への変換ができません。
とのエラーが出てしまっていたため、int型ならということで
if(str[i] == 5) 
という書き方に替えておりました。
文字リテラルと文字列リテラルが違うということをすっかり失念していて・・・
まだまだ勉強不足ですね。


126ポイント を手に入れた。



Name: エリック  ..ぴよぴよ(9ポイント)   Date: 2010/04/16(金) 14:24   No:50757       
Title: 'DxLib_d.lib' を開くことができません。について    
VC++2008expressedtionとdxライブラリを入手し、DXライブラリの設定を終え、サンプルプログラミングを実行
すると、'DxLib_d.lib' を開くことができません。とエラー表示されてしまいます。どうすればこのエラーを解決できるのでしょうか?教えてください。


9ポイント を手に入れた。


Name: ムンバ  ..プログラマー(32,511ポイント)   Date: 2010/04/16(金) 20:04   No:50764     
Title: Re:'DxLib_d.lib' を開くことができません。について    
こんにちは!

DXライブラリの本家のページ
http://homepage2.nifty.com/natupaji/DxLib/dxuse_vc2008express.html
(VisualC++ 2008 Express Edition の方はこちら・・・)

の解説の様な設定方法をされていますでしょうか?

それと、指定した場所(フォルダ)に DxLib_d.lib があるか確認してみて下さい。
あと考えられるのは、ダウンロードされたDXライブラリを解凍しないで
そのまま、指定のフォルダに入れられている可能性もあります。

それでも解決されなければ、またこちらで聞いてみて下さい。

---編集・追伸---
こちらのページで、初めてお役に?立てると思って、レスしてみたのですが
ご返信が無いのは寂しいですね。^^;
(変な意味は無いですよ。レスを見てる時間が無かったなど、諸事情があるかと思いますので。^^)
ご解説されてる先人様方々のお気持ちに、ちょっとだけなれた様な気がしました。
おやすみなさい。 編集済み


156ポイント を手に入れた。



Name: nayo  ..上級者(15,125ポイント)   Date: 2010/04/14(水) 19:14   No:50649       
Title: 麻雀の和了形判定について    
こんばんは、お久しぶりです
社会人になって時間も休日のごく一部しか使えずなかなかプログラミングする時間がとれないのですが
現在数人で二人麻雀ゲームを作っています
メインプログラマとして参加しており、一応お互い18枚ツモって切るという部分までは作りました
(相手は手牌からランダムに切るだけ)

そこで今から山場のひとつ、役判定を作ろうと思い、まず和了形の判定を行おうと思ったのですが苦戦しています
参考にしているのはこちらのサイトです

ここで思ったのですが、先に順子より刻子をとった場合、和了形が取得できない場合があると思います

例1)一一一一二二三三三三四四五五
例2)一二二二三三三四四四五六六六

どうすればどのような形でも和了形を取得できるでしょうか

今考えているものは頭を決定し、刻子1個の場合、2個の場合みたいなことを繰り返し、残りは順子、
あがれてなければ頭を変更して同じことを繰り返す、という感じですがどうもすっきりと作れず…

これ以外にもっとオススメの和了判定方法がありましたらそちらもお願いします
また、向聴数も取得できたら、と考えています(七対子、国士は除いて)

牌クラスからは一応牌の種類(萬子、索子、筒子、字牌、三元牌、風牌、老頭牌、中張牌、緑牌、数字など)が取得できます

開発環境はVisual C++ 2008 EEです
よろしくお願いします


90ポイント を手に入れた。


Name: nayo  ..上級者(15,167ポイント)   Date: 2010/04/14(水) 21:05   No:50656     
Title: Re:麻雀の和了形判定について    
書き損ねましたが参考になるサイトでも構わないので情報よろしくお願いします
また、不備等ありましたら追記します


42ポイント を手に入れた。

Name: たいちう  ..比類無きプログラマー(71,560ポイント)   Date: 2010/04/14(水) 21:42   No:50658     
Title: Re:麻雀の和了形判定について    
> 今考えているものは頭を決定し、刻子1個の場合、2個の場合みたいなことを繰り返し、残りは順子、
> あがれてなければ頭を変更して同じことを繰り返す、という感じですがどうもすっきりと作れず…

だいたいこの方針で良いと思いますよ。
明日午後は少し時間が取れるはずですのでやってみます。


45ポイント を手に入れた。

Name: nayo  ..上級者(15,264ポイント)   Date: 2010/04/14(水) 22:50   No:50662     
Title: Re:麻雀の和了形判定について    
なるほど、方針はこれで良かったのですね
お忙しい中わざわざやってみてくれるということで申し訳ないです
ありがとうございます

自分でも時間を見つけてアルゴリズム考えてみようと思います


97ポイント を手に入れた。

Name: たいちう  ..比類無きプログラマー(72,153ポイント)   Date: 2010/04/15(木) 09:46   No:50675     
Title: Re:麻雀の和了形判定について    
もう少し丁寧に作ろうかと思ったけど、
麻雀には私の知らないイレギュラーなルールが多そうなので、
手抜きのままにしました。使い物になるように改良してください。

何面待ちかについては、13枚の手牌に1〜9までの牌を追加して、
上がりかどうか判定するだけ。

#include <iostream>

using namespace std;

int buf[10];
int buf2[14];
int answers;

void check(int index) {
    if (index == 14) {
        answers++;
        cout << buf2[0] << buf2[1] << " ";
        for (int i = 0; i < 4; i++)
            cout << buf2[2 + i * 3] << buf2[2 + i * 3 + 1] << buf2[2 + i * 3 + 2] << " ";
        cout << endl;
        return;
    }

    int i = 1;
    while (buf[i] == 0 && i <= 9)
        i++;
    if (i > 9) return;
    if (buf[i] >= 3) {
        buf2[index] = buf2[index + 1] = buf2[index + 2] = i;
        buf[i] -= 3;
        check(index + 3);
        buf[i] += 3;
    }
    if (i <= 7 && buf[i + 1] && buf[i + 2]) {
        for (int j = 0; j < 3; j++) {
            buf2[index + j] = i + j;
            buf[i + j]--;
        }
        check(index + 3);
        for (int j = 0; j < 3; j++)
            buf[i + j]++;
    }
}

void test(int *data) {
    cout << "check start! ";
    int *p = data;
    while (*p) {
        cout << *p << " ";
        p++;
    }
    cout << endl;
    for (int i = 0; i <= 9; i++)
        buf[i] = 0;

    p = data;
    while (*p) {
        buf[*p++]++;
    }
    answers = 0;

    for (int i = 1; i <= 9; i++)
        if (buf[i] >= 2) {
            buf[i] -= 2;
            buf2[0] = buf2[1] = i;
            check(2);
            buf[i] += 2;
        }

    cout << answers << " answer(s) found." << endl << endl;
}

int main() {
    // 例1)一一一一二二三三三三四四五五
    int sample1[] = { 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 0 };
    test(sample1);

    // 例2)一二二二三三三四四四五六六六
    int sample2[] = { 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 6, 6, 6, 0 };
    test(sample2);

    // 例3)一一二二三三四四五五六六七七
    int sample3[] = { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 0 };
    test(sample3);

    // quit
    cout << "End." << endl;
    cin.get();
    return 0;
}


593ポイント を手に入れた。

Name: バグ  ..ハッカー(195,914ポイント)   Date: 2010/04/15(木) 10:46   No:50679     
Title: Re:麻雀の和了形判定について    
以前ブックマークしていたHPに掲載されていましたので、のっけておきます。

http://www5f.biglobe.ne.jp/~kenmo/program/program_ind.htm


38ポイント を落としてしまった。

Name: たいちう  ..比類無きプログラマー(72,170ポイント)   Date: 2010/04/15(木) 11:08   No:50680     
Title: Re:麻雀の和了形判定について    
> 以前ブックマークしていたHPに掲載されていましたので、のっけておきます。

nayoさんが既にリンクを貼っているサイトですね。
そのサイトの判定方法は不完全なので、例1)や例2)を誤判定してしまいます。
(私は実行していませんが、フローは不完全に見えます)


78ポイント を手に入れた。

Name: バグ  ..ハッカー(195,932ポイント)   Date: 2010/04/15(木) 13:16   No:50681     
Title: Re:麻雀の和了形判定について    
おっと、これは失礼しましたm(_ _)m

18ポイント を手に入れた。

Name: nayo  ..上級者(15,458ポイント)   Date: 2010/04/15(木) 19:34   No:50698 解決!     
Title: Re:麻雀の和了形判定について    
たいちう様
 動作確認しました
 複数の和了形まで出てきて役判定の際もかなり便利そうです
 これをベースに作ってみようと思います
 この度は本当にありがとうございました

バグ様
 既に書いたサイトとはいえ紹介して頂きありがとうございます
 なかなか麻雀のプログラムについて細かく書かれたサイトってないんですよね
 同人やフリーゲームで麻雀ゲームは数多く見かけるのにちょっと不思議です

自分のプログラムに組み込めたら改めて連絡致します
一応解決ということでチェック入れておきます

また、参考サイトや雑談等ありましたらお願いします


194ポイント を手に入れた。

Name: nayo  ..上級者(15,504ポイント)   Date: 2010/04/16(金) 18:41   No:50763     
Title: Re:麻雀の和了形判定について    
たいちう様のプログラムを改変することで無事和了判定を行うことができました
また、出来面子をクラス化してさまざまな情報を持たせることで役判定も出来そうです
改めてありがとうございました

麻雀動作部分が完成したらCPの思考ルーチンについてでまた質問にくるかもしれません
そのときはよろしくお願いします


46ポイント を手に入れた。



Name: 初心者  ..熟練のプログラマー(47,277ポイント)   Date: 2010/04/16(金) 16:38   No:50760       
Title: 開きません・・・    
サンプルプログラム実行用フォルダの中の「DxLib_VC2008_and_2005用.sln」がクリックしても開きません
どうしたらいいですか?
初歩的な質問ですみませんm(_ _)m


73ポイント を手に入れた。


Name: Dixq (管理人)  ..ウィザード(1,179,173ポイント)   Date: 2010/04/16(金) 18:11   No:50762     
Title: Re:開きません・・・    
VCのメニューから開いてはどうでしょうか?

また、初心者という名前は使用禁止になっていますので、何かユニークなお名前を使って頂けると幸いですm(__)m


71ポイント を手に入れた。



Name: s-rush  ..熟練のプログラマー(58,453ポイント)   Date: 2010/04/14(水) 03:11   No:50617       
Title: 3Dプログラム    
お久しぶりです。

最近3Dプログラムに挑戦しているのですが、
躓いてしまったので質問させていただきに来ました。

今、本家DXライブラリのサンプルプログラム(迷路を3Dで表示)を参考に
ウィザードリィのような3Dダンジョンゲームを作っているのですが、
壁を目の前でとらえた時の圧迫感が気になるので、それを改良しています。

上記のサンプルプログラムでは、カメラを中心に移動しているように感じました。
カメラ=自キャラといったような感じでしょうか・・・
(間違っていたらごめんなさい)
そこで、操作可能な架空のキャラクター(見えませんが)を置き、
それをカメラで追うようなプログラムを作ろうと考えています。
このようにすることによってカメラの位置が手前にずれるので、
壁の圧迫感が解消されるのではないかと思いました。

しかし、このカメラワークがうまくいきません。
旋回したあとに、前進・後退をするとカメラの動きがおかしくなってしまいます。
ソースコードとその他必要なものを添付しておきますので、
一度実行してみてください。

3Dプログラムは今回が初めてなので、理解が不十分な部分が多いですが、
どうかお力を貸してください。

開発環境:VC++2008EE
OS   :WindowsXP
言語  :C言語
ライブラリ:DXライブラリ



570ポイント を手に入れた。


Name: Ma  ..比類無きプログラマー(83,988ポイント)   Date: 2010/04/14(水) 05:09   No:50618     
Title: Re:3Dプログラム    
すいません、添付みてませんが、時間ないので軽くアドバイスです。

そのような簡単なカメラワークなら次のステップでいけます。

・プレイヤーの目の位置を計算します。
・目線ベクトルを計算します。
・目線ベクトルを負の値でスケール倍して、プレイヤーの目の位置に加算したベクトルがカメラの位置です。
・カメラの位置から、プレイヤーの目の位置を注視点に設定。(DXライブラリには、カメラ位置と注視点で指定できる関数があります。)

完成。

*追記
もっと高度で、スムーズな動きをお求めの場合は、
パトーキンさんのモンハン風プログラムが参考になると思います。
(ニコニコで検索するとソースコードも出るかと。) 編集済み


195ポイント を手に入れた。

Name: Justy  ..伝説なるハッカー(519,511ポイント)   Date: 2010/04/15(木) 22:14   No:50710     
Title: Re:3Dプログラム    
 原因は重要なパラメータである CamDirが回転しても更新されていないからです。
 回転したら CamDirを適切に更新してみて下さい。


62ポイント を手に入れた。

Name: s-rush  ..熟練のプログラマー(58,625ポイント)   Date: 2010/04/16(金) 02:30   No:50732     
Title: Re:3Dプログラム    
>Maさん
サンプルプログラムをもう一度読み直してみました。
おそらく、Maさんのおっしゃる手順をふんでるような感じはしました。
(まちがっていたらごめんなさい)
モンハン風プログラムを見てみました。
やはり生半可な知識じゃ3Dの実装はむずかしいですね^^;
もっと勉強しておくべきでしたorz

>Justyさん
なるほど。
本家にアップされていた2つのサンプルプログラムを単純に組み合わせて作っただけなので、
いまいち理解が不十分でした。
もういちど見直して修正してみます。


172ポイント を手に入れた。

Name: s-rush  ..熟練のプログラマー(58,632ポイント)   Date: 2010/04/16(金) 15:30   No:50759 解決!     
Title: Re:3Dプログラム    
プログラムを再度見直して修正したところ、無事に動作してくれました。
左右旋回を行う部分で少し勘違いしていたようです^^;

プログラムの処理がいまいちまだ理解していませんがorz
やっぱり3Dは難しいですね・・・

Maさん、Justyさん、忙しい中アドバイスしていただきありがとうございました。
またどこかで躓くことがあると思うので、その時はよろしくお願いします。


7ポイント を手に入れた。




 
[ 1 , ... ]
 
 
管理者画面   RSS   + Powered By 21style +