C言語何でも質問掲示板


Total hit  今日  昨日  

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

 
   popenによる通信   
     ・[52066] たかぎ 
     ・[52068] ほげほげ 
     ・[52071] たかぎ 
     ・[52083] ぽこ 
     ・[52089] ほげほげ 
     ・[52092] ぽこ 
     ・[52093] たかぎ 
   課題がわかりません。   
     ・[52046] たかぎ 
     ・[52049] アンフェア 
     ・[52051] たかぎ 
     ・[52052] softya 
     ・[52053] たかぎ 
     ・[52064] アンフェア 
     ・[52065] softya 
     ・[52070] Dixq (管理人) 
     ・[52073] アンフェア 
     ・[52074] ookami 
     ・[52076] ookami 
     ・[52080] Dixq (管理人) 
     ・[52086] softya 
     ・[52091] たかぎ 
   TryEnterCriticalSect ....   
     ・[52036] たかぎ 
     ・[52088] 組木紙織 
     ・[52090] 組木紙織 
   選択肢をビクンと微妙 ....   
     ・[52039] Justy 
     ・[52084] Dixq (管理人) 
   宿題が全く分かりませ ....   
     ・[52013] ぽこ 
     ・[52018] Yuu 
     ・[52031] 胡椒 
     ・[52034] たかぎ 
     ・[52040] Yuu 
     ・[52042] バグ 
     ・[52045] たかぎ 
     ・[52060] YuO 
     ・[52061] たかぎ 
     ・[52082] Dixq (管理人) 
   無題   
     ・[52023] ookami 
     ・[52062] 夢幻るーぷ 
   無題   
     ・[51929] softya 
     ・[51935] たかぎ 
     ・[51943] Dixq (管理人) 
     ・[52038] Orz 
   龍神録で中ボスを出さ ....   
     ・[51974] 胡椒 
     ・[51977] まっさ 
     ・[51994] 胡椒 
     ・[52020] まっさ 
     ・[52022] 胡椒 
     ・[52025] まっさ 
     ・[52027] Dixq (管理人) 
     ・[52029] 胡椒 
     ・[52032] まっさ 
     ・[52033] まっさ 
   画像が読み込めない   
     ・[51997] ookami 
     ・[52002] トロイカ 
     ・[52024] ookami 
   FTP   
     ・[51971] ookami 
     ・[51979] abc 
     ・[52004] ぽこ 
   龍神録がコンパイルで ....   
     ・[51972] ookami 
     ・[51993] Horison 
   東方みたいな・・・・ ....   
     ・[51757] たかぎ 
     ・[51758] lbfuvab 
     ・[51761] ookami 
     ・[51782] Dixq (管理人) 
     ・[51835] なおみち 
     ・[51837] dic 
     ・[51843] Dixq (管理人) 
     ・[51895] なおみち 
     ・[51896] softya 
     ・[51897] Dixq (管理人) 
     ・[51992] なおみち 
   東方でいう、一時停止 ....   
     ・[51963] 胡椒 
     ・[51966] kms 
     ・[51967] 胡椒 
     ・[51968] たいちう 
     ・[51976] kms 
   実行ファイルが作れま ....   
     ・[51954] ひよこ 
     ・[51956] 桂 
     ・[51965] アトラス 
   マップエディタ   
     ・[51637] HK 
     ・[51639] ライス 
     ・[51641] softya 
     ・[51642] ライス 
     ・[51648] softya 
     ・[51651] ookami 
     ・[51656] ライス 
     ・[51665] ookami 
     ・[51668] ookami 
     ・[51773] ライス 
     ・[51775] ライス 
     ・[51784] softya 
     ・[51786] ライス 
     ・[51787] softya 
     ・[51933] やっくん 
     ・[51937] softya 
     ・[51939] softya 
     ・[51946] やっくん 
   【ポケコン】BEEP音を ....   
     ・[51942] たかぎ 
     ・[51944] 桃尻 
   私の次のプログラムス ....   
     ・[51805] softya 
     ・[51829] dic 
     ・[51930] dic 
     ・[51932] softya 
     ・[51936] たかぎ 
     ・[51940] dic 
   Microsoft Visual C++ ....   
     ・[51817] ムンバ 
     ・[51818] ムンバ 
     ・[51819] たかぎ 
     ・[51828] たかぎ 
     ・[51838] dic 
     ・[51839] たかぎ 
     ・[51840] dic 
     ・[51841] たかぎ 
     ・[51844] Dixq (管理人) 
     ・[51845] たかぎ 
     ・[51852] dic 
     ・[51858] Dixq (管理人) 
     ・[51859] たかぎ 
     ・[51868] ムンバ 
     ・[51869] たかぎ 
     ・[51870] ムンバ 
     ・[51931] ムンバ 
     ・[51934] たかぎ 
     ・[51938] ムンバ 
   ゲームの配信について   
     ・[51830] dic 
     ・[51834] ookami 
     ・[51848] Dixq (管理人) 
     ・[51878] 胡椒 
     ・[51900] ookami 
     ・[51902] Dixq (管理人) 
     ・[51907] 組木紙織 
     ・[51927] 胡椒 
   C言語での3整数の平均 ....   
     ・[51921] 組木紙織 
     ・[51922] トレージャー 
     ・[51923] フリオ 
     ・[51925] たかぎ 
     ・[51926] toyo 
   ハフマン木のencode部 ....   
     ・[51890] ookami 
     ・[51898] ホル 
     ・[51899] ホル 
     ・[51908] ookami 
     ・[51913] たいちう 
     ・[51924] ホル 
   C++の基本的な事に付い ....   
     ・[51918] たかぎ 
     ・[51919] ゆうき 
   3D背景で画像のつな ....   
     ・[51824] HK 
     ・[51905] ookami 
     ・[51910] HK 
     ・[51915] Justy 
     ・[51916] ookami 
   このエラーはどうゆう ....   
     ・[51875] たかぎ 
     ・[51909] シノニム 
     ・[51912] Dixq (管理人) 
     ・[51914] たかぎ 
   exeファイルの場所   
     ・[51822] たかぎ 
     ・[51823] HK 
     ・[51825] lbfuvab 
     ・[51842] ゆうき 
     ・[51846] Dixq (管理人) 
     ・[51847] softya 
     ・[51862] lbfuvab 
     ・[51904] ゆうき 
     ・[51906] ゆうき 
   STGつくってみました   
     ・[51709] kai 
     ・[51715] ラグ 
     ・[51717] kai 
     ・[51727] ラグ 
     ・[51730] ひよこ 
     ・[51741] ideyan 
     ・[51753] situmon 
     ・[51762] ラグ 
     ・[51836] ラグ 
     ・[51882] kai 
     ・[51885] 胡椒 
     ・[51903] ラグ 
   トラップ   
     ・[51704] たかぎ 
     ・[51706] softya 
     ・[51707] softya 
     ・[51708] たかぎ 
     ・[51713] tuelon 
     ・[51714] Tororo 
     ・[51716] ookami 
     ・[51720] たいちう 
     ・[51723] たかぎ 
     ・[51760] 擬人 
     ・[51783] Dixq (管理人) 
     ・[51785] softya 
     ・[51795] 擬人 
     ・[51797] たかぎ 
     ・[51798] 擬人 
     ・[51801] ムンバ 
     ・[51802] Tororo 
     ・[51826] lbfuvab 
     ・[51831] Ma 
     ・[51864] conio 
     ・[51894] no 
   VisualC++2008のF5→エ ....   
     ・[51891] たいちう 
     ・[51892] fatens 
     ・[51893] no 
   画像透過   
     ・[51880] 匿名 
     ・[51883] わんころ 
     ・[51884] 胡椒 
     ・[51886] Ma 
     ・[51888] わんころ 
   だんだん目標物に寄っ ....   
     ・[51766] ideyan 
     ・[51770] ookami 
     ・[51771] kai 
     ・[51772] kai 
     ・[51832] ユーリ 
     ・[51833] ookami 
     ・[51881] kai 
   メニュー画面の作成   
     ・[51879] やっくん 
     ・[518771274031671] gdu 
   カウントダウンするプ ....   
     ・[51854] softya 
     ・[51856] kit 
     ・[51857] softya 
     ・[51861] kit 
     ・[51863] softya 
     ・[51865] kit 
     ・[51866] softya 
     ・[51867] b 
     ・[51871] やっくん 
   データ重複時のエラー ....   
     ・[51860] jjexpress 
   index関数の作成   
     ・[51850] Ma 
     ・[51851] たかぎ 
   参照の順序   
     ・[51808] ひよこ 
     ・[51809] たかぎ 
     ・[51813] 馬 
     ・[51814] たかぎ 
   『.exe』の作り方   
     ・[51811] たかぎ 
     ・[51812] おほし 
   ラジコンの仕組み   
     ・[51799] たかぎ 
     ・[51800] softya 
     ・[51804] 若葉 
   宣言の構文エラー?   
     ・[51793] 初心者 
     ・[51794] はなこ 
   関数についてです   
     ・[51777] たかぎ 
     ・[51778] ookami 
     ・[51779] nishi 
     ・[51780] たかぎ 
     ・[51781] Dixq (管理人) 
     ・[51788] Gen 
     ・[51790] たかぎ 
     ・[51791] nishi 
   WEBカメラ画像の取り込 ....   
     ・[51747] non 
     ・[51750] Dixq (管理人) 
     ・[51752] kazuoni 
     ・[51764] Dixq (管理人) 
     ・[51774] kazuoni 
   曜日の表示   
     ・[51768] toyo 
     ・[51769] リョウ 
   ちょっと前にyu?さん ....   
     ・[51722] yu 
     ・[51728] はね 
     ・[51743] はね 
     ・[51759] yu 
     ・[51763] はね 
   アーカイブファイルに ....   
     ・[51511] たかぎ 
     ・[51546] たろう 
     ・[51547] softya 
     ・[51553] たろう 
     ・[51555] たかぎ 
     ・[51558] たろう 
     ・[51560] softya 
     ・[51561] たろう 
     ・[51562] softya 
     ・[51565] たろう 
     ・[51566] たろう 
     ・[51567] softya 
     ・[51568] たかぎ 
     ・[51569] たろう 
     ・[51573] softya 
     ・[51577] たろう 
     ・[51578] たろう 
     ・[51581] softya 
     ・[51584] たろう 
     ・[51586] softya 
     ・[51590] たろう 
     ・[51592] softya 
     ・[51608] たろう 
     ・[51620] softya 
     ・[51627] たろう 
     ・[51628] softya 
     ・[51636] たろう 
     ・[51643] softya 
     ・[51654] たろう 
     ・[51693] softya 
     ・[51744] たろう 
     ・[51751] softya 
     ・[51755] たろう 
   四角形の当たり判定   
     ・[51634] ookami 
     ・[51635] たかぎ 
     ・[51644] A 
     ・[51645] 組木紙織 
     ・[51647] ookami 
     ・[51673] アトラス 
     ・[51754] A 
    _TRUNCATE って何で ....   
     ・[51740] たかぎ 
     ・[51749] ムンバ 
   【アプリ紹介】2D&3D ....   
     ・[51692] たかぎ 
     ・[51748] Ma 

Name: ほげほげ  ..ぴよぴよ(26ポイント)   Date: 2010/05/13(木) 17:52   No:52063       
Title: popenによる通信    
送信側から受信側へ文字列を送信し,表示させたいんですけど,うまくいきません.
環境はmacのxcodeです.
よろしくお願いします.

受信側 (popen_test)

int main (int argc, char * const argv[]) {
    while(1){
        if(!feof(stdin)){
            char a[10];
            fread(a,sizeof(char),5,stdin);    
            printf("%s",a);            
        }

    }
    return 0;
}

送信側
int main (int argc, char * const argv[]) {
    FILE *gid=popen("./popen_test","w");
    while(1){
        fwrite("abc",sizeof(char),5,gid);
        sleep(1);
    }
    return 0;
}


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


Name: たかぎ [URL]  ..ハッカー(185,965ポイント)   Date: 2010/05/13(木) 18:19   No:52066     
Title: Re:popenによる通信    
> うまくいきません. 

どうなることを期待し、どううまくいかないのでしょう?


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

Name: ほげほげ  ..ぴよぴよ(35ポイント)   Date: 2010/05/13(木) 19:46   No:52068     
Title: Re:popenによる通信    
送信側から受信側へ文字列を送信し,表示させたいんです.
送信側の実行ファイルからpopenで受信側の実行ファイルを呼び出してfwriteで送信側から文字列データを送信する度に受信側でデータを取得することができるのを目指しています.
その間受信側のプロセスは終了しないようにしたいのですが,どうすればいいですか?現段階ではfwrite,freadが全く機能していない様子です.反応がありません.


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

Name: たかぎ [URL]  ..ハッカー(186,056ポイント)   Date: 2010/05/13(木) 20:09   No:52071     
Title: Re:popenによる通信    
一通り送信し終わって、パイプをクローズしたときに受信が行われます。


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

Name: ぽこ  ..中級者(10,726ポイント)   Date: 2010/05/13(木) 21:25   No:52083     
Title: Re:popenによる通信    
fwrite()の後で、fflush()をしてみては?

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

Name: ほげほげ  ..ぴよぴよ(206ポイント)   Date: 2010/05/13(木) 22:52   No:52089     
Title: Re:popenによる通信    
fflush
を入れましたが,うまくいきませんでした.
方法は問いませんが何かこの問題を解く方法はないでしょうか?


送信側から受信側へ文字列を送信し,表示させたいんです.
送信側の実行ファイルから受信側の実行ファイルを呼び出して送信側から文字列データを送信する度に受信側でデータを取得することができるのを目指しています.その間受信側のプロセスは終了しません.



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

Name: ぽこ  ..中級者(10,790ポイント)   Date: 2010/05/14(金) 00:10   No:52092     
Title: Re:popenによる通信    
popenではなく、より低レベルのAPI(含むシステムコール)を使用してみては?
pipe, fork, exec*辺りを使用することをお勧めします。

#マック持ってないんで、外していたらゴメンナサイ。


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

Name: たかぎ [URL]  ..ハッカー(186,203ポイント)   Date: 2010/05/14(金) 00:13   No:52093     
Title: Re:popenによる通信    
> popenではなく、より低レベルのAPI(含むシステムコール)を使用してみては? 

その方がよいと思います。


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



Name: アンフェア  ..ぴよぴよ(327ポイント)   Date: 2010/05/13(木) 13:47   No:52044       
Title: 課題がわかりません。    
このプログラムなんですけど正しく動作しません。その理由がを説明してください。

/*  swap3.c swap  */ 
#include <stdio.h>
void swap3 (int x,int y)
{
    int wk;
    wk=x; x=y; y=wk;
}
void swap5 (int *x,int *y)
{
    int wk;
    wk=&x; &x=&y; &y=wk;
}
void swap6 (int x,int y)
{
    int *wk;
    wk=&x; &x=&y; &y=*wk;
}
void main(void) /*test main*/
{
    int a=3,b=5;
    printf("%d-%d\n",a,b); swap3(a,b);
    printf("%d-%d\n",a,b); swap5(&a,&b);
    printf("%d-%d\n",a,b); swap6(a,b);
    printf("%d-%d\n",a,b);
}



コンパイルした結果

kadai4-2.c(11) : warning C4047: '=' : 間接参照のレベルが 'int' と 'int **' で異
なっています。
kadai4-2.c(11) : error C2106: '=' : 左のオペランドが、左辺値になっていません。
kadai4-2.c(11) : warning C4047: '=' : 間接参照のレベルが 'int **' と 'int' で異
なっています。
kadai4-2.c(11) : error C2106: '=' : 左のオペランドが、左辺値になっていません。
kadai4-2.c(16) : error C2106: '=' : 左のオペランドが、左辺値になっていません。
kadai4-2.c(16) : warning C4047: '=' : 間接参照のレベルが 'int *' と 'int' で異な
っています。
kadai4-2.c(16) : error C2106: '=' : 左のオペランドが、左辺値になっていません。




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


Name: たかぎ [URL]  ..ハッカー(185,246ポイント)   Date: 2010/05/13(木) 14:08   No:52046     
Title: Re:課題がわかりません。    
動作しない理由はコンパイルできていないからです。


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

Name: アンフェア  ..ぴよぴよ(360ポイント)   Date: 2010/05/13(木) 14:25   No:52049     
Title: Re:課題がわかりません。    
上のプログラムで動作しない理由を説明してください。という課題です。



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

Name: たかぎ [URL]  ..ハッカー(185,330ポイント)   Date: 2010/05/13(木) 14:45   No:52051     
Title: Re:課題がわかりません。    
コンパイルできないものは、動作させる以前の問題です。
まずは、コンパイルエラーを解消してください。

実際にエラーが出ている箇所以外にも複数の問題があるようですが、エラーさえとれば、たまたま動く可能性は十分にあります。


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

Name: softya [URL]  ..ハッカー(165,145ポイント)   Date: 2010/05/13(木) 14:46   No:52052     
Title: Re:課題がわかりません。    
>上のプログラムで動作しない理由を説明してください。 という課題です。

動作というのは、コンパイルが正常終了出来て始めて行えることです。
この場合、コンパイルが正常終了していないのだから、動作するはずが無いとたかぎさんはおっしゃられています。

>という課題です。

始めに断りしておきますが、ここの回答者の大半は必要と感じな限り直接答えを書くことはありません(特に課題の場合)。あくまで本人が回答を導き出すのをお手伝いする事です。

コンパイルエラーの原因を調べてください。
アンフェアさんは何が原因だと推測されていますか?


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

Name: たかぎ [URL]  ..ハッカー(185,445ポイント)   Date: 2010/05/13(木) 15:04   No:52053     
Title: Re:課題がわかりません。    
もう一言付け加えておくと、「正しく動作する」というのは、書いたとおりに動作するということです。
書いたとおりに動作しないとすれば、動作させるための手順が違うか、コンパイラに不具合があるか、ハードウェア等プラットフォーム側に故障があるかです。


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

Name: アンフェア  ..ぴよぴよ(415ポイント)   Date: 2010/05/13(木) 17:59   No:52064     
Title: Re:課題がわかりません。    
すみません。まだまだ初心者で手探り状態なんです。


教科書を見たり、エラーを自分なりに色々いじったのですが上手くコンパイルできませんでした。





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

Name: softya [URL]  ..ハッカー(165,193ポイント)   Date: 2010/05/13(木) 18:06   No:52065     
Title: Re:課題がわかりません。    
マルチポストしていませんか?
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1340759928
まず、ここの規約を読み、回答者の方々に失礼の無いように対処してください。
相互参照になさるのがベストだと思います。
あちらの方々も補足を求めてらっしゃるので、補足でちゃんと説明してください。

・コンパイルが通ればよいのですか?
・結果の正当性は不要ですか?
・あなたの求める正しくとはなんですか?
・私の問いにも答えてください。

 編集済み


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

Name: Dixq (管理人)  ..ウィザード(1,186,428ポイント)   Date: 2010/05/13(木) 19:53   No:52070     
Title: Re:課題がわかりません。    
聞かれたことに全て答えるようにした方がスムーズにやり取りが出来ますよ。

答えてくれないと回答者は何度も同じ事を聞かなくてはいけません。

?マークのある文章を全て引用するようにすると漏れなく答えられると思います。


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

Name: アンフェア  ..ぴよぴよ(479ポイント)   Date: 2010/05/13(木) 20:25   No:52073     
Title: Re:課題がわかりません。    
 softya さんすみません。

・コンパイルが通ればいいです。

・結果の正当性は必要です。

・正しくとはコンパイルが上手くいく事です。

・間接参照のレベルが 'int' と 'int **' で異なっています。 
という事は'int'に統一しろってことですか?しかし11行目に'int **' にそんな文章無いのですが。

本当にごめんなさい。皆さんの質問に答えなくって。反省しています。

自分にまだまだ力が足りなく。


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

Name: ookami  ..中級者(12,491ポイント)   Date: 2010/05/13(木) 20:32   No:52074     
Title: Re:課題がわかりません。    
横からすみません。

アンフェアさんの理解度を伺いたいのですが、以下のソースコードを見て(実行せずに)、それぞれの出力結果がわかりますか?
※ 不定の場合は「不定」と回答ください。


#include<stdio.h>

void main(void) {
    printf("Hello, world!\n"); //(1)

    int i,*p;
    p=&i;
    i=3;
    printf("%d\n",i); //(2)

    i=i+1;
    printf("%d\n",i); //(3)
    printf("%d\n",p); //(4)
    printf("%d\n",*p); //(5)
}

まずはここまで。あと、課題の期限はいつですか?不完全燃焼で終わったら残念なので。


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

Name: ookami  ..中級者(12,645ポイント)   Date: 2010/05/13(木) 20:38   No:52076     
Title: Re:課題がわかりません。    
おっと。入れ違いになってしまいました。

> ・コンパイルが通ればいいです。
> ・結果の正当性は必要です。

この二つは矛盾してます。コンパイルが通ってもリンクが通らなかったり、リンクが通っても実行できなかったり、実行できても正当な(期待した)結果になるとは限らないです。

もう一度課題をよく確認することをオススメします。


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,187,111ポイント)   Date: 2010/05/13(木) 21:11   No:52080     
Title: Re:課題がわかりません。    
softyaさんが

> 失礼の無いように対処してください

と仰っているのに、Yahoo!の方削除されていますね・・。
私はリンク先見ていませんが、削除するのは回答して下さった方に申し訳ない行為ですよ。

例えばアンフェアさんが、誰かに何かを教えてあげるためにあれこれ考えてアドバイスを書いてあげたとしましょう。
もう一度アクセスした時そのページが消えていたらどうでしょう?

「せっかく書いてあげたのに・・」

と思わないでしょうか?

ところで、課題は上記プログラムでは動作しない理由を述べるということですよね?
それはきっとコンパイル出来ない理由を述べよということだと思いますが、いかがでしょうか?

であれば、

>・コンパイルが通ればいいです。 

というのはおかしくないでしょうか?
また、上の回答に対して

>・結果の正当性は必要です。 

というのも矛盾していると思います。
上の回答は「コンパイルが通りさえすれば答えはどうでもいい」ということですよね?


>・「正しくとはコンパイルが上手くいく事です。 」

という答えも曖昧で、なかなか円滑な意思疎通が出来ていないようです。
そのような時は抽象的な言葉を無くせばいいですよ。

例えばアンフェアさんに誰かが
「車が壊れたんですが、うまく直せないんです。どうしたらいいですか?」
と聞いてきたら的確に答えられるでしょうか?
それより
「1年ほど放置していた車をかけようと、エンジンキーを回してもスターターが回らないんです。どうしたらいいですか?」
と聞いてくれば
「あぁ、バッテリーがあがってるんじゃないかな」
と推測が出来るのではないでしょうか。

「うまくいきません」「思ったように動きません」「ちゃんとできません」

といった言葉は非常に解りにくい場合が多いです。

ということで今一度情報を整理してみましょう。

・「今自分は何がしたいのか(明確に)」
・「自分はどこまで取り組んだのか(取り組んだ内容を提示)」
・「どこが解らないのか(具体的に)」

ここのところを明確にして下さい。


# ookamiさんの付け加えで
アドレスとポインタについては理解されていますか?
例えば変数に&を付けるとどういう意味になるかなどは大丈夫ですか?


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

Name: softya [URL]  ..ハッカー(165,452ポイント)   Date: 2010/05/13(木) 21:44   No:52086     
Title: Re:課題がわかりません。    
消してしまわれたみたいですが失礼な行為だと思います。残念ですね。

>・コンパイルが通ればいいです。
>・正しくとはコンパイルが上手くいく事です。

コンパイルは文法さえ正しければ、正常に終わります。

>・間接参照のレベルが 'int' と 'int **' で異なっています。 
<という事は'int'に統一しろってことですか?しかし11行目に'int **' にそんな文章無いのですが。

wkと&xの型はそれぞれ何でしょうか?

>・結果の正当性は必要です。

正当性のある結果は、あなたのみが知っています。
課題で提示された仕様が明確ではないので、どの答えが正しいのかもこちらでは判断出来ません。
課題の正確な情報、ソースコードで自分が書いた部分(書き換えても良い部分)、正当と思える答え、あと課題の締め切り日を書いてください。



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

Name: たかぎ [URL]  ..ハッカー(186,196ポイント)   Date: 2010/05/14(金) 00:08   No:52091     
Title: Re:課題がわかりません。    
> ・コンパイルが通ればいいです。 
> ・正しくとはコンパイルが上手くいく事です。 

コンパイルさえ通ればよいのなら、ソースコードをすべて削除し、空のファイルにすればコンパイルは通ります(リンクは通りませんが)。
リンクも通したければ、

int man(void) { return 0; }

とでもしておきましょう。
そういうことを望んでいるのでしょうか?

> ・結果の正当性は必要です。 

上記の通りにすれば、何もせずに終了するという、書いたとおりの正統な結果が得られるはずです。


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



Name: 組木紙織  ..比類無きプログラマー(80,889ポイント)   Date: 2010/05/13(木) 08:16   No:52030       
Title: TryEnterCriticalSection()について    
現在ゲームを作っています。
(なぜか)参考書のダブルバッファリングのサンプルがマルチスレッドになってるので、
マルチスレッドで作っています。

そこで次のような問題が出ました。
クリティカルセクションを扱う関数のうち
InitializeCriticalSection()やEnterCriticalSectionなどは使えるのですが、
TryEnterCriticalSection()を使おうとするともともと存在しないのかコンパイルエラーが起きます。

ミューテックスとWaitSingleObject()のタイムアウトを0に設定することを
代替案として使うことでなんとかなりますが、
なぜこのTryEnterCriticalSection()が使えないのか分かりません。
知ってい方説明をください。

#MSDNには Windows 95/98系ではサポートされてないと書いてあるのですが、
#私の環境はVistaなので(多分)このこととは関係ないと思っています。


以下開発環境
OS:Vista Home Premium

Microsoft Visual Studio 2005
Version 8.0.50727.867  (vsvista.050727-8600)
Microsoft .NET Framework
Version 2.0.50727 SP2
Microsoft Visual C++ 2005   77972-233-0832431-41598
Microsoft Visual C++ 2005


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


Name: たかぎ [URL]  ..ハッカー(185,275ポイント)   Date: 2010/05/13(木) 08:33   No:52036     
Title: Re:TryEnterCriticalSection()について    
コンパイルエラーですか? リンクエラーではなくて。

この手の問題は、

#define _WIN32_WINNT 0x0500 

を定義すれば解消したように記憶していますが、リンクではなくて、コンパイルエラーなら、単なるミススペルとか、別の原因かもしれません。

実行環境がWindows 98だとかVistaだとかは、ビルドの際には何の関係もありませんね。


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

Name: 組木紙織  ..比類無きプログラマー(81,531ポイント)   Date: 2010/05/13(木) 22:40   No:52088 解決!     
Title: Re:TryEnterCriticalSection()について    
>コンパイルエラーですか? リンクエラーではなくて。
間違いなくコンパイルエラーです。
スペルミスとかも色々調べた結果原因が分からなかったので質問させてもらいました。

#define _WIN32_WINNT 0x0500
を定義することでコンパイルエラーが解消され、無事コンパイル&実行できるようになりました。
問題が起きたコードをすべてあげると長いので状況を再現できるコードを作ったので一応あげておきます。
確認をしたい方はどうぞ

/**************************
TryEnterCriticalSection()が使えるかどうかの確認のためのソースコード
***************************/
#pragma comment(lib,"winmm.lib")
//ここのdefineを忘れるとコンパイルエラーになる
//#define _WIN32_WINNT 0x0500  
#include <windows.h>
#include <iostream>
#include <process.h>


CRITICAL_SECTION critical;


unsigned int __stdcall ThreadFunc(void* p_num )
{
    volatile int* num = reinterpret_cast<volatile int*>(p_num);

    int a =0;
    while(*num)
    {
        //    ここのTryEnterCriticalSection()のためにコンパイルエラーが起きる
        BOOL flag = TryEnterCriticalSection(&critical);
        if(flag ==TRUE)
        {
                a++;
        }
        std::cout << a << std::endl;
        Sleep(10);
    }
    std::cout << "end" << std::endl;
    _endthreadex(0);
    return 0;
}


int main()
{
    int num;
    uintptr_t thread;
    InitializeCriticalSection(&critical);
    thread = _beginthreadex( NULL,0,&ThreadFunc,&num,0,0);

    ::EnterCriticalSection(&critical);
    Sleep(1000);
    ::LeaveCriticalSection(&critical);
    Sleep(1000);
    num =0;
    Sleep(1000);
    ::DeleteCriticalSection(&critical);

    return 0;
}

 編集済み


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

Name: 組木紙織  ..比類無きプログラマー(81,607ポイント)   Date: 2010/05/13(木) 23:00   No:52090     
Title: Re:TryEnterCriticalSection()について    
ちょっと調べてみました。
#define _WIN32_WINNT 0x0500 
実行環境を設定するマクロのようです。

http://msdn.microsoft.com/ja-jp/library/6sehtctf.aspx


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



Name: kms  ..中級者(13,933ポイント)   Date: 2010/05/13(木) 08:11   No:52028       
Title: 選択肢をビクンと微妙に動かす計算式について    
龍神録を改造してます。
再び計算式についてお聞きしたいのですが、
東方では選択肢を選んだとき、よ〜〜く見ると
その地点から右に2ピクセルくらい動き、次に
左に-4ピクセルくらい動き、最後に
右に2ピクセルくらい動いて
元の位置に戻るという動作を4カウントくらいかけて行う(ほぼ一瞬で動く)
非常に細かい動作があるのですが
これはどういった計算式で動かしてるのでしょうか?
DXライブラリで可能ならば是非、実装してみたいのですが
プログラムの計算式が思い浮かばず困ってます。
計算に強くて分かる方がいましたら是非教えてください。


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


Name: Justy  ..伝説なるハッカー(529,543ポイント)   Date: 2010/05/13(木) 09:52   No:52039     
Title: Re:選択肢をビクンと微妙に動かす計算式について    
 見たことはないですが、その説明文の通りなら計算式はただの加算でしょう。

 普通に考えれば基準位置からのオフセット移動量を配列に入れて、
毎フレームその配列の値を基準位置と足して表示してもいいでしょう。
 
 或いは表示座標そのものを配列に入れて毎フレームその配列の値を使って
表示してもいいでしょう。
 この場合の計算はしなくていいですね。

 いっそのこと switch-caseで4フレームそれぞれ分けて処理しても
同様のことはできるはずです。


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,186,902ポイント)   Date: 2010/05/13(木) 21:26   No:52084     
Title: Re:選択肢をビクンと微妙に動かす計算式について    
アニメーションはほぼ全て時間かカウンタを使います。
まず動作を始めるタイミングからカウンタを加算させ、そのカウンタによって動きを変化させると良いでしょう。

例えばループに一度count++;があったとしましょう。

countが0か1の時は上昇し、2か3の時は下降するようにすれば、4カウントで上下運動が可能だと思います。
選択肢の画像はどのように管理されているでしょうか?

x,y座標と画像のハンドル格納変数の構造体になっているでしょうか?
もしそうなら、そこにカウンタを一つ持たせてやると良いと思います。


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



Name: Yuu  ..ぴよぴよ(75ポイント)   Date: 2010/05/13(木) 00:25   No:52010       
Title: 宿題が全く分かりません    
「キーボードから単語を入力しては、その中に指定する文字がいくつ含まれるかを調べ、'end'が入力されると終了する」というプログラムを作成するというものです。また、指定する文字のカウントは関数countを定義せすることと、ポインタを利用することとあります。手が出ないので、教えてください。

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


Name: ぽこ  ..中級者(10,705ポイント)   Date: 2010/05/13(木) 00:52   No:52013     
Title: Re:宿題が全く分かりません    
「キーボードから単語を入力し、'end'が入力されると終了する」
プログラムは作れますか?


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

Name: Yuu  ..ぴよぴよ(8ポイント)   Date: 2010/05/13(木) 02:09   No:52018     
Title: Re:宿題が全く分かりません    
それは、なんとか分かるかもしれません

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

Name: 胡椒  ..初心者(7,221ポイント)   Date: 2010/05/13(木) 08:21   No:52031     
Title: Re:宿題が全く分かりません    
分かる範囲だけでもいいのでコードを貼っていただかないと、答える側も答えづらいのでは?

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

Name: たかぎ [URL]  ..ハッカー(185,159ポイント)   Date: 2010/05/13(木) 08:27   No:52034     
Title: Re:宿題が全く分かりません    
> キーボードから

環境に依存しない実現方法はありません。

> 単語を

ここでいう「単語」の定義は?

> 指定する文字

どうやって指定しますか?

> 'end'が入力されると

前後の引用符は含むのですか? 含まないのですか?

> ポインタを利用する

CやC++では、ポインタを利用せずにプログラミングすることは事実上不可能です。
それとも、別の意図があるのでしょうか?


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

Name: Yuu  ..ぴよぴよ(92ポイント)   Date: 2010/05/13(木) 10:12   No:52040     
Title: Re:宿題が全く分かりません    
> キーボードから 

入力してもらうということです。 

> 単語を 

ここでは英単語のことです。

> 指定する文字 

それも、入力してもらいます。 

> 'end'が入力されると 

前後の引用符は含まずに、'end'だけが入力されると終了するようにしたいです。 

> ポインタを利用する 

授業で習ったばっかりなので、先生が書いたのではないかと思われます。




いろいろと不備があり、すいませんでした。


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

Name: バグ  ..ハッカー(196,366ポイント)   Date: 2010/05/13(木) 11:34   No:52042     
Title: Re:宿題が全く分かりません    
とりあえず、開発環境を教えてください。
学校(?)で使用しているOSであるとか、コンパイラであるとか…。
更に細かく言えば、使っていい関数とそうでない関数とか…。

意地悪で言っているのでなく、その辺りのことが分からなければ答えようがないのです。
ですので、円滑にやり取りを進めるためにも、この辺りを記述していただけたらと思います。

それから、ぽこさんの言われている

>>「キーボードから単語を入力し、'end'が入力されると終了する」 
>>プログラムは作れますか?

このプログラムを作ってここにコピペしてもらえますか?そうすることで答える側も指針ができます。


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

Name: たかぎ [URL]  ..ハッカー(185,233ポイント)   Date: 2010/05/13(木) 14:05   No:52045     
Title: Re:宿題が全く分かりません    
> > キーボードから  
> 入力してもらうということです。  

そういうことではありません。
普通のPCならキーボードがありますが、例えばiPhoneならどうしますか?
また、PCであっても、標準入力ではなく「キーボード」ということであれば、OSによって制御方法が変わります。

> > 単語を  
> ここでは英単語のことです。 

では、1とか&も単語とみなしますか?
アルファベットの並びであっても、例えば、ドイツ語やフランス語の単語の場合は英単語ではありませんね。
外来語の場合もあるわけですが、どう判別しますか?

> > 指定する文字  
> それも、入力してもらいます。  

どのように入力するのですか?

> > ポインタを利用する  
> 授業で習ったばっかりなので、先生が書いたのではないかと思われます。 

例えば、関数を呼び出すにも、配列を操作するのも、ポインタを使わなければできません。
つまり、関数countを定義し、それを呼び出すだけでもポインタを使っているわけですが、その認識であっていますか?
 編集済み


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

Name: YuO  ..熟練のプログラマー(45,560ポイント)   Date: 2010/05/13(木) 16:29   No:52060     
Title: Re:宿題が全く分かりません    
情報共有のためのリンク。
http://www3.realint.com/cgi-bin/tarticles.cgi?pointc2+9833


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

Name: たかぎ [URL]  ..ハッカー(185,944ポイント)   Date: 2010/05/13(木) 16:45   No:52061     
Title: Re:宿題が全く分かりません    
なんか、どんどん解決から遠ざかる方向に動いているような...


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,186,760ポイント)   Date: 2010/05/13(木) 21:21   No:52082     
Title: Re:宿題が全く分かりません    
マルチポストもそうなのですが、複数の名前を使って投稿されていますよね。
ここの規約では同じ名前を使って投稿していただくようにお願いしています。

マルチポスト先の掲示板は規約を守りますとチェックを入れないと投稿出来ないのではないかと思いますから、
規約をお読みになっているはずですよね。
何かを利用する時はそこのルールを守る事を心がけて下さい。


さて・・、
どこまでお解りで、どこでつまっていますか?

>それは、なんとか分かるかもしれません

ということですが、解る部分まででいいので書いて投稿してみて下さい。
少しずつ解いていけば必ず解けますので、どこが解らないか明確にしてみましょう。


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



Name: 夢幻る〜ぷ  ..ぴよぴよ(18ポイント)   Date: 2010/05/13(木) 05:01   No:52021       
Title: 無題    
キャラを移動させる所まで、出来ました。
画面の外にまでいってしまいますがw

次にキャラの2画像使って、
動きを出しながら歩かせてみようと思ったのですが、
どのタイミングで画像を切り替えるのかわかりません。
教えていただけないでしょうか?
基本的なことですみません。


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


Name: ookami  ..中級者(11,669ポイント)   Date: 2010/05/13(木) 07:25   No:52023     
Title: Re:無題    
おはようございます。お困りのようですが、(たぶん他の人も)質問があいまいなので何とも答えにくいです。一つずつひもといて行きましょう。

> キャラを移動させる所まで、出来ました

というのは、たぶん講座のページと思いますが、どこの何章とか、ページのURLなどを示した方がよいです。


> 次にキャラの2画像使って、動きを出しながら歩かせてみようと思ったのですが、どのタイミングで画像を切り替えるのかわかりません。

「動き」とはどんな動きなんでしょうか。「どのタイミングで」というのは、「ソースコードのどこを修正したらよいのか分からない」という意味でしょうか??

もし元のソースがあれば示した方がよいです。

この掲示板の利用規約も参考にされるとよいでしょう。


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

Name: 夢幻るーぷ  ..ぴよぴよ(14ポイント)   Date: 2010/05/13(木) 17:39   No:52062 解決!     
Title: Re:無題    
ご返事ありがとうございます。
自己解決しました。
何かあったあらまたよろしくお願いします。


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



Name: Orz  ..ぴよぴよ(36ポイント)   Date: 2010/05/11(火) 12:58   No:51928       
Title: 無題    
まったくの初心者なんですがPC以外で必要なものが
イマイチ把握できていません。
・VisualStudio2005又は2008
・DXライブラリ
の以上2つだけ揃えれば作れるんでしょうか?

また、この2つは購入しないといけないんですか?
フリーのツール等で代用がきくものなどがあったら教えてほしいです。m(_ _)m

それと以前『東方弾幕風』というゲームで弾幕を作ったことがあるのですが
仕組みは全然違うものになりますか?

少しでも似てる点があるなら安心なんですが
プログラミング言語はほぼ素人と言ってもいいぐらいにしかわかりません。

わかりやすい入門書やサイトなどを教えていただけると幸いです。


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


Name: softya [URL]  ..ハッカー(160,182ポイント)   Date: 2010/05/11(火) 13:23   No:51929     
Title: Re:無題    
>また、この2つは購入しないといけないんですか?
>フリーのツール等で代用がきくものなどがあったら教えてほしいです。m(_ _)m

VisualStudio2005又は2008は有料ですが、今だったらVisualC++2008or2010ExpressEdtionは無料で手に入ります。DXライブラリは無料です。なので、無料で開発環境は整います。

「ゲームプログラミングの館」の0章を参考にしてください。
http://dixq.net/g/
で、紹介先に行くとダウンロードできるのは2010だと思いますが、2010だと色々違いがありますので2008をダウンロードするのをお勧めします。
2008のオフラインインストール版のダウンロードはこちら。
http://www.microsoft.com/japan/msdn/vstudio/2008/product/express/offline.aspx

>それと以前『東方弾幕風』というゲームで弾幕を作ったことがあるのですが
>仕組みは全然違うものになりますか? 

全然違います。かなり難しくなりますね。

>わかりやすい入門書やサイトなどを教えていただけると幸いです。 

まず、C言語を勉強する必要があります。それを終えた後でDXライブラリの使い方は、この質問掲示板のサイトの「ゲームプログラミングの館」と「龍神録プログラミングの館」を参考にされれば良いと思います。

C言語のサイトは復数紹介しますので、お好みのサイトで勉強してください。
「苦しんで覚えるC言語(苦C)」
http://homepage3.nifty.com/mmgames/c_guide/
「猫でもわかるC言語プログラミングのサイト」
http://homepage2.nifty.com/c_lang/
「C言語入門」
http://www5c.biglobe.ne.jp/~ecb/c/c00.html
「C言語編」
http://www.geocities.jp/ky_webid/c/index.html
「C言語で始めるプログラミングの基礎」
http://itpro.nikkeibp.co.jp/article/COLUMN/20090420/328713/
「アルゴリズム入門」
http://www5c.biglobe.ne.jp/~ecb/algorithm/algorithm00.html


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

Name: たかぎ [URL]  ..ハッカー(184,930ポイント)   Date: 2010/05/11(火) 17:27   No:51935     
Title: Re:無題    
> ・VisualStudio2005又は2008 
> ・DXライブラリ 
> の以上2つだけ揃えれば作れるんでしょうか? 

どんな環境を対象にして、何を作るかによります。


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,186,248ポイント)   Date: 2010/05/11(火) 20:20   No:51943     
Title: Re:無題    
> の以上2つだけ揃えれば作れるんでしょうか?  

確かに何を作るかによりますが、東方弾幕風の話が出ていることから、東方のようなゲームを作りたいということでしょうか?
それなら、DXライブラリとVC++があれば作れます。

> それと以前『東方弾幕風』というゲームで弾幕を作ったことがあるのですが 
> 仕組みは全然違うものになりますか? 

残念ながら違います。
C言語を知らずにいきなりゲームを作ろうとするととても難しく感じてしまうと思います。
そのかわり、出来る事はとても広がりますし、
弾幕風で培ったアルゴリズム自体は活かせると思います。

今使っているであろうwindowsのようなOSから、家にある洗濯機にあるようなマイコン制御プログラムまでなんでも作れます。

・・とあまりに幅広い話をしても仕方が無いので、ゲームに限定すると、
例えばうちで公開しているゲームはほぼすべてDXライブラリで作っています。

http://dixq.net/sakuhin.html

DXライブラリはにわか知識でそれっぽい物が作れるので本当に重宝します(ぇ
後、うちの龍神録プログラミングの館を参考にして下さったという動画がいくつか上がっています。

http://www.nicovideo.jp/watch/sm8262244

こんなゲームもDXライブラリで作れます。
他にも何か参考にしたければニコニコ動画などで「DXライブラリ」で検索すれば結構ヒットしますよ。


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

Name: Orz  ..ぴよぴよ(37ポイント)   Date: 2010/05/13(木) 09:28   No:52038 解決!     
Title: Re:無題    
すいません、返事が遅くなってしまいました。

作りたいものは東方のようなSTGです。

とりあえずC言語について学習する必要がありそうなので
また一通り学んでわからないことがあったら質問するようにします。

softys、たかぎs、管理人sご回答ありがとうございました。m(_ _)m


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



Name: まっさ  ..ぴよぴよ(463ポイント)   Date: 2010/05/12(水) 12:47   No:51973       
Title: 龍神録で中ボスを出さずにボスのみ出す方法    
が分からなくて困ってるのですが、
boss.appear_count[0]がboss.appear_count[1]に変わるタイミングは
どこで変わってるのでしょうか?
探しても見つからなくて…
50章を使ってます。


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


Name: 胡椒  ..初心者(6,316ポイント)   Date: 2010/05/12(水) 13:01   No:51974     
Title: Re:龍神録で中ボスを出さずにボスのみ出す方法    
boss.appear_count[0]がboss.appear_count[1]に変わるわけではない思います。
例えばboss.appear_count[0]に500を、boss.appear_count[1]に1000を入れたとすると、それぞれの値とカウントが一致したときにボスが出るのではないでしょうか?

これはini.cppのini()関数の中にありますよ。
また、文字列を検索したいときはCtrl+Fで出来るので、利用されると便利ですよ。


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

Name: まっさ  ..ぴよぴよ(611ポイント)   Date: 2010/05/12(水) 13:26   No:51977     
Title: Re:龍神録で中ボスを出さずにボスのみ出す方法    
>胡椒さん
それは理解してるのですが、
それだと、boss.appear_count[0]=500のときに中ボスが
boss.appear_count[1]=1000のときにボスが
必ず出現してしまいます。

boss.appear_count[0]を飛ばして、
boss.appear_count[1]から始める方法が知りたいです。

つまり、ini()関数の部分はコメントアウトして
//boss.appear_count[0]=500;        //中ボスが出現する時刻
  boss.appear_count[1]=1000;    //最後ボスが出現する時刻


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

Name: 胡椒  ..初心者(6,858ポイント)   Date: 2010/05/12(水) 19:28   No:51994     
Title: Re:龍神録で中ボスを出さずにボスのみ出す方法    
すみません、ちょっと質問の意味が分からないというか・・・
まっささん自身が書いている通り、

//boss.appear_count[0]=500;        //中ボスが出現する時刻 
  boss.appear_count[1]=1000;    //最後ボスが出現する時刻

という風にすれば良いのではないのですか?

ただ、これだけだと弾幕を出す順番がめちゃくちゃになってしまうのでboss_shot.cppにあるvoid enter_boss関数のif(stage_count==boss.appear_count[0])の部分をif(stage_count==boss.appear_count[1])にすればよいと思うのですが・・・

また、memset(&boss,0,sizeof(boss_t));によってboss.danmaku_num[0]は0の値が入っているので、この部分も入れておく必要があると思います。


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

Name: まっさ  ..ぴよぴよ(683ポイント)   Date: 2010/05/13(木) 03:00   No:52020     
Title: Re:龍神録で中ボスを出さずにボスのみ出す方法    
>memset(&boss,0,sizeof(boss_t));によってboss.danmaku_num[0]は0の値が入っているので、この部分も入れておく
boss.danmaku_num[0]のみ1を入れる方法はないのでしょうか?


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

Name: 胡椒  ..初心者(6,858ポイント)   Date: 2010/05/13(木) 06:00   No:52022     
Title: Re:龍神録で中ボスを出さずにボスのみ出す方法    
ただ単にboss.danmaku_num[0]=1とすればよいのでは?

Name: まっさ  ..ぴよぴよ(778ポイント)   Date: 2010/05/13(木) 07:41   No:52025     
Title: Re:龍神録で中ボスを出さずにボスのみ出す方法    
すみません。間違えました。

boss.appear_count[0]に1を入れる方法はないのでしょうか?
boss.appear_count[0]の中に1の値を入れるのではなく、
初期化の時に
boss.appear_count[0]の[0]の値を1をいれてboss.appear_count[1]にする方法を
教えていただきたいのですが…


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,186,323ポイント)   Date: 2010/05/13(木) 08:08   No:52027     
Title: Re:龍神録で中ボスを出さずにボスのみ出す方法    
中ボスを出さなくするんじゃなくて、中ボスをラスボスとすればいいのではないでしょうか?
そうすれば中ボスを倒した時点でゲームを終了すれば良いだけになりそうです。
中ボス、ラスボスといっても、現コードでは同じ敵が出てくるだけなので。


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

Name: 胡椒  ..初心者(7,191ポイント)   Date: 2010/05/13(木) 08:13   No:52029     
Title: Re:龍神録で中ボスを出さずにボスのみ出す方法    
まっささんは何か勘違いをしていませんか?
>boss.appear_count[0]の[0]の値を1をいれてboss.appear_count[1]にする方法
これは変数を変数に変えると言う行為です。
memset(&boss,0,sizeof(boss_t));によってboss.danmaku_num[0]だけでなくboss.danmaku_num[1]の値にも0が入っています。

おそらく、まっささんは、龍神録のボスの出現の流れを

boss.danmaku_num[0]に数字を代入する
       ↓
カウントがboss.danmaku_num[0]と一致したら中ボス出現
       ↓
    中ボスを倒す
       ↓
boss.danmaku_num[0]がboss.danmaku_num[1]に代わる   ← この処理は存在しない
       ↓
カウントがboss.danmaku_num[1]と一致したらボス出現
       ↓
     ボスを倒す
       
という風に理解していませんか?
もしそうだとしたら、この流れは違います。

本当の流れは
memset(&boss,0,sizeof(boss_t));でboss.danmaku_num[0]とboss.danmaku_num[1]に0を代入する
              ↓
boss.danmaku_num[0]とboss.danmaku_num[1]に数字を代入する
       ↓
カウントがboss.danmaku_num[0]と一致したら中ボス出現
       ↓
    中ボスを倒す
       ↓
カウントがboss.danmaku_num[1]と一致したらボス出現
       ↓
     ボスを倒す

です。
もし、本当に聞きたいことと違うことだったらすみません 


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

Name: まっさ  ..かけだし(1,071ポイント)   Date: 2010/05/13(木) 08:22   No:52032     
Title: Re:龍神録で中ボスを出さずにボスのみ出す方法    
初めはそうしようと思ったのですが、
stage_count==boss.appear_count[0]){    中ボスならばこうする
stage_count==boss.appear_count[1]){    ボスならばこうする
という処理を面ごと、さらに複雑に沢山色々な箇所に処理を書いてしまって
全てを修正するということになってしまい、とても困ったことになってしまうのです。
一番簡単な方法として、
その中ボスは出現しなく、ボスしか出ない面の時、初期化する箇所で
boss.appear_count[0]を飛ばしてboss.appear_count[1]を
組み込むプログラムがあればいいなと思ったのですが・・

やはり、いきなり中ボスをラスボスにするしか方法はないのでしょうか…?
出来れば中ボスを飛ばしてラスボスを出現させる方法が知りたいのですが…


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

Name: まっさ  ..かけだし(1,095ポイント)   Date: 2010/05/13(木) 08:25   No:52033     
Title: Re:龍神録で中ボスを出さずにボスのみ出す方法    
>胡椒さん
あ…まさしくおっしゃる通りに思ってました。


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



Name: トロイカ  ..ぴよぴよ(445ポイント)   Date: 2010/05/12(水) 21:45   No:51995       
Title: 画像が読み込めない    
初歩の初歩のところでつまずいてます。

LoadGraph()をつかって画像を変数に読み込めない。
デバックを見ると "グラフィックファイル test.bmp がありません"と表示。
int ghandle = LoadGraph( "test.bmp" );
の「ghandle変数」には確かに "-1"が入っていてエラー。

ツールはvisual studio2008。
visual studio2008は Cドライブに
プロジェクトファイルはEドライブに保存してます。

実行ファイルは
E:\documents\Visual Studio 2008\Projects\testgame\Debug\testgame.exe
画像ファイルは
E:\documents\Visual Studio 2008\Projects\testgame\Debug\test.bmp
以上のように同じフォルダに保存。


以下はソースを

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
                LPSTRlpCmdLine, int nCmdShow )
{

    ChangeWindowMode( true );        //ウィンドウモードに指定
    if( DxLib_Init() == -1 )    //Dxライブラリ初期化
    {
        return -1;
    }

    int ghandle = LoadGraph( "test.bmp" );

    AppLogAdd("g = %d\n", ghandle);        //VCの出力画面に表示

    SetDrawScreen( DX_SCREEN_BACK );    //描画対象画面の指定

    
    DxLib_End();    //Dxライブラリ終了処理

    return 0;
}


なぜ読み込めないのかわかりません。
visual studio自体の設定か何かあるのでしょうか?


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


Name: ookami  ..中級者(11,450ポイント)   Date: 2010/05/12(水) 22:15   No:51997     
Title: Re:画像が読み込めない    
こんばんは。とりあえず結論だけ。

E:\documents\Visual Studio 2008\Projects\testgame\Debug\test.bmp

E:\documents\Visual Studio 2008\Projects\testgame\test.bmp

に画像ファイルを移動するとよいです。


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

Name: トロイカ  ..ぴよぴよ(533ポイント)   Date: 2010/05/12(水) 22:59   No:52002 解決!     
Title: Re:画像が読み込めない    
解決できました。
ありがとうございました。

関連書籍などをみながらプログラムを組んでいますが、
そこには、実行ファイルと同じ場所に画像ファイルを保存と書かれていたんですが・・・。




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

Name: ookami  ..中級者(11,864ポイント)   Date: 2010/05/13(木) 07:39   No:52024     
Title: Re:画像が読み込めない    
> 実行ファイルと同じ場所に画像ファイルを保存と書かれていたんですが・・・

正確には「カレントディレクトリ」ですね。もちろん、前後に、「カレントディレクトリを実行ファイルと同じフォルダに設定」するような説明や「実行ファイルを作成するフォルダを変更」するような説明があれば、その書籍の記述も間違ってないかもです。

また、bcc developerではデフォルトでカレントディレクトリにexeファイルが作成されるので、それと混同している可能性もありますかね。

いずれにしろ、設定次第ということです。


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



Name: abc  ..入門者(4,556ポイント)   Date: 2010/05/12(水) 09:57   No:51969       
Title: FTP    
IIS5.1を使用しているのですが、LANケーブルの抜き差しでIISが接続不能になってしまいます。
考えられる要因を教えていただきたいです。

コマンドプロンプトから、FTP 192.111.111.111で最初は入れるのですが、IISサーバー側のLANケーブルの抜き差し後、FTP 192.111.111.111が入れなくなってしまいます。

設定などかかわりそうな所など、なんでもいいのでお願いします。


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


Name: ookami  ..中級者(11,250ポイント)   Date: 2010/05/12(水) 11:40   No:51971     
Title: Re:FTP    
抜き差し後、pingは通りますか? ping 192.111.111.111

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

Name: abc  ..入門者(4,627ポイント)   Date: 2010/05/12(水) 15:11   No:51979     
Title: Re:FTP    
返事ありがとうございます。
Pingは通ります。
ファイアウォールの例外にポート21,22を追加したら現象は起こらなくなったのですが、
理由が分かりません。



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

Name: ぽこ  ..中級者(10,674ポイント)   Date: 2010/05/12(水) 23:24   No:52004     
Title: Re:FTP    
LANケーブルを抜いた直後、FTPサービスの状態はどうなっていますか?
20番ポート、21番ポートはLISTEN状態でしょうか?

WindowsってLANケーブル抜くと、IPアドレスが未設定状態になるので
抜いた時点でFTPやWWWなどのサービスは終わっちゃうと思うのですが。。。


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



Name: Horison  ..ぴよぴよ(125ポイント)   Date: 2010/05/12(水) 00:12   No:51957       
Title: 龍神録がコンパイルできない。    
はじめまして。私は大学生で、最近ゲームプログラミングをはじめて、ここのゲームプログラミングの館を参考にしつつ勉強しています。

ある程度わかってきたので、龍神録プログラミングをやってみようと思い、ここの龍神録Projectをダウンロードしました。解凍してコンパイルしたのですが、ビルドエラーになってしまって始めたくても始められません。

環境
OS:win7 64bit
IDE:visual studio 2010 Express Edition
ビルドエラーの内容
LINK : fatal error LNK1104: ファイル 'libtheora_static_d.lib' を開くことができません。

libtheora_static_d.libが何なのかわからないので困ってます。
VS2010ではコンパイルできないのでしょうか。

どなたかご助言お願いいたします。




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


Name: ookami  ..中級者(11,356ポイント)   Date: 2010/05/12(水) 12:23   No:51972     
Title: Re:龍神録がコンパイルできない。    
直訳としては、設定されているライブラリフォルダの中に、libtheora_static_d.libがない、ということになります。

こちらのスレッドに似た内容があったので、参考になるかもしれません。
http://www.play21.jp/board/formz.cgi?action=quote&resno=35121&id=dixq&quo=35130&lognum=107


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

Name: Horison  ..ぴよぴよ(182ポイント)   Date: 2010/05/12(水) 19:24   No:51993 解決!     
Title: Re:龍神録がコンパイルできない。    
ookamiさん、ありがとうございました。
そのスレッドを参考にしたところ、無事ビルドできました。
ご助言ありがとうございました。


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



Name: なおみち  ..ぴよぴよ(10ポイント)   Date: 2010/05/07(金) 18:53   No:51756       
Title: 東方みたいな・・・・。    
どんな人でもC言語・C++言語(東方プロジェクトみたいな。)弾幕シューティングゲーム(STG)
が作れますかね・・・・・。
一応高校生なのですが・・・。(年齢関係ないと思うけど・・・。)
ちなみに、家のパソコンはコンパイラとテラパットなど、ありますがそれだけで十分ですかね?????
もし作れるなら、夢のようです^−^^−^





教えて頂けたら幸いです^−^


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


Name: たかぎ [URL]  ..ハッカー(183,089ポイント)   Date: 2010/05/07(金) 19:42   No:51757     
Title: Re:東方みたいな・・・・。    
> どんな人でも

無理でしょうね。
世の中にはいろんな人がいますから。

> C言語・C++言語(東方プロジェクトみたいな。)弾幕シューティングゲーム(STG) 
> が作れますかね

弾幕シューティングゲームはともなく、C言語やC++言語も作るということでしょうか?

> 家のパソコンはコンパイラとテラパットなど、ありますがそれだけで十分ですかね????? 

パソコンが具体的に何を指すのか、
コンパイラが具体的に何を指すのか、
テラパットとは何か(TeraPadのこと?)、
によります。

もしかすると揚げ足を取っているように思うかもしれませんが、考えていることを正確に表現できるようにならないとプログラミングは難しいですよ。
↓は一応参考まで
http://www.kijineko.co.jp/tech/superstitions/compiler-is-mind-reader.html

自分でプログラミングしたいのであれば、一般論ではなく、自分の状況をできるだけ詳細かつ正確に説明した上で、どうすればできるようになるかを質問する方がよいと思います。


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

Name: lbfuvab  ..プログラマー(25,729ポイント)   Date: 2010/05/07(金) 19:50   No:51758     
Title: Re:東方みたいな・・・・。    
高校程度の数学が理解でき、
パソコンの操作をほぼ思い通りに出来て、
プログラミングの技能がある程度あれば多分大丈夫です。

結論としては、とりあえず試してみる事をおすすめします。


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

Name: ookami  ..中級者(9,988ポイント)   Date: 2010/05/07(金) 22:54   No:51761     
Title: Re:東方みたいな・・・・。    
こんばんは。私も初心者は大いに応援します。このサイトの講座のページが大変初心者にやさしく、分かりやすいです。壁にぶつかったらまたこの掲示板で質問したらいいと思います。


ただ、なおみちさんの質問文を読むとなんか違和感を感じます。

ちょっとイヤミに聞こえるかもしれませんが、



どんな人でも英語(ジョニー・デップと友達になれるみたいな)話せますかね。
一応高校生なのですが。(年齢関係ないと思うけど。)
ちなみに、家には英語辞書ありますがそれだけで十分ですかね?
もし話せるなら、夢のようです^−^^−^



くらいの違和感です。そりゃ本人の努力次第ですよね。そういうようなことです。こんな言い方しかできなくてごめんなさい。


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,184,912ポイント)   Date: 2010/05/08(土) 13:26   No:51782     
Title: Re:東方みたいな・・・・。    
なおみちさん

こんにちは。私も東方に魅了されて、STGを作りたいと思った人間の一人です。
ですので、東方のようなSTGが作れたらなぁと夢見る気持ちよく解ります。

どんな人でも作れるかと言われるとNoかもしれません。
というのも、

・数学的な知識が全く皆無で、これから先学ぶ気持ちも無い人
・今はやる気でもすぐに3日坊主になってしまう人
・根気よく一つの物を完成させる根性がない人

こんな人には無理だと思います。
プログラムの知識、数学的知識があったとしても、東方レベルの作品を完成させるには
かなりのやる気と根性が必要だと思います。
作っていく過程には壁もあり、忙しくて作れない時もあるでしょう。
それでも負けずに作り続ける根性がいると思います。

しかし全てのNo項目をクリア出来る要素が一つあります。
「やる気とガッツがある人」この人はどんな苦難があっても大丈夫だと思います。
プログラムの知識がなくても、数学的な知識が無くても、「解らない事は学べ」の姿勢で取り組み続けられる人なら
どんなことでもクリア出来ると思います。

ですから、質問の回答としては

Q どんな人でも作れるか?
A No。ただし、やる気と根性があればどんな事でも可

ですかね。まぁ当然のことですけど。

ところで、質問の本質としては、
「プログラムを知らない高校生でもSTG作ろうと思えば作れるかな?」ってことですかね。

ここには小学生でもSTGを作って公開されている人がいらっしゃいます。
STGには三角関数の知識が不可欠ですが、理屈はわからなくても、関数を道具として扱うことで補っていらっしゃるのかもしれません。
プログラムにおける数学的知識は、学校の問題集が解けるかどうかというものではないので、
高校レベルなら全く問題ないと思いますが、数学に自信が無くても補えると思います。

突然東方レベルのゲームが作れるかと言われたらNoでしょうが
(そもそも誰もがあんなゲーム作れたら東方が有名になるはずがありません)
簡単なゲームからなら作る事が出来ますよ。
幸いDirectXやOpenGLなどの複雑なグラフィックライブラリを使わなくてもDXライブラリという簡単に描画出来るライブラリもありますし、
今はネットに情報が沢山あるので、とても作りやすいと思います。

さしあたり何をしていいかわからない時はうちのゲームプログラミングの館をご覧いただけたらよいのではないかと思います。
そこで、何か解らない事とかあれば聞いてください。


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

Name: なおみち  ..ぴよぴよ(103ポイント)   Date: 2010/05/09(日) 10:37   No:51835     
Title: Re:東方みたいな・・・・。    
まぁ〜〜、確かに努力しだいですね。
ちなみに、DXライブラリを手にいれて、解凍も出来たのですが、DxLib_VC2008用.sln
という、ファイルが開けません・・・・。(うちのパソコン。)
開く為には、やっぱりwebの環境が必要なのでしょうか????


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

Name: dic  ..熟練のプログラマー(66,753ポイント)   Date: 2010/05/09(日) 11:29   No:51837     
Title: Re:東方みたいな・・・・。    
パソコン教室行って エクセル、ワードなどの基本的な操作方法から習得するとこをお勧めします

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

Name: Dixq (管理人) [URL]  ..ウィザード(1,185,159ポイント)   Date: 2010/05/09(日) 13:14   No:51843     
Title: Re:東方みたいな・・・・。    
上でコンパイラは既に持っていると仰っていましたが、何のコンパイラをお持ちですか?

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

Name: なおみち  ..ぴよぴよ(217ポイント)   Date: 2010/05/10(月) 16:42   No:51895     
Title: Re:東方みたいな・・・・。    
dicさん、エクセルは学校の授業で習っています。
Dixqさん、僕の兄が“windowsゲームプログラム”と言う入門の本を買ってあって、その本の付属されている
ディスクから、コンパイラをインストールして使用しています。名前は、コマンド プロンプトです。
もしかして、このコンパイラでは駄目でしょうか???


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

Name: softya [URL]  ..ハッカー(159,350ポイント)   Date: 2010/05/10(月) 17:15   No:51896     
Title: Re:東方みたいな・・・・。    
>Dixqさん、僕の兄が “windowsゲームプログラム”と言う入門の本を買ってあって、その本の付属されている
ディスクから、コンパイラをインストールして使用しています。

これですかね?
http://www.sbcr.jp/books/products/detail.asp?sku=4797325453
それとも、こちら?
http://www.sbcr.jp/books/products/detail.asp?sku=4797347593
後者なら、2008なので問題ないです。

>名前は、コマンド プロンプトです。もしかして、このコンパイラでは駄目でしょうか???

コマンド プロンプトは、全部のWindowsNT系のOSに搭載されているMS−DOS互換のOS操作をコマンドで行うためのウィンドウです。決して開発環境じゃありませんし、コンパイラでもありません。

ハッキリしないのであれば、VisualC++ExpressEdtionをインストールしてみてください。
詳しくは、Dixq (管理人)さんの説明を御覧下さい。
http://dixq.net/g/00.html


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,185,503ポイント)   Date: 2010/05/10(月) 20:15   No:51897     
Title: Re:東方みたいな・・・・。    
softyaさんが回答されているのでもう必要ないと思いますが、コマンドプロンプトはどのwindowsにも入っています。
プログラムの実行 で「cmd」と入力するか、「アクセサリ」>「コマンドプロンプト」を選べば出てきます。

よければこちらもご覧ください
http://dixq.net/vcpp.html


そういえば2010になったからこのページも新しくしなきゃ・・


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

Name: なおみち  ..ぴよぴよ(358ポイント)   Date: 2010/05/12(水) 18:14   No:51992     
Title: Re:東方みたいな・・・・。    
教えていただき、ありがとうございます^−^
どうやら、新しい<webで入手する>コンパイラは
環境設備が必要みたいですね。<インターネット接続が必要>
USBに入れる事が出来ませんでした。<当然の結果>
家は、情報不足ですね・・・・。
それでは、お世話になりました^−^<掲示板の皆様方>


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



Name: kms  ..中級者(13,811ポイント)   Date: 2010/05/12(水) 01:33   No:51962       
Title: 東方でいう、一時停止中に微妙に動く計算式について    
龍神録を改造してます。
東方で添付画像の羽の部分が左右?に微妙に動くところがあるのですが
これはDXライブラリでいうと
何の関数は使ってどういった計算式を使えば
このような動きになるのでしょうか?
全く分からなかったので、分かる方がいましたら
よろしければ教えていただけないでしょうか?
よろしくお願いします。


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


Name: 胡椒  ..初心者(6,223ポイント)   Date: 2010/05/12(水) 02:21   No:51963     
Title: Re:東方でいう、一時停止中に微妙に動く計算式について    
一時停止中にカウントをして、それに合わせて画像を動かせばいいのでは?

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

Name: kms  ..中級者(13,994ポイント)   Date: 2010/05/12(水) 03:13   No:51966     
Title: Re:東方でいう、一時停止中に微妙に動く計算式について    
>胡椒
いえ、それは分かっているのですが
例えば、

int DrawRotaGraphFdF2( double xd, double yd, double ExRate, double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE  ) {
    return DrawRotaGraphF((float)xd,(float)yd,ExRate,Angle,GrHandle,TransFlag,TurnFlag);
}

DrawRotaGraphFdF2(63,105,
        1,
        ?
        img_board[1],TRUE);

この?の部分が分からないのです。
多分sinを使っているんだと思うんですが、
計算式が分からなくて困ってます。



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

Name: 胡椒  ..初心者(6,178ポイント)   Date: 2010/05/12(水) 08:33   No:51967     
Title: Re:東方でいう、一時停止中に微妙に動く計算式について    
龍神録を改造しているなら?の部分は
sin(PI2*(cont_cnt%240)/240)*0.5
でできると思います。
cont_cntは一時停止中のカウントです。
240の値を変えると降り速度が変わります。
0.5の値を変えると降り幅が変わります。
一応、私の環境では動作しました。もっと短い計算式があったら、誰かお願いします。


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

Name: たいちう  ..比類無きプログラマー(79,905ポイント)   Date: 2010/05/12(水) 09:00   No:51968     
Title: Re:東方でいう、一時停止中に微妙に動く計算式について    
>もっと短い計算式があったら、誰かお願いします。

多分これでよいのでは? sin(PI2*cont_cnt/240)*0.5
元の式よりもよくなったとは思いませんけどね。


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

Name: kms  ..中級者(14,079ポイント)   Date: 2010/05/12(水) 13:21   No:51976 解決!     
Title: Re:東方でいう、一時停止中に微妙に動く計算式について    
>胡椒さん
>たいちうさん
ありがとうございます。非常に助かりました。
この部分だけでずっと悩み続けて2時間くらい
試行錯誤してましたが、お二方のおかげで
なんとか解決できました。
ありがとうございました! 編集済み


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



Name:  ..ぴよぴよ(463ポイント)   Date: 2010/05/11(火) 22:56   No:51951       
Title: 実行ファイルが作れません    
はじめまして。僕は21歳の大学三回生で、学部は文芸学部でプログラムなどは大学では触っておりません。
高校が工業高校で、そのときはC言語をunixで行っておりました。
今回就職活動でゲーム会社に合格し、後二年後にはゲーム会社で働いているというわけです。
そこで、少しでも動機入社の人と差別化を図るため、ゲームを一人で作ってみようと思い、
このサイトに行き着きMicrosoftVisualC++Expressで基本の部分が終了しました。
そこで実際に行っていたのですが、実際にCDに焼いたり、人に配布したりする際、
その人たちはMicrosoftVisualC++Expressを持っていないわけじゃないですか?
普通ならインターネットでの配布分などは.exeなどの拡張子でありますが、
自分のものはtest.cppとなっております。

そこで.exeという拡張子を作るためにはどのようにすればよいのでしょうか??
超初心者な質問で申し訳ございません。

いろいろとおしえて!goo、YAHOOの知恵袋、こちらの掲示板で調べたのですが、
わかりませんでした…

どなたがご助言お願いいたします。


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


Name: ひよこ  ..比類無きプログラマー(82,906ポイント)   Date: 2010/05/11(火) 23:08   No:51954     
Title: Re:実行ファイルが作れません    
リリースビルドをすることで、開発環境がなくてもできます。
VCではビルドすることで.exeが作成されます。
デバッグビルドではバグを取り除くため、いろいろな開発情報を埋め込みます。開発環境がないと動きません。
リリースビルドはリリースする用なので余分な情報を減らし、普通の環境でも動くようになります。


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

Name:  ..ぴよぴよ(549ポイント)   Date: 2010/05/11(火) 23:55   No:51956     
Title: Re:実行ファイルが作れません    
早速の回答ありがとうございます。

すいません…答えていただいたのに申し訳ございませんがどのように操作すればいいのでしょうか??
デバックでは普通に実行できます。


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

Name: アトラス  ..初心者(5,930ポイント)   Date: 2010/05/12(水) 02:38   No:51965     
Title: Re:    
まず、画像のようにビルドのモード選択の欄があると思うので、「Release」を選びます

次にビルドします(F7を押すか、メニューでビルドを選択)

そうすると、プロジェクトファイルと同じ階層の「Release」フォルダ内にexeファイルが生成されているはずです。

また、配布する際はそのexeファイルと、必要な画像や音声ファイルを一緒に配布すれば良いです。


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



Name: ライス  ..初心者(5,235ポイント)   Date: 2010/05/05(水) 16:23   No:51633       
Title: マップエディタ    
簡単な2DのRPGを制作しようと思っています。
マップはマップエディタで作ろうと思っているのですが、
探し方が悪いせいか、なかなか良いマップエディタが見つかりません。
よろしければ、お勧めのマップエディタを教えてくださいm(_ _)m
内容としては、
・フリー(無料)
・レイヤー機能がある
・当たり判定が設定できる(最低でも通行可,通行不可くらいはできる)
・作成したマップデータをプログラムに組み込める
のような、マップエディタだと嬉しいです!
開発環境は、"Microsoft Visual C++ 2008 Express Edition"で、
ライブラリは、"DXライブラリ"です。
わがままかもしれませんが、よろしくお願いしますm(_ _)m


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


Name: HK  ..かけだし(1,948ポイント)   Date: 2010/05/05(水) 17:24   No:51637     
Title: Re:マップエディタ    
私も以前同じようなことに悩まされて、結局自分でマップエディタを作ってしまいました。
休日を1日使って、1日かければ作れるような簡単なものでしたが、もちろん通行可、通行不可の設定や
自分の欲しい機能も盛り込みました。

プログラミングを始めたての頃に作ったので、一般的な方法とかけ離れてるかもしれませんが我流の方法を
簡単に説明しますと、
@素材チップを入れていく二次元配列、それを保存するためのcsvファイルを用意
A素材をチップ別に通し番号をつけて読み込む。
Bいま作ってるマップと、元の素材を画面に表示して、あとはマウスでペイントのような感覚で塗っていく
CR,Wキーで読み込みや書きだしをする。特定のキーを押して塗ると通行不可になる。など、キーを利用。

こんな感じです。
今作ったらあっさり作れるかもしれません。

自分でつくってみるのも面白いかもしれませんね

めんどうなら良いマップエディタを探すほうがよいかもしれませんが、
以前私もあまり良いのを見つけられなかったので…

直接的な解決法でなくてすみません。


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

Name: ライス  ..初心者(5,367ポイント)   Date: 2010/05/05(水) 17:34   No:51639     
Title: Re:マップエディタ    
いえいえ、参考になりました。
やはり、良いマップエディタを見つけるのは大変なんでしょうかね…。
でも、自分で作れる自身が無いんですよね^^;
まぁ、見つからなかったら自作しかないですよね。
自作する事になったら、参考にさせてもらいます。
ありがとうございました。


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

Name: softya [URL]  ..ハッカー(157,267ポイント)   Date: 2010/05/05(水) 17:37   No:51641     
Title: Re:マップエディタ    
レイヤーと当たり判定を考えるとこれじゃないでしょうか。
「platinum 」
http://www.vector.co.jp/soft/win95/game/se231004.html
当たり判定は専用レイヤーを使います。

ただ、汎用ですのでアニメーションやイベント設定などはツール上で行えません。何らかの工夫が必要です。
あとサンプルがC++ですので、C言語だとドキュメントの不親切な情報を頼りに作るしかありません。

[追記]

RPG作りで問題となるのは、
1.マップの作成。
2.イベントやNPCの配置。
3.シナリオの扱い(全部プログラムorイベントスクリプトを使うのか?)
4.戦闘時のアニメーション処理(全部プログラムでタイミング制御?)
5.敵や自キャラのパラメータ、アイテムなどの管理
6.お店で販売している商品の管理
7.宝箱のアイテムの管理
などなどなんですが、ひとりで作業している分には良いのですが、プロの世界だと1〜7までツールを用意する必要が出てきます。プログラマとゲームプランナーやシナリオ(要するにドラクエの堀井さんの様な人)が別々に作業するためなんです。

アマチュアでも1から3はツール化・スクリプト化を考えないと手間がかかると思いますね。 編集済み


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

Name: ライス  ..初心者(5,379ポイント)   Date: 2010/05/05(水) 18:49   No:51642     
Title: Re:マップエディタ    
なるほど〜。
ご丁寧にありがとうございます。
いろいろ試してみて、自分にやりやすい方法で頑張ってみます!
ありがとうございましたm(_ _)m


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

Name: softya [URL]  ..ハッカー(157,799ポイント)   Date: 2010/05/05(水) 19:27   No:51648     
Title: Re:マップエディタ    
>いろいろ試してみて、自分にやりやすい方法で頑張ってみます! 

レイヤー機能が本当に必要かも考えてみてください。
ドラクエ1ぐらいを作るのなら、必要な機能ではありませんよね。
SFCのFF4〜6とか上を見ちゃうと必要とされるかも知れませんが。

>簡単な2DのRPG
とおっしゃってますので、不要な機能はバッサリ切るのも一つの方法です。


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

Name: ookami  ..中級者(9,739ポイント)   Date: 2010/05/05(水) 19:34   No:51651     
Title: Re:マップエディタ    
私もPlatinumを使っています。

Platinumの標準の出力形式(ppj)はRIFFに準じています。

RIFF形式に関しては以下が参考になるかも。
http://www.umekkii.jp/data/computer/file_format/riff.cgi


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

Name: ライス  ..初心者(5,527ポイント)   Date: 2010/05/05(水) 20:45   No:51656     
Title: Re:マップエディタ    
>不要な機能はバッサリ切るのも一つの方法です。
確かにsoftyaさんの言うとおりですよね。
頭に入れておきます^^

>私もPlatinumを使っています。
ookamiさんもPlatinumを使ってるんですね^^
よろしければ、当たり判定の具体的な設定の仕方を教えてくださいm(_ _)m
(当たり判定用のレイヤーに、フラグを置くことまでは分かったのですが…)
後、作成したマップデータをゲーム使いたいのですが、どのようにして呼び出すのでしょうか?
よろしくお願いします。


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

Name: ookami  ..中級者(9,990ポイント)   Date: 2010/05/05(水) 22:28   No:51665     
Title: Re:マップエディタ    
> よろしければ、当たり判定の具体的な設定の仕方を教えてくださいm(_ _)m  (当たり判定用のレイヤーに、フラグを置くことまでは分かったのですが…) 

たしかに Platinumそのものには、当たり判定の概念はないですので、自分で実装しないといけないですね。当たり判定用のレイヤーのデータを読み込んで、0なら通れる、1なら通れない、といった実装をするイメージでしょうか。


> マップデータをゲーム使いたいのですが
僭越ながら、Platinum の ppjファイルを読み込んで DXライブラリで表示する、というソースコードを公開しております。ご参考ください。(...と言いながら、ぜんぜん自信ないです;;;; 読みにくいかも)

http://oookami.sakura.ne.jp/htm/index.php?pageID=10
「AEn 0.11 ソースコード」リンクでダウンロード。
「aen.sln」を開き、
「stage.cpp」の ppjFile::load でロード、drawStageで描画です。 編集済み


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

Name: ookami  ..中級者(10,131ポイント)   Date: 2010/05/05(水) 22:46   No:51668     
Title: Re:マップエディタ    
追記すいません。

http://www.play21.jp/board/formz.cgi?action=res&resno=51531&page=&id=dixq&rln=51557
↑同じライスさんですよね。

そこまで作ってらっしゃるなら、Platinumでマップデータを(ppjではなく)csv出力して、プログラム側で読み込む、というのがいいかなと思いました。

外部ツールとの連携はなかなか骨が折れるものですよね。最初はできるだけ単純な出力をしてくれるツール(、という意味でもPlatinumでのcsv出力はオススメ) のデータを取り込む、というのがいいと思います。


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

Name: ライス  ..初心者(5,580ポイント)   Date: 2010/05/08(土) 11:22   No:51773     
Title: Re:マップエディタ    
すみません^^;
学校が忙しくて、返事が遅れてしまいました。

ookamiさん、ありがとうございます。
早速、試してみます。


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

Name: ライス  ..初心者(5,621ポイント)   Date: 2010/05/08(土) 12:28   No:51775     
Title: Re:マップエディタ    
すみません、どちらも出来ませんでした…
申し訳ないのですが、具体的なやり方を教えてくださいm(_ _)m
ppj・csvのどちらか1つだけでもお願いしますm(_ _)m


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

Name: softya [URL]  ..ハッカー(158,448ポイント)   Date: 2010/05/08(土) 14:05   No:51784     
Title: Re:マップエディタ    
それが出来ないとすると、もっと簡単なことから始めた方が良いと思います。
前のスレで作ったプログラムのマップ配列の内容をファイル出力してマップファイルを作成できますか?
マップファイルがどういう物か自分で作ってみるのが勉強になると思います。


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

Name: ライス  ..初心者(5,631ポイント)   Date: 2010/05/08(土) 14:17   No:51786     
Title: Re:マップエディタ    
ありがとうございますm(_ _)m
マップファイルについて、基礎から学んでみます。
それを学んで基礎ができてから、またチャレンジしてみますね。


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

Name: softya [URL]  ..ハッカー(158,524ポイント)   Date: 2010/05/08(土) 14:26   No:51787     
Title: Re:マップエディタ    
マップファイルができたら、自分で読み込むプログラムも作ってくださいね。

こんな感じです。

(A)マップファイルを作るプログラム。配列にマップデータを初期値でパターン設定したものを使う。
(B)マップファイルを読み込んで表示するプログラム。マップファイルから配列に読み込んで表示する。配列の初期値は読み込んだことが分かりやすいように0で埋めておくこと。

マップファイルは、最初はテキスト形式が良いでしょう。


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

Name: やっくん  ..上級者(17,681ポイント)   Date: 2010/05/11(火) 17:11   No:51933     
Title: Re:マップエディタ    
横から失礼します。

>アマチュアでも1から3はツール化・スクリプト化を考えないと手間がかかると思いますね。
私が現在製作中のRPGはエフェクトは全て手計算でやってます。マップも数値を自分で打ち込みです。
まさかこんな方法があるとは(^^;
エフェクト、マップ作るのに何度も書き直してコンパイルしてはしんどいですよね><

2つ質問させていただきます。
マップエディタというのはどのような構造になっているのでしょうか?
ここのレスを読むと、マップエディタで書いたマップ画像に対応するマップチップの値でファイルに保存され、それをプログラムで読み込むと解釈しました。

例えば、以下のように。(それとも何か別の情報も色々付加?)

1,1,1,2,3
4,3,1,1,3
1,1,1,1,1
0,0,0,0,0

また、2Dエフェクトを作るツールの場合はファイルに以下のように画像の座標変化を保存して、プログラム側でそれを逐一読み込んでいくのでしょうか。

0.0 0.0
1.0 0.2
3.0 1.3
-以下略-

どちらもいろいろな形式があると思いますが比較的簡単な構造を教えていただけないでしょうか。 編集済み


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

Name: softya [URL]  ..ハッカー(160,926ポイント)   Date: 2010/05/11(火) 17:58   No:51937     
Title: Re:マップエディタ    
マップファイルは最低限、マップチップパーツの情報は必要ですよね。
テキストファイルの前提で説明します。

1,1,1,2,3
4,3,1,1,3
1,1,1,1,1
0,0,0,0,0

これは、マップチップパーツの番号ですかね?
一行に横のパーツ数だけ並んでいて縦は縦のパーツ数並ぶと言った感じでしょうか。
基本はこれだけでOKだと思いますが、次のような物を加えてやると管理が楽になります。

5,4 ← 一行目にマップのサイズを指定する横5パーツx縦4パーツと言う意味になる。
1,1,1,2,3
4,3,1,1,3
1,1,1,1,1
0,0,0,0,0 

更に加える情報として、マップパーツのファイル名を加えてみましょう。

town.bmp ← 街の背景パーツのファイル名。
5,4 ← マップのサイズを指定する。
1,1,1,2,3
4,3,1,1,3
1,1,1,1,1
0,0,0,0,0 

これだけでも十分なんですが更にイベントも加えてみます。

town.bmp ← 街の背景パーツのファイル名。
5,4 ← マップのサイズを指定する。
[map]
1,1,1,2,3
4,3,1,1,3
1,1,1,1,1
0,0,0,0,0 

[event]
0,1,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,2,0,0
0,0,0,0,0

0を踏むとイベントは起きませんが、1か2を踏むとそれぞれのイベントが発生します。
これにシナリオファイルとNPCの発生も考慮してみましょう。

town.bmp ← 街の背景パーツのファイル名。
town.scn ← 街のシナリオファイル
5,4 ← マップのサイズを指定する。
[map]
1,1,1,2,3
4,3,1,1,3
1,1,1,1,1
0,0,0,0,0 

[event]
0,1,0,0,a
0,0,0,0,0
0,0,0,0,b
0,0,2,0,0
0,0,0,0,0

a,bと言うのが街人(NPC)の発生ポイントです。
と言う事で簡単なマップ・イベントファイルの構造編でした。
エフェクトに付いては長くなったので分けます。


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

Name: softya [URL]  ..ハッカー(161,289ポイント)   Date: 2010/05/11(火) 18:17   No:51939     
Title: Re:マップエディタ    
>2Dエフェクトを作るツールの場合はファイルに以下のように画像の座標変化を保存して、プログラム側でそれを逐一読み込んでいくのでしょうか。

エフェクトをデータ化させる場合は、座標もなのですが色々と付加情報を付けとくと便利です。

0.0 0.0
1.0 0.2
3.0 1.3
-以下略- 

これだと座標だけですよね。

X座標 Y座標 エフェクトパーツ番号
でパーツアニメが出来るようになります。
X座標 Y座標 エフェクトパーツ番号 半透明度
で半透明度を変更可能に。
X座標 Y座標 エフェクトパーツ番号 半透明度 加算・減算半透明フラグ
で加算半透明や減算半透明が指定出来ます。

これにレイヤーとかフレーム補間の事も含めるとなお良いのですが、それはここまで理解出来たらまた後日説明したいと思います。






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

Name: やっくん  ..上級者(17,713ポイント)   Date: 2010/05/11(火) 21:25   No:51946     
Title: Re:マップエディタ    
softyaさん、返信ありがとうございます。

とりあえずRPGの戦闘部分におけるソースの形が整っているので、こちらから作ってみようかと思います。


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



Name: 桃尻  ..ぴよぴよ(51ポイント)   Date: 2010/05/11(火) 20:13   No:51941       
Title: 【ポケコン】BEEP音を二重発生    
ポケコンで、BEEP音使って演奏したいなぁと思いました。
でもBEEP音を二重、三重同時に発生させることができません。
できませんっていうか、プログラミングの仕方が全くわからないです。
どうプログラミングすれば、音を多重に出すことができるでしょうか?


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


Name: たかぎ [URL]  ..ハッカー(185,023ポイント)   Date: 2010/05/11(火) 20:17   No:51942     
Title: Re:【ポケコン】BEEP音を二重発生    
とりあえず利用規約を熟読した上で、改めて質問してください。


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

Name: 桃尻  ..ぴよぴよ(66ポイント)   Date: 2010/05/11(火) 20:27   No:51944 解決!     
Title: Re:【ポケコン】BEEP音を二重発生    
すいません出直します;

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



Name: dic  ..熟練のプログラマー(66,566ポイント)   Date: 2010/05/08(土) 19:36   No:51803       
Title: 私の次のプログラムスタイルについて「雑談・相談」    
オブジェクト指向のプログラムもそつなくできるようになりました
が、ゲームとしておもしろい、もしくは効率的なプログラムはできないのか

たとえば、敵の動きを情報をもとに変化する人工知能(無脳?)に関して興味があります
しかし、なかなかいい資料(わかりやすい資料)が見つかりません

googleで調べればいいのでしょうが、私の知識不足でとても時間がかかり
欲しい、得たい情報にたどりつくので精一杯で、疲れてしまい 理解までたどりつけません

ゆっくり読むようにしてますが、時間がかかり、仕事と平行してると無理です

むかしは色んな人がこういった人工知能とかの情報などをブログで発表してて
今参照すると結構 年単位でプログラムをしているみたいです

やはり、私があせりすぎなのでしょうか?


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


Name: softya [URL]  ..ハッカー(158,582ポイント)   Date: 2010/05/08(土) 20:03   No:51805     
Title: Re:私の次のプログラムスタイルについて「雑談・相談」    
>たとえば、敵の動きを情報をもとに変化する人工知能(無脳?)に関して興味があります
>しかし、なかなかいい資料(わかりやすい資料)が見つかりません 

3DのFPSなどリアリティのあるゲームだとAI系のプログラムは重要な課題です。やはり、人と認識できる形のものが間抜けな行動を取るとどうしても目立ってしまいますからね。
それに、2DのSLGやボードゲームの場合も間抜けな行動をされたら難易度の高い思考を望んでいたプレーヤーは興冷めしてしまうでしょう。
しかし他のジャンルだとさほど気にされないと言うか気にしてません。AIと呼べるほどのもので無くても十分楽しんでプレイしてくれます。

>やはり、私があせりすぎなのでしょうか? 

作るものに対して、どのレベルまで作ったり調べたりして良いかの判断に迷っている様に感じられます。今作りたいものに対して、必要な技術なのかと言う点が気になります。

AIやアルゴリズムの本をとりあえず紹介しますね。
「ゲーム開発者のためのAI入門 (大型本)」
http://www.amazon.co.jp/dp/4873112168/
「実例で学ぶゲームAIプログラミング 」
http://www.amazon.co.jp/dp/4873113393/
「地球にやさしいアルゴリズム」
http://itpro.nikkeibp.co.jp/article/COLUMN/20070109/258278/?ST=develop
「ジャンル別ゲームの作り方とアルゴリズムまとめ」
http://d.hatena.ne.jp/seikenn/20090627/1246028707

しょせん現在の人工知能なんて、思考のとも言えないほそのシミュレータですので、適材適所で都合の良いアルゴリズムを選ぶって事が重要です。
※ 人工無脳は、おしゃべりをして楽しむソフトのことです。
http://ja.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E7%84%A1%E8%84%B3


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

Name: dic  ..熟練のプログラマー(66,616ポイント)   Date: 2010/05/09(日) 07:10   No:51829 解決!     
Title: Re:私の次のプログラムスタイルについて「雑談・相談」    
回答ありがとうございます

たしかに楽しんでもらう=高度な技術ではない気がします

AIの前に2Dから3Dへの勉強を積み重ねていきます


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

Name: dic  ..熟練のプログラマー(67,276ポイント)   Date: 2010/05/11(火) 15:53   No:51930     
Title: Re:私の次のプログラムスタイルについて「雑談・相談」    
う〜ん、なかなか進んで3Dの勉強がはかどらないというか
のり気ではないです
なので、とあるゲームの攻略サイトを作りながら楽しく勉強したいと
考え、データベースに関する知識が欲しいと感じました

なので、データベースの初歩から勉強したいと思ったのですが、
なかなか初心者向きの情報が見つからないので
C/C++ もしくは PHP でのデータベースってどういうサイトがあるでしょうか?

もしくは、javaになるのでしょうか?

使い方としては、データベースに関する知識を得て
それを元にサイトを作り
とあるゲームの攻略サイトなどをつくりたいです

条件としては、簡単なものからはじめたいと考えてるので
初心者向きなサイトを紹介してくれたら助かります


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

Name: softya [URL]  ..ハッカー(160,450ポイント)   Date: 2010/05/11(火) 16:40   No:51932     
Title: Re:私の次のプログラムスタイルについて「雑談・相談」    
レンタルサーバを借りる前提で考えるとPHP(言語)とMySQL(データベース)で作るのが良いと思います。C/C++でサイト構築は難しくて面倒なのでお薦め出来ません。
ちなみに、私のサイトの一部はPHPとMySQLで組んでます。CMみたいになりますが御覧下さい。と言ってもソースコードが見れるわけれはありませんが、内容はAmazonから情報を定期取得して発売日順や漫画家別に表示するシステムです。データベースには作家情報や発売される作品情報が蓄えてあります。
http://softyasu.net/ComicNovel/index.php?type=comic&init=yes

自分でプログラムを組まなくてもオープンソースcmsのシステムを組み込むことで比較的簡単に攻略サイトは構築することも出来ます。
http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A1%E3%83%B3%E3%83%88%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0#.E6.B1.8E.E7.94.A8CMS

投稿型なら、PukiWikiとかあります。
http://pukiwiki.sourceforge.jp/
どんなシステムなのかの勉強にもなります。

>条件としては、簡単なものからはじめたいと考えてるので初心者向きなサイトを紹介してくれたら助かります 
とあるので、気長に勉強されるつもりですかね?

●PHP入門については、このあたりから。
PHP4とPHP5のサイトがありますので、注意してくださいね。
http://nyx.pu1.net/
http://www.y2sunlight.com/water/webman/
http://masago.kir.jp/phpmenu.php
http://www.phpbook.jp/tutorial/index.html
http://www.flzphp.com/
最終的にサイト構築時は、このサイトにお世話になりました。
http://www.phppro.jp/

●MySQLについては、この辺りから。MySQL以外にもデータベースがありますので、レンタルサーバ次第なところはあります。
データベースはSQL文と呼ばれるもので操作を行います。MySQLにも4.1系と5.0系がありますので注意。
http://mysqlweb.net/
http://www.atmarkit.co.jp/flinux/index/indexfiles/mysql5index.html
http://mysql.deikou.com/


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

Name: たかぎ [URL]  ..ハッカー(185,002ポイント)   Date: 2010/05/11(火) 17:29   No:51936     
Title: Re:私の次のプログラムスタイルについて「雑談・相談」    
データベースを勉強したいというだけで、何もウェブアプリケーションを作りたいということではないのであれば、SQL ServerやSQLiteの方が扱い易いと思います。


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

Name: dic  ..熟練のプログラマー(67,357ポイント)   Date: 2010/05/11(火) 20:00   No:51940 解決!     
Title: Re:私の次のプログラムスタイルについて「雑談・相談」    
softyaさん たかぎさん
回答ありがとうございます

データベースだけの勉強ではなくて、実際に活用した場合なども一緒に勉強したいので
とてもためになりました

まず、SQLiteから始めて、Web構築に進みます


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



Name: ムンバ  ..熟練のプログラマー(41,287ポイント)   Date: 2010/05/09(日) 00:53   No:51816       
Title: Microsoft Visual C++ 2008 Express Edition のファイルの作成につきましては、後日とさせて頂きたい件    
私的にトラブル発生したので、続きは落ち着いたら質問させて頂きます。
ごめんなさい。(謝 編集済み


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


Name: ムンバ  ..熟練のプログラマー(41,359ポイント)   Date: 2010/05/09(日) 01:26   No:51817     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
編集で、「削除」とあるのに
何で、削除できないのでしょうか?

間違って、送信ボタン押した私が悪いのですが・・・。<(_ _)>


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

Name: ムンバ  ..熟練のプログラマー(41,374ポイント)   Date: 2010/05/09(日) 01:48   No:51818     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
救急車待ちなので、うまくお伝え出来ないかもしれませんが^^;

Name: たかぎ [URL]  ..ハッカー(182,844ポイント)   Date: 2010/05/07(金) 01:44   No:51740    引用  編集  
Title: Re: _TRUNCATE って何ですか?      
 ドキュメントぐらい読む習慣をつけましょう。 
http://msdn.microsoft.com/ja-jp/library/ms175769(v=VS.80).aspx 
 
 
>ドキュメントぐらい読む習慣をつけましょう。

 との事ですが
 ドキュメントとかのサイトが解らない人には
 何処で何を読んで習慣をつければ良いのでしょうか?

 ごめんなさい。
 運ばれます。<(_ _)>

 編集済み


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

Name: たかぎ [URL]  ..ハッカー(183,893ポイント)   Date: 2010/05/09(日) 02:02   No:51819     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
> ドキュメントとかのサイトが解らない人には 
> 何処で何を読んで習慣をつければ良いのでしょうか? 

ヘルプからたどれるはずです。
ヘルプで調べるというやり方は、Windowsアプリケーション共通のものですよね。


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

Name: たかぎ [URL]  ..ハッカー(183,927ポイント)   Date: 2010/05/09(日) 03:52   No:51828     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
> 救急車待ちなので、
> 運ばれます。

何があったんでしょうね。


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

Name: dic  ..熟練のプログラマー(66,786ポイント)   Date: 2010/05/09(日) 11:32   No:51838     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
難しすぎるってことではないでしょうかね
私もそのヘルプわかりませんw


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

Name: たかぎ [URL]  ..ハッカー(183,959ポイント)   Date: 2010/05/09(日) 11:54   No:51839     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
> 難しすぎるってことではないでしょうかね 

Cと国語が分かれば、読めば理解できる内容だと思いますが...
どの辺が難しいのでしょうか?


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

Name: dic  ..熟練のプログラマー(67,062ポイント)   Date: 2010/05/09(日) 12:02   No:51840     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
私だけの回答になりますけど
// crt_truncate.c
#include <stdlib.h>
#include <errno.h>

int main()
{
   char src[] = "1234567890";
   char dst[5];
   errno_t err = strncpy_s(dst, _countof(dst), src, _TRUNCATE);
   if ( err == STRUNCATE )
      printf( "truncation occurred!  \n" );
   printf( "'%s'\n", dst );
}  

ってサンプルありますが、
strncpy_s(dst, _countof(dst), src, _TRUNCATE);
が、まったくわからないです
strcpy_s( buf, "hoge" );
って使い方しか知らないもので
応用がまったくきかないのです

私だけの意見ですけどね


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

Name: たかぎ [URL]  ..ハッカー(183,991ポイント)   Date: 2010/05/09(日) 12:22   No:51841     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
> strcpy_s( buf, "hoge" ); 
> って使い方しか知らないもので 

strncpy_sとstrcpy_sは別物です。
異なる関数からの類推だけでどうにかしようとするのが、根本的な間違いのような...


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,185,295ポイント)   Date: 2010/05/09(日) 13:19   No:51844     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
一度トピックを立てたら私以外は削除出来ないのです。
というのも、宿題など質問をしておいて、答えがわかったらトピックごと削除していく人が以前多かったので、このような仕様にしました。
しかしまだレスが付いていない状態なら削除可能にするなどの方がよかったかもしれませんね。

というか救急車って大丈夫ですか?;

今回トピックを削除した方がよいのでしょうか?たかぎさんとdicさんがよろしければ削除しますが・・。


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

Name: たかぎ [URL]  ..ハッカー(183,998ポイント)   Date: 2010/05/09(日) 13:23   No:51845     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
> 今回トピックを削除した方がよいのでしょうか?たかぎさんとdicさんがよろしければ削除しますが・・。

削除しなくてもよいのでは?


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

Name: dic  ..熟練のプログラマー(67,094ポイント)   Date: 2010/05/09(日) 14:31   No:51852     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
ムンバさんのレス待ちます

私のところは消していいです


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,185,412ポイント)   Date: 2010/05/09(日) 17:51   No:51858     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
そうでしたか、ムンバさんはトピックを消したいと思われているのかと思いまして。
ムンバさんのレスをこのまま待った方がよさそうですねm(_ _)m


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

Name: たかぎ [URL]  ..ハッカー(184,116ポイント)   Date: 2010/05/09(日) 17:54   No:51859     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
いったんは削除しようとしたみたいですが、そのご質問されているので、ムンバさんが帰るまで上げておくべきかと思っています。
まあ、落ちてしまっても再質問されるとは思いますが...


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

Name: ムンバ  ..熟練のプログラマー(42,109ポイント)   Date: 2010/05/09(日) 23:01   No:51868     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
こんばんは。
ご心配お掛けして大変申し訳御座いませんでした。(謝

持病?の尿道結石でした。
カキコの途中で痛くて、のたうち回ってたんで(特に、別スレでのたかぎさん<(_ _)>)
昨日のカキコ、失礼があったら申し訳御座いませんでした。
決して悪意等は御座いませんので、お許しください。

痛くて・・・例えるなら、時計の分針(足)と秒針(手)くらいの速度で
畳の上をのたうち回りながら、カキコしてました。
本当に面目ないです。

尿道結石は2回目だったんで、痛みの出だしは
何となくそうかな?とは思っていましたが
書き込みしてる途中で、痛みが徐々に増してきまして。^^;

他に、昨日の様な痛みが出る感じの持病が・・・

・十二指腸潰瘍(数箇所)←ストレス
・胃潰瘍(一箇所、大きい)←ストレス
・胆石(小さいので、今の所はオペ不要だそうです)←良くあるらしい?

尿管結石と胆石は、痛む場所が違うという事ですが
痛くなったら、とっても痛くなるので
昨日は、何処が痛いか解らなかったです。
しいて言えば「お腹が痛い〜っ!」って感じでした。
子供じゃ〜無いんだから・・・。^^;

自分の病気で救急車乗ったのは、昨日が2回目です。
あの音、ドップラー効果以外に勉強にならないですね。

病院で鎮痛剤を筋肉注射?したら、徐々に楽になりました。
水分たくさん取って、石は排泄されたみたいだったので
嫁に付き添ってもらって、今日の昼には帰宅できました。
早く、ご報告をと思ったのですが飲み薬のせいか?
帰宅後も寝てしまって、レスが遅くなりました。

ご心配お掛けしまして、本当に申し訳御座いませんでした。
解決ボタン、勢いで押してしまいましたが
誠に勝手ながら後日、落ち着いたらレスさせて頂きますので
今日の所は、ご勘弁頂けます様、宜しくお願い致します。

ご心配頂き、どうもありがとう御座いました。



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

Name: たかぎ [URL]  ..ハッカー(184,131ポイント)   Date: 2010/05/09(日) 23:11   No:51869     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
お大事に。
無理しないでくださいね。


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

Name: ムンバ  ..熟練のプログラマー(42,267ポイント)   Date: 2010/05/09(日) 23:15   No:51870     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
もう一言だけ、すみません。

No:51858 の管理人さんの
>>そうでしたか、ムンバさんはトピックを消したいと思われているのかと思いまして。

痛くて続きが書けそうに無かったので何とか消したいと、もがいてただけです。<(_ _)>
お心使い、感謝致します。

病み上がりなんで、起きてると嫁に怒られるので今日は寝てしまいます。
すみませんでした!

===以下、追伸===

たかぎさん、いつもご迷惑おかけして本当にすみません。
どうもありがとうございます。
おやすみなさい!^^ 編集済み


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

Name: ムンバ  ..熟練のプログラマー(42,983ポイント)   Date: 2010/05/11(火) 16:33   No:51931 解決!     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
こんにちは。
ご心配おかけしました。<_ _>

>>ヘルプからたどれるはずです。 
>>ヘルプで調べるというやり方は、Windowsアプリケーション共通のものですよね。

 たかぎさん、いつもご指導ありがとうございます。
 dicさんのレベルまで達していませんので、私からは何とも言えませんが
 dicさんのおっしゃる通り、ヘルプを見ても理解できません。^^;
 が、理解できる様にがんばりたいと思いますので
 また何かあれば、ご面倒でも、ご指導の程
 宜しくお願い致します。

あと、このスレのタイトル
<<Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして
は、自己解決できました。
管理人さん、すみませんでした。
大変ご迷惑をお掛けしましたが
今後とも、ご指導の程、宜しくお願い致します。
失礼します。


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

Name: たかぎ [URL]  ..ハッカー(184,922ポイント)   Date: 2010/05/11(火) 17:26   No:51934     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
> ヘルプを見ても理解できません。^^; 

具体的に、どこまで理解できて、どの辺からわからなくなるのか教えていただければ、もう少し気の利いたアドバイスができるかもしれません。
日本語が読めれば(ものによっては英語なので、英語が読めれば)、まったく理解できないということはないですよね?


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

Name: ムンバ  ..熟練のプログラマー(43,036ポイント)   Date: 2010/05/11(火) 18:00   No:51938 解決!     
Title: Re:Microsoft Visual C++ 2008 Express Edition のファイルの作成につきまして    
たかぎさん、ありがとうございます!
dicさんみたいに、まだ具体例を出せる段階では無いレベルです。
ので、その節はまた宜しくお願い致します。
ありがとうございました。^^


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



Name: 胡椒  ..初心者(5,783ポイント)   Date: 2010/05/09(日) 03:06   No:51827       
Title: ゲームの配信について    
ここのサイトを参考にして作ってみたゲームを、配信したいのですが(といっても友達にだけですが)
どのようにすればよいのか分かりません。

画像や音楽のファイルもありますので、exeのファイルだけを渡すだけにはいきませんよね?

どこか参考に出来るサイトとかありませんか?


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


Name: dic  ..熟練のプログラマー(66,729ポイント)   Date: 2010/05/09(日) 07:19   No:51830     
Title: Re:ゲームの配信について    
配信とあったのでニコニコ動画のようなWeb配信かと思いましたが違うようですね

基本的に必要なのは
exe と それに使われる画像や音楽のファイルのみです

dllなど別途必要になるかもしれないですが
単体テストして起動できるか確認してから渡すのがいいです


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

Name: ookami  ..中級者(10,486ポイント)   Date: 2010/05/09(日) 10:25   No:51834     
Title: Re:ゲームの配信について    
どうやって配布するかによりますね。

友達にだけなら、メールに添付したりCD-Rに入れて渡す、などでしょうか。

ホームページに掲載するようなら、FTPで圧縮ファイルをアップロードして、ダウンロードページからリンクを張るなどですね。また、ファイルを一時保管してくれるサービスもありますから、それならFTPサーバを借りることもなくはじめられますね。

まずは、どのファイルを圧縮したらよいかの確認ですね。そちらの開発環境では、exeファイルを叩いて正常に起動できることは確認できましたか?


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,185,375ポイント)   Date: 2010/05/09(日) 13:45   No:51848     
Title: Re:ゲームの配信について    
配信というか配布するということでしょうか?

実行ファイルと画像や音楽ファイルをzipでまとめて渡せばいいと思いますよ。

例えば「ゲーム」というフォルダを作り、その中にexeファイルと画像・音声ファイルを入れ、フォルダを右クリックしてzipに圧縮すればOKです。

渡す手段としてはアップローダを利用すればよいと思います。
http://www.axfc.net/uploader/
この辺とか定番です。


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

Name: 胡椒  ..初心者(5,878ポイント)   Date: 2010/05/10(月) 04:20   No:51878     
Title: Re:ゲームの配信について    
返信ありがとうございます。
一応、別のフォルダに音楽ファイルと画像ファイルとexeのファイルを移して、起動することは確認できました。

でも、例えば、四聖龍神録Plusのインストール先を見てみると画像ファイルなどはありませんよね。(簡単にいじられたら問題でしょうから)

そのまま渡しても問題はないのですが、勉強のため、どのようにすればあのようなファイル形式に出来るのでしょうか?
紛らわしい質問ですみません(汗)


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

Name: ookami  ..中級者(10,800ポイント)   Date: 2010/05/10(月) 22:14   No:51900     
Title: Re:ゲームの配信について    
DXライブラリの管理人さんが公開されている、DXアーカイブというツールを使う方法があります。画像などのデータが圧縮することができ、DXライブラリでは、そのファイルをフォルダに見立てて扱うことができるようになっています。
http://homepage2.nifty.com/natupaji/DxLib/dxtec.html#T11
(「圧縮する機能が無い」と書いてありますが、容量は減るみたいなんですよね。ハテ。)

四聖龍神録Plusの場合は「dat.dxa」これですね。
なお、データの暗号化については「絶対に破られないということはない」という点だけ留意してください。


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,185,733ポイント)   Date: 2010/05/10(月) 22:31   No:51902     
Title: Re:ゲームの配信について    
ookamiさんの仰る通りで、補足すると、私が配布しているゲームに暗号化は使ったことないです。
アーカイブでまとめてあるのは、単に解凍する時にその方が早いからであって画像ファイルを見られるからとかそういう理由ではないです。

何か参考にしたいと思う方がいらっしゃれば簡単にデコード出来るようにしてあります。

まぁ権利的に細かい性格ならフリーで公開なんてしませんので・・。
素材は館で配布してますし、エアロビートの素材も個人で好きに使っていただいても良いと思っています。

ただしセーブデータは適当に暗号化してあります。
不正に改竄出来たら例えば「がんばってクリアして動画アップしよう」みたいな気がそがれてしまいますから・・。
(例えばSaveDataフォルダにある曲のスコアデータを適当に変更して保存すると添付ファイルのような画面になります)

とは言え、こちらもイタチゴッコで、妥協が必要です。
今実装している暗号化も、改ざんの方法を知っている人ならすぐに解けてしまいます。
あまりに細かく暗号化するとコードも複雑で、計算中の変数に値を代入するのも気を使わなければならないほどになってしまうので、
その辺は妥協しています。


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

Name: 組木紙織  ..比類無きプログラマー(80,362ポイント)   Date: 2010/05/10(月) 23:05   No:51907     
Title: Re:ゲームの配信について    

Windowsだとexeだけではだめな場合があったと思います。(実際に経験しました。)
再配布禁止なものがあってマイクロソフトから落としてインストールしないと
使えない場合もあります。
確かランタイムライブラリをいじくった場合に起きた覚えがあります。
ちょっと気にしておいてください。



セーブデータの改竄だけを見るならCRC32とか使って(簡単な暗号化をかけて)
データが改竄されていないのかを見るという方法もありますね。



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

Name: 胡椒  ..初心者(6,215ポイント)   Date: 2010/05/11(火) 12:57   No:51927 解決!     
Title: Re:ゲームの配信について    
ありがとうございます。
私も絶対に改ざんさせたくない、とかではないのでそこまでこだわる必要もないと思っています。

Dxlibにある機能を使って一つにまとめてみようと重いました。ありがとうございました!


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



Name: トレージャー  ..ぴよぴよ(71ポイント)   Date: 2010/05/11(火) 02:59   No:51920       
Title: C言語での3整数の平均値の小数表示    
初めまして。私、C言語入門者クラスの者です。

このC言語プログラムの平均値aveを小数点で出したいのですが、
aveに小数用のキャスト演算子かけているのに整数値で出てしまうのです…
どこに問題があるかご教授お願い頂けますでしょうか…?

OSはXP
コンパイラはAOKのC言語を始めよう!
です。

/*3つの整数値を読み込んで合計値と平均値を表示*/

#include<stdio.h>
int main(void)
{
int na,nb,nc;
int sum;/*合計値*/
double ave;/*平均値*/

puts("3つの整数を入力してください。");
printf("整数A:"); scanf("%d",&na);
printf("整数B:"); scanf("%d",&nb);
printf("整数C:"); scanf("%d",&nc);

sum=na+nb+nc;
ave= (double)sum/3; /*キャスト*/

printf("それらの合計は%5dです。\n",sum);
printf("それらの平均は%5.lfです。\n",ave);

return(0);

}


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


Name: 組木紙織  ..比類無きプログラマー(80,475ポイント)   Date: 2010/05/11(火) 03:05   No:51921     
Title: Re:C言語での3整数の平均値の小数表示    
sum/3

sum/3.0


解説をすると
sum/3 の部分は(整数)/(整数)の計算となるので(整数)で結果が帰ってきます。
この時点で結果は整数になります。

それを実数型にキャストしたら。整数の値を持つ実数型になります。


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

Name: トレージャー  ..ぴよぴよ(124ポイント)   Date: 2010/05/11(火) 03:14   No:51922 解決!     
Title: Re:C言語での3整数の平均値の小数表示    
組木紙織さん、ご回答ありがとうございます。
大変良く分かりました。この場合キャストしても同じなのですね。
つまり参考書の誤植だったのですね…
迅速かつ的確なご回答ありがとうございましたm(__)m


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

Name: フリオ  ..プログラマー(32,769ポイント)   Date: 2010/05/11(火) 06:33   No:51923     
Title: Re:C言語での3整数の平均値の小数表示    
 
 キャスト演算子 () は、除算演算子 / より優先度が高いので
ave= (double)sum/3;
で問題ありません。

表示が整数になるのは、
printf("それらの平均は%5.lfです。\n",ave); 
の、精度が空になっているので %5.0lf と解釈されたからです。
 編集済み


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

Name: たかぎ [URL]  ..ハッカー(185,017ポイント)   Date: 2010/05/11(火) 08:00   No:51925     
Title: Re:C言語での3整数の平均値の小数表示    
本当に書籍に書いていたコードなのでしょうか?
だとすると、その書籍のコードは一通り疑ってかかった方がよいかもしれません。
http://www.kijineko.co.jp/tech/superstitions/printf-format-for-double.html


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

Name: toyo  ..熟練のプログラマー(45,972ポイント)   Date: 2010/05/11(火) 09:10   No:51926     
Title: Re:C言語での3整数の平均値の小数表示    
Lの小文字と数字の1は紛らわしいですよね
子供の教科書見たら容積を表すリットルも大文字表記になってました
ミリリットル=mL
ということで1とlの誤植かも


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



Name: ホル  ..ぴよぴよ(42ポイント)   Date: 2010/05/10(月) 10:50   No:51887       
Title: ハフマン木のencode部分    
ハフマン木のEncode部分のプログラムの空白の部分に何を書けばその通りにできるのかがわかりません。

わかるかたご教授願えると幸いです。 編集済み


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


Name: ookami  ..中級者(10,550ポイント)   Date: 2010/05/10(月) 12:17   No:51890     
Title: Re:ハフマン木のencode部分    
こんにちは。このあたりは参考になりますでしょうか?
http://akademeia.info/index.php?%A5%CF%A5%D5%A5%DE%A5%F3%A5%A2%A5%EB%A5%B4%A5%EA%A5%BA%A5%E0

あと、パッと見、nodeの定義がないような。


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

Name: ホル  ..ぴよぴよ(56ポイント)   Date: 2010/05/10(月) 20:59   No:51898     
Title: Re:ハフマン木のencode部分    
ヘッダーファイルを作っていたけど載せるの忘れてました…。

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

Name: ホル  ..ぴよぴよ(174ポイント)   Date: 2010/05/10(月) 21:04   No:51899     
Title: Re:ハフマン木のencode部分    
連投申し訳ありません。
上記のパスワード設定前に投稿してしまったため編集できませんでした。

ookamiさんのサイトはとても参考になりました。

しかし、データの大きさを8ビットに抑える場合、一回目の圧縮で8ビットに収まらなかったとき、
次にもう1回、1回目に圧縮したデータをさらに圧縮する方法がわかりません。

そのソースの書き方などをどなたか教えてもらえないでしょうか?


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

Name: ookami  ..中級者(11,121ポイント)   Date: 2010/05/10(月) 23:18   No:51908     
Title: Re:ハフマン木のencode部分    
ハフマン木なのにビット数を限定してはあまり意味がないような...?私が理解していないだけなのかもしれませんが、基本的には何bitでも対応できるように作るべきかと思います。

あるいは、8bitに抑えられるように、元データの1文字ずつではなく数文字のまとまりをパターンとして扱うかですかね。その場合のアルゴリズムは想像つきませんが...;


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

Name: たいちう  ..比類無きプログラマー(79,873ポイント)   Date: 2010/05/10(月) 23:55   No:51913     
Title: Re:ハフマン木のencode部分    
> しかし、データの大きさを8ビットに抑える場合、一回目の圧縮で8ビットに収まらなかったとき、
> 次にもう1回、1回目に圧縮したデータをさらに圧縮する方法がわかりません。

> そのソースの書き方などをどなたか教えてもらえないでしょうか?

原理的にそんな方法はありません。
圧縮を繰り返すことで、いくらでも小さく可逆圧縮できると思いますか?

一回目の圧縮をしているプログラムを載せてもらえれば、
改善点を指摘できるかもしれません。


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

Name: ホル  ..ぴよぴよ(210ポイント)   Date: 2010/05/11(火) 07:07   No:51924 解決!     
Title: Re:ハフマン木のencode部分    
原理的に無理なんですか…。

もう1回初めから考えなおしてみます。


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



Name: ゆうき  ..入門者(2,652ポイント)   Date: 2010/05/11(火) 01:00   No:51917       
Title: C++の基本的な事に付いて    
プログラミング初心者です。

VC++2008 Express Editionを使用しています。

プログラムがソースファイルとヘッダーファイルとリソースファイルで形成されていますが
いずれも複数作れるようです。
例えばソースファイルを追加し2個、3個と複数作っていく場合、どのような効果を期待できるのでしょうか?

というのは、自分は一つのソースファイルでプログラムを作成していて(といってもお粗末な物ですが‥)、上から下に順に実行され、そして終わるものだと勝手に思っているので、ソースファイルが別のところにもある場合、それがどのような相互関係を持つものなのかなど、色々な疑問が湧いてしまいます。

つたない者ですが、どうぞよろしくお願いします<m(__)m>




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


Name: たかぎ [URL]  ..ハッカー(184,953ポイント)   Date: 2010/05/11(火) 01:24   No:51918     
Title: Re:C++の基本的な事に付いて    
いろいろな効果を期待できますが、わかりやすいものだけ...

今回、ひとつのソースファイルの中にすべて詰め込んだとしましょう。
次回以降の開発では、今回作ったコードは一切使わず、毎回ゼロから作りなおすのでしょうか?
そうではなく、再利用するのであれば、ひとつのソースファイルに詰め込まれたなかから探し出し、必要な依存関係を正確に洗い出して、コピー&ペーストすることになりますが、それがよい方法でしょうか?

あるいは、こういうこともあります。
ひとつのソースファイルに全部詰め込むとしましょう。コードは50万行あります。ファイルサイズは5Mバイト以上あります。
このソースファイルをエディタで開くときは、しばらくPCがフリーズしたようになります。
また、たった1文字修正するだけで、全ソースコードをコンパイルしなおすことになりますので、大変時間がかかります。
これはよい方法でしょうか?

他には...
プログラムを数名のチームで開発しています。ソースファイルはもちろんひとつです。
各自がバラバラに編集してつじつまがあわなくなるのを避けるため、誰かがソースファイルを編集している間、他のメンバは閲覧のみ許可されます。これによって、同時更新問題を回避します。
もちろん、全メンバが並列に編集作業を行うことはできませんので、非常に時間がかかります。
別の場所で自分が扱う部分だけを編集しておいて、後でくっつけるという作戦を取ろうとしますが、くっつける時点では、元のソースが変わってしまっているので、つじつまをあわせるのはやはり大変です。なかなかコンパイルも通りません。
これは正しい方法でしょうか?


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

Name: ゆうき  ..入門者(2,780ポイント)   Date: 2010/05/11(火) 02:43   No:51919     
Title: Re:C++の基本的な事に付いて    
ご回答ありがとうございます!

複数のわかりやすい例を挙げてもらったので、なんとなくニュアンスがつかめた気がします。

"なんとなく"という状況ではありますが、その重要性は強く感じました。

この件についてはもっと具体性のある議論ができるくらいに自習してから、またここで質問させて頂きます。






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



Name: HK  ..入門者(3,819ポイント)   Date: 2010/05/09(日) 02:06   No:51820       
Title: 3D背景で画像のつなぎ目が汚い    
こんにちは。たびたびお世話になっておりますHKといいます。
龍神録の3D背景に関する章を読んで一応理解できたので改造に着手しました。
龍神録の3D背景はディスプレイに関して垂直方向にしか移動しておらず
不自然(?)な感じだったので、地面に角度を持たせて色々いじったところ
本家の東方のような3D背景を再現できました。しかし、画像の位置がズレているのか、
画像と画像のつなぎ目に黒線が入ってしまってます。どう改善すればよいでしょう。

龍神録のサンプルを利用させてもらってます。
改造箇所は、Objectに新しく@角度Angle Aスクロール速度Speed 
BCD画像を描画する位置の基準となる座標 GraphX,Y,Z という情報を持たせました。

初期化部分--------------------------------------



for(s=0; s<Ob->ObchindMax; s++){
    Ob->ObChild[s].x = GraphX;
  Ob->ObChild[s].y = GraphY + Ob->LargeY*2 * sin(Ob->Angle) * s;
  Ob->ObChild[s].z = GraphZ + Ob->LargeY*2 * cos(Ob->Angle) * s;
        for(i=0; i<6; i++){
    Ob->ObChild[s].Vertex[i].r = 
    Ob->ObChild[s].Vertex[i].g = 
    Ob->ObChild[s].Vertex[i].b = 
    Ob->ObChild[s].Vertex[i].a = 255;
       Ob->ObChild[s].Vertex[i].u = ou1 + ou2 * VtPm[i].u;
        Ob->ObChild[s].Vertex[i].v = ov1 + ov2 * VtPm[i].v;
        }
    }

・
・
・
---------------------------

計算部分------------------------
・
・
・
for(t=0; t<ObjectNum; t++){
  for(s=0; s<Object[t].ObchindMax; s++){
    Object[t].ObChild[s].z-=Object[t].Speed*cos(Object[t].Angle);
    Object[t].ObChild[s].y-=Object[t].Speed*sin(Object[t].Angle);
            for(i=0;i<6;i++){
                switch(Object[t].Type){
                    case 0://地面

         Object[t].ObChild[s].Vertex[i].pos.x = Object[t].ObChild[s].x + Object[t].LargeX * VtPm[i].x ;    
    Object[t].ObChild[s].Vertex[i].pos.y = Object[t].ObChild[s].y + Object[t].LargeY * sin( Object[t].Angle ) * VtPm[i].y ;
    Object[t].ObChild[s].Vertex[i].pos.z = Object[t].ObChild[s].z + Object[t].LargeY * cos( Object[t].Angle ) * VtPm[i].y ;
                        break;
                }
            }
        }
        if( Object[t].FromZ - Object[t].FadeFromZ <= 0 ){
            printfDx("Object[%d].Fromの設定がおかしい\n",t);
        }
        else if( Object[t].FadeToZ - Object[t].ToZ <= 0 ){
            printfDx("Object[%d].Toの設定がおかしい\n",t);
        }
        else{
            for(s=0; s<Object[t].ObchindMax; s++){
                //yが GraphY から画像1枚分小さい位置に来たら
                if(Object[t].ObChild[s].y < Object[t].GraphY - Object[t].LargeY*2 * sin(Object[t].Angle)){
   Object[t].ObChild[s].y = Object[t].GraphY + (Object[t].LargeY*2) * sin(Object[t].Angle) * (Object[t].ObchindMax-1);
   Object[t].ObChild[s].z = Object[t].GraphZ + (Object[t].LargeY*2) * cos(Object[t].Angle) * (Object[t].ObchindMax-1);
                }
       }



・ 編集済み


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


Name: HK  ..入門者(3,766ポイント)   Date: 2010/05/09(日) 02:41   No:51824     
Title: Re:3D背景で画像のつなぎ目が汚い    
冷静に考えて、初期化の時と、近づきすぎたらZ方向奥に飛ばす処理の時に、
3ピクセルほど縁を重ねればいいんじゃないかと思って実践したところ、
改善されました。綺麗に。


でもなんで画像をピッタリ並べると隙間ができるんでしょう…


上で書き損じましたがVC++2008EEでやってます。 編集済み


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

Name: ookami  ..中級者(10,988ポイント)   Date: 2010/05/10(月) 23:02   No:51905     
Title: Re:3D背景で画像のつなぎ目が汚い    
こんばんは。Object[t].ObChild[s].Vertex[i].pos.zのところで (zなのに、) cosの係数がYになっているので一瞬戸惑いましたが、理解しました。

HKさんの前の質問↓を探したら、プ、プロい...
http://www.play21.jp/board/formz.cgi?action=res&resno=51622&page=30&lognum=&id=dixq&rln=51671

ということで、並みのケアレスミスなんぞではないと思うので、もうDXライブラリの仕様なのではないかと。確認として、固定値で「画像をピッタリ並べ」ようとしても、やはり線が出てしまうか、あとは元画像のサイズによって結果が変わらないか、くらいですかね。


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

Name: HK  ..入門者(3,775ポイント)   Date: 2010/05/10(月) 23:27   No:51910 解決!     
Title: Re:3D背景で画像のつなぎ目が汚い    
返信ありがとうございます!

何度か試したところ、やはり画像の端っこは少し重ねたほうが綺麗になるっぽいです。
んー


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

Name: Justy  ..伝説なるハッカー(528,991ポイント)   Date: 2010/05/11(火) 00:17   No:51915     
Title: Re:3D背景で画像のつなぎ目が汚い    
>やはり画像の端っこは少し重ねたほうが綺麗になるっぽいです
 普通はそんなことはないはず、なんですけどね。
 
 黒線というのは、添付のキャプチャの自機の下に入っている黒ラインですか?
 うーん、まず確認する項目としては
 
・ テクスチャサイズが 2のべき乗かどうか
・ IniObjに渡している ImgX1 / ImgY1 / ImgX2 / ImgY2 / ImgSizeの値は合っているかどうか

ってところでしょうか。


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

Name: ookami  ..中級者(11,223ポイント)   Date: 2010/05/11(火) 00:33   No:51916     
Title: Re:3D背景で画像のつなぎ目が汚い    
自分の記事を読み返してみたら「プロならケアレスミスしない」みたいな超理論を展開してしまってました。自分の首を絞めないうちに取り消します。すみませんでした。

あらためて添付を見てみると、x方向にはピッタリくっついてますね?

したら、y,zの初期値に問題がある可能性はないですか?


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



Name: ggg  ..かけだし(1,588ポイント)   Date: 2010/05/10(月) 01:22   No:51874       
Title: このエラーはどうゆう意味・・・    
DXライブラリでゲームを作ろうとしてます
と、ゆうことでまずは一番簡単と思われるノベルゲームに挑戦してます

ソースはこんな感じです↓
#include "DxLib.h"

struct mystruct {
    char bun[256];
    int boi;
};

struct mystruct s[2];

int i,White;
char Key[256];
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
        if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //初期化処理
 
        White=GetColor(255,255,255);//白色習得


        s[0].bun = "テスト。";
        s[0].boi=LoadSoundMem( "test1.wav" );
        s[1].bun = "テスト2。";
        s[1].boi=LoadSoundMem( "test1.wav" );
        
        int img = LoadGraph("メッセージボックス.png");//メッセージボックス
        int img2 = LoadGraph("背景.png");//背景
        
        SetDrawScreen( DX_SCREEN_BACK );//裏画面に設定
 
        while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
              //↑メッセージ処理         ↑画面をクリア           ↑キーボード入力状態取得      ↑ESCが押されていない
 
            DrawGraph(0,0,img2,FALSE);//背景描写
            DrawGraph(0, 338, img, TRUE);//メッセージボックス描写

            for(i=0;i<1;i++){
                 DrawFormatString(10,400,s[i].bun,White);//文章表示
                PlaySound( s[i].boi, DX_PLAYTYPE_BACK );//ボイス再生
                if( Key[ KEY_INPUT_RETURN ]  == 1 ) ;
            }



             ScreenFlip() ;


        }

        DxLib_End();
        return 0;
}

これをデッバグすると
1>------ ビルド開始: プロジェクト: ゲーム作成, 構成: Debug Win32 ------
1>コンパイルしています...
1>ゲーム作成.cpp
1>c:\noberu\ゲーム作成.cpp(19) : error C2440: '=' : 'const char [9]' から 'char [256]' に変換できません。
1>        この変換が可能なコンテキストはありません。
1>c:\noberu\ゲーム作成.cpp(21) : error C2440: '=' : 'const char [10]' から 'char [256]' に変換できません。
1>        この変換が可能なコンテキストはありません。
1>c:\noberu\ゲーム作成.cpp(36) : error C2664: 'DxLib::DrawFormatString' : 3 番目の引数を 'char [256]' から 'int' に変換できません。(新しい機能 ; ヘルプを参照)
1>        この変換が可能なコンテキストはありません。
1>c:\noberu\ゲーム作成.cpp(37) : error C2665: 'PlaySoundA' : 2 オーバーロードのどれも、すべての引数の型を変換できませんでした
1>        c:\users\documents\dxlib_vc\プロジェクトに追加すべきファイル_vc用\dxlib.h(2900): 'int DxLib::PlaySoundA(const char *,int)' の可能性があります。
1>        引数リスト '(int, int)' を一致させようとしているとき
1>c:\noberu\ゲーム作成.cpp(39) : warning C4390: ';' : 制御が空の文が見つかりました。意図した記述でしょうか?
1>ビルドログは "file://c:\noberu\Debug\BuildLog.htm" に保存されました。
1>ゲーム作成 - エラー 4、警告 1
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
とゆうエラーが出てしまいます

これはどうやって解決するのですか?

何か初歩的なことですいません

あとC言語の勉強でお勧めの本があったら教えてください


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


Name: たかぎ [URL]  ..ハッカー(184,219ポイント)   Date: 2010/05/10(月) 01:36   No:51875     
Title: Re:このエラーはどうゆう意味・・・    
> これはどうやって解決するのですか?

まずは、C++の文字列の扱いをしっかり復習してください。
あと、DXライブラリのドキュメントもちゃんと読んでください。

> あとC言語の勉強でお勧めの本があったら教えてください

『新版 明解C言語 入門編』がおすすめです。

ついでに国語も復習しましょう。

× どうゆう意味
○ どういう意味

× ゆうことで
○ いうことで


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

Name: シノニム  ..入門者(4,864ポイント)   Date: 2010/05/10(月) 23:24   No:51909     
Title: Re:このエラーはどうゆう意味・・・    
>これはどうやって解決するのですか?

これはたかぎさんの仰っているいる通り、もう一度文字列について勉強しなおした方がてっとり早いと思われます。ソースを見たところ、エラーというより勉強不足と言う言葉が当てはまるような内容になっていますので

とりあえず、なんでもかんでもINT型で定義するのを即やめるべきだと思います。音声なら音声、画像ならと使うファイル形式によって変数の型は異なります。その点も調べてみてくださいね

>あとC言語の勉強でお勧めの本があったら教えてください

Cの絵本などは分かりやすかったと思います。gggさんはこのレベルからやり直したほうがいいと思われます

それと質問の仕方についてですがちゃんとサイトの約束事は読みましたか?OSや開発環境、自分のプログラミング知識の程など抜けていることだらけです。しっかりルールを守ってください


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,185,932ポイント)   Date: 2010/05/10(月) 23:52   No:51912     
Title: Re:このエラーはどうゆう意味・・・    
> gggさん

WIN32プロジェクトでは確認しにくい事が多いので、C言語の基本についてはコンソールアプリケーションで作成されてはいかがでしょうか?
「C言語 入門」で検索すると沢山入門サイトが出てきます。

= "aaa";

で代入すると書き込み禁止領域にあるaaaという文字列のアドレスを代入することになります。
今やりたいことはそうではなく、おそらく文字列のコピーだと思います。
文字列のコピーにはstrcpyを使います。
http://www9.plala.or.jp/sgwr-t/lib/strcpy.html

またDrawFormatStringに渡す引数が間違っています。
公式リファレンスで確認してみてください。
http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html

更に、一度読みこんだデータから音楽を再生する時はPlaySoundMem関数を使用します。
関数の使い方が解らない時は、上記リファレンスを参考にしてみてください。

最後に、正しくない日本語をお使いなのはわざとなのだと思いますが、
出来るだけ正しく真面目に文章を書いた方が良い回答が集まりますよ。



> シノニムさん

LoadSoundMemやLoadGraphの返り値はハンドルなので、int型で正しくないでしょうか?


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

Name: たかぎ [URL]  ..ハッカー(184,429ポイント)   Date: 2010/05/11(火) 00:16   No:51914     
Title: Re:このエラーはどうゆう意味・・・    
ちなみに、DXライブラリを使う場合は、C言語ではなくC++を使うことになります。
C言語ではできたことでも、C++ではできないという場合が多々あります(もちろん逆も)。
特に、ポインタ関連の型変換はそうした部分が大きいので要注意です。

> 最後に、正しくない日本語をお使いなのはわざとなのだと思いますが、

仮にわざとだとすれば、他のすべての部分が正しくない可能性がありますね。
結局何がいいたいのか不明確になってしまいますので、やはり正しい国語の復習が不可欠です。
たまたま間違ったのなら、しかたないと思いますが...


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



Name: ゆうき  ..かけだし(1,889ポイント)   Date: 2010/05/09(日) 02:11   No:51821       
Title: exeファイルの場所    
プログラム、もの凄い初心者です。

作ったプログラムはデバッグでコンパイル、実行しているようですが
コンパイルしてできたexeファイルはどこに格納されているのですか?

DXライブラリのサイトではDebug?のフォルダにあるうんぬん書いてあったので
Debugのフォルダをみると複数のファイルがでて来て、その中にexeファイルがありましたので、それをとりあえずデスクトップに送り
開いてみるのですが、何も表示されない真っ暗なウィンドウがでるだけです。

もちろんプログラムの内容(デバッグしたときの結果)とは違います。
不明な事の為、話のポイントがどこにあるのかすらわからなく
的外れな事を書いているかもしれませんがよろしくお願いします<m(__)m>


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


Name: たかぎ [URL]  ..ハッカー(183,921ポイント)   Date: 2010/05/09(日) 02:20   No:51822     
Title: Re:exeファイルの場所    
> 開いてみるのですが、何も表示されない真っ暗なウィンドウがでるだけです。 

どんな環境で、どんなプログラムを書いて、どんな結果を期待したのでしょうか?


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

Name: HK  ..入門者(3,701ポイント)   Date: 2010/05/09(日) 02:27   No:51823     
Title: Re:exeファイルの場所    
プログラムは最初に
「自分のいるディレクトリ(フォルダ)を基準に、
何個か上のディレクトリにあるファイルを読み込んだり
何個か下のディレクトリにあるファイルを読み込んだり……  」
というような事をするので、基準の場所を変えたらだめです。

デスクトップにやったことがダメです。
slnと同じ階層に置くならおkだと思います。


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

Name: lbfuvab  ..プログラマー(25,801ポイント)   Date: 2010/05/09(日) 02:59   No:51825     
Title: Re:exeファイルの場所    
デスクトップに置いても出来ますが、その時はカレントディレクトリの設定をすべきですね。

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

Name: ゆうき  ..かけだし(2,282ポイント)   Date: 2010/05/09(日) 12:41   No:51842     
Title: Re:exeファイルの場所    
みなさんご回答ありがとうございます。
大変参考になりました。

自分はVC++2008ExpressEditionを使っています。
作ったプログラムは

自分で作った画像の読み込み、音楽の読み込み、その画像を動かす。

というものです。

なので、DXライブラリのサンプルのフォルダにその画像、音楽をいれてデバッグしたところ
思い通りの結果が得られました。

その時に生成されたexeファイルが、Debugの中にあると言う事なので
今度はどこにも送らずに、そこで直接exeファイルを実行しましたが
やはり真っ暗のウィンドウが表示されただけでした。

そこで今度はDebugの中に、先ほどの画像と音楽を入れて生成されているexeファイルを実行したところ
うまくできました。

でもこれでは「実行可能なexeファイル単体ができた」とは言えない気がします。

何かやり方があるのでしょうか?



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

Name: Dixq (管理人) [URL]  ..ウィザード(1,185,570ポイント)   Date: 2010/05/09(日) 13:41   No:51846     
Title: Re:exeファイルの場所    
この辺最初は混乱しますよね〜。
VC++から実行した場合とDebugフォルダにある実行ファイルを直接実行した場合では、そのままではカレントディレクトリの場所が違います。

生成したexeファイルを直接実行する場合は、そのフォルダからの相対パスで指定した場所にファイルが無いといけません。

例えば

image = LoadGraph("test.png");

のように書いた時、exeファイルがDebugフォルダにあるのなら、Debugフォルダに画像など(test.png)がなければなりません。

普段は生成したDebugフォルダ内のexeを一つ上のフォルダであるプロジェクトがあるフォルダに移動させて実行させるのがよいかもしれませんね。


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

Name: softya [URL]  ..ハッカー(158,725ポイント)   Date: 2010/05/09(日) 13:42   No:51847     
Title: Re:exeファイルの場所    
まず、Debugビルドしたものは開発環境の無いところで動きませんので、Releaseビルドしてください。
あとデータ類(画像と音楽)を全てexeファイルと一体化するのは現実的では無いので(規模次第では可能)、exeファイルとセットでデータファイル(画像と音楽)一式を配るのはごく一般的な方法です。つまり今の方法ですね。
ファイル(exeと画像と音楽)をまとめてzipファイルに圧縮して配ったり、CDに焼いたりして配ってください。


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

Name: lbfuvab  ..プログラマー(25,875ポイント)   Date: 2010/05/09(日) 20:20   No:51862     
Title: Re:exeファイルの場所    
EXE単体のみにしたいならリソースに組み込むのが分かりやすくて良いですね。
DXライブラリならリソース内の画像や音楽も読み込み関数が用意してありますので


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

Name: ゆうき  ..かけだし(2,350ポイント)   Date: 2010/05/10(月) 23:01   No:51904     
Title: Re:exeファイルの場所    
みなさん本当にありがとうございます!
その親切さにうまく答えられていない自分が悲しいです。
言われた事をこれから丁寧に検証してみようと思います。

とりあえず今の方法も割と一般的なようなので安心できました。^^


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

Name: ゆうき  ..かけだし(2,362ポイント)   Date: 2010/05/10(月) 23:02   No:51906 解決!     
Title: Re:exeファイルの場所    
解決ボタン入れ忘れました<m(__)m>

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



Name: ラグ  ..中級者(10,986ポイント)   Date: 2010/05/06(木) 17:39   No:51701       
Title: STGつくってみました    
(5/9追記)会話バグ修正しました。
ご無沙汰してます。
この度は縦弾幕STGを龍神録を基に制作しましたので、もし宜しければプレイして頂けないでしょうか。

http://www1.axfc.net/uploader/P/so/70440
pass:nekojishi

内容は全5面+EXくらいを予定していますが、とりあえず2面まで作りました。
割と簡単めに、オーソドックスにつくったつもりですが、若干特殊な部分がありますのでプレイ前に一度readme.txtに目を通してください。

全くの素人である私がここまで作れたのも、管理人様や掲示板の皆さまに助けて頂いたおかげです。
本当にありがとうございます。
至らない点が多々あるとは思いますが、プレイした感想や希望要望・苦情などありましたら遠慮なく申しつけてください。
なお、プログラムやSTG中グラフィックなどのお手伝いをして下さる方を募集中ですので、興味を持っていただけたなら是非一声おかけください。
宜しくお願いします。 編集済み


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


Name: kai  ..中級者(14,816ポイント)   Date: 2010/05/06(木) 19:11   No:51709     
Title: Re:STGつくってみました    
やってみました。

>○会話画面中にショットボタンを連打すると、稀にフリーズする現象が報告されていますので、ご注意ください。

これはかなりやっかいなバグですね。
稀というか、けっこうな割合でフリーズしてしまいました。
でも全体的には、かなり形になってて面白かったです。
これからも制作頑張ってください。


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

Name: ラグ  ..中級者(11,256ポイント)   Date: 2010/05/06(木) 21:10   No:51715     
Title: Re:STGつくってみました    
>kaiさん
プレイして頂き、ありがとうございます。
ここに持ってくるまでかなり(特にグラフィックで)苦労しました。
曲は作ってて楽しいし、イラストやキャラ、ストーリーなどはやってくれる人がいるのでいいんですけどね…

会話は、龍神録支館様の以前載せてあったプログラムを改造して使用していますが、もう少し色々出来るように改善したいと考えています。その時にフリーズする問題も解決出来ればいいのですけどね…

ちなみに、お使いのPC環境やプレイされた難易度・キャラや装備など、もし宜しかったら教えて頂けないでしょうか。
お願いばかりで厚かましいとは思いますが、どうか宜しくお願いします。


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

Name: kai  ..中級者(14,945ポイント)   Date: 2010/05/06(木) 21:54   No:51717     
Title: Re:STGつくってみました    
私も龍神録を改造して勉強してる身なので
同じ事をしてる人がいてうれしかったりしてます。

プレイしたときの環境は以下の通りです。
OS:Windows Vista(TM) Home Premium (6.0 ビルド 6002)
CPU:Mobile AMD Sempron(TM) Processor 3200+ 1.6GHz
メモリ:894MB RAM
DirectXバージョン:DirectX 11

あれ?難易度なんてありました?
とりあえず、全てのキャラと装備は一度試してみました。


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

Name: ラグ  ..中級者(11,474ポイント)   Date: 2010/05/06(木) 23:06   No:51727     
Title: Re:STGつくってみました    
>kaiさん

>私も龍神録を改造して勉強してる身なので 
>同じ事をしてる人がいてうれしかったりしてます。

おお、そうだったんですか…確かに嬉しいかもしれませんね。
お互いがんばりましょう。

Vistaでプレイされたんですね。
まだXPと7しか確認してなかったので、とても助かります。
そちらの環境で、プレイするにあたって特に支障はありませんでしたか?

難易度はOPTIONから変更できますので、是非お試しください。


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

Name: ひよこ  ..比類無きプログラマー(82,666ポイント)   Date: 2010/05/07(金) 00:21   No:51730     
Title: Re:STGつくってみました    
遊ばせてもらいました。
2面の会話でフリーズしてから、やってませんが、
タイトルのエフェクトもいいし、背景も新鮮でした。
弾幕のテンポが良いですね。参考になります。
OS:VistaHomePremium
CPU:Core2Duo2.1GHz
メモリ:2GB
DirectX:10
使用キャラ:フィリーネ・スクロウ 広範囲ショット
難易度 :Normal


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

Name: ideyan  ..初心者(5,302ポイント)   Date: 2010/05/07(金) 02:16   No:51741     
Title: Re:STGつくってみました    
遊んでみました。
エフェクトとか、色々面白くていいと思います。
が、会話バグがやはり致命的すぎます^^;
(連打しなければいいだけかもしれないですが)

一応全キャラ全タイプ試してみましたが、
バグの検証してたので最後まではいけてませんw
(連打してるとフリーズする場所では必ずフリーズする程度のことしか^^;)
ゲームは面白いのでバグがなおったらきちんとやってみたいです。

Operating System: Windows XP Home Edition (5.1, Build 2600) Service Pack 3
Processor: Intel(R) Core(TM)2 Quad CPU    Q6600  @ 2.40GHz (4 CPUs)
Memory: 3328MB RAM
DirectX Version: DirectX 9.0c (4.09.0000.0904)

あと、なんかまた別のバグっぽいのが発生していたのをSS撮ったので
添付しておきます。


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

Name: situmon  ..熟練のプログラマー(49,349ポイント)   Date: 2010/05/07(金) 17:10   No:51753     
Title: Re:STGつくってみました    
楽しくプレイさせていただきました。個人的には音楽がとても気に入りました♪2面の途中でフリーズしたので残念でしたが、完成版が出たらやってみたいです。

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

Name: ラグ  ..中級者(11,850ポイント)   Date: 2010/05/07(金) 22:55   No:51762     
Title: Re:STGつくってみました    
>ひよこさん
プレイして頂きありがとうございます。
エフェクトなどは結構頑張りました。タイトルの桜は水面の煌めきを応用しました。
また、弾幕は直接戦ってる感じを演出したいと考えていますので、直線的に殺しに行く系になっています。
それにしてもフリーズは…特にフルスクリーンでフリーズしてしまうとどうしようもなくなりますからね…
なるべく早急に対処したいと思います。


>ideyanさん
バグの検証までして下さるとは…ありがとうございます。
そしてこのバグは初めて見ました。音楽室の文章が表示されてるようですが、どうしてこうなったのか…全く見当がつきませんね…
いずれにせよ会話部分は改良しますので、その際はまた是非お願いします。


>situmonさん
実は一番力を入れているのが曲(というか半分以上は曲つくりたいだけという)なので、そう言ってもらえるととても嬉しいです。ありがとうございます。
完成にはまだまだ遠いですが、今後もちまちまここで進捗を報告させて頂きたいと考えています。


それにしても会話バグがここまでひどいとは…やはり一人でやってるだけだと気づかないことも多いですね…
とても勉強になります。


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

Name: ラグ  ..中級者(11,986ポイント)   Date: 2010/05/09(日) 11:01   No:51836     
Title: Re:STGつくってみました    
会話バグを修正&新仕様に改良してみました。

http://www1.axfc.net/uploader/P/so/70592
pass:nekojishi

私の確認する限りでは、会話中にショットボタンを連打しても大丈夫になりました。
もしよかったら、今一度確認してみて頂けないでしょうか。
宜しくお願いします。


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

Name: kai  ..上級者(15,973ポイント)   Date: 2010/05/10(月) 07:40   No:51882     
Title: Re:STGつくってみました    
一応バグ報告を。
ゲームを起動し、一度configを開いてetitで一旦閉じる。
そして、もう一度configを開くと
下に書かれてる文字が消えるバグがあります。
ただし、消えてからetitの選択肢から下ボタンを押すと、再び文字が表れます。


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

Name: 胡椒  ..初心者(6,120ポイント)   Date: 2010/05/10(月) 08:51   No:51885     
Title: Re:STGつくってみました    
遊んでみました。
大変楽しくプレイすることが出来ました。とくにおっさんはいいキャラになってますね。
私もこのサイトを参考にゲームを作っているので、「この攻撃は私だったらどうやってつくろうかな?」などと考えながらプレイしていました。

私が気になったところは、雑魚敵のクラゲみたいなやつが、透明っぽくて良く見えないところと、自機の当たり判定の場所が分からなかったとこくらいです。

完成版が出来たらプレイしてみたいので、まってます。


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

Name: ラグ  ..中級者(12,242ポイント)   Date: 2010/05/10(月) 22:53   No:51903 解決!     
Title: Re:STGつくってみました    
>kaiさん
バグ報告ありがとうございます。
確かにoptionの文字の挙動がおかしくなりますね。
これも修正することにします。何度もありがとうございます。


>胡椒さん
プレイして頂きありがとうございます。
そう言ってもらえると嬉しい限りですね。今のSTGには、このおっさんみたいな成分が足りないと思っていますw
クラゲは見づらいという指摘が他からもありましたので、もっと色を濃くしてみようと思います。
自機の当たり判定は、わざと表示していません。
世界観や設定に即した合理的な理由(戦闘機だったらコックピットの位置とかそういうの。力を込めて結界張ってる中心とかではちょっと理由が弱いと感じています)があれば実装してもいいんですけどね…
完成版はまだまだ完成しなさそうですが、地道につくっていきたいと思います。
ありがとうございました。



(追記)ひとまず解決にします。
ありがとうございました。 編集済み


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



Name: 擬人  ..ぴよぴよ(24ポイント)   Date: 2010/05/06(木) 18:06   No:51702       
Title: トラップ    
部屋の中のいろいろな場所にトラップを仕掛けたいと思っているんですが、どんなトラップがあるか、いろいろ教えてください。(出来れば、簡単なものをお願いします。)

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


Name: たかぎ [URL]  ..ハッカー(182,069ポイント)   Date: 2010/05/06(木) 18:12   No:51704     
Title: Re:トラップ    
それならブービートラップが一番でしょう。
部屋の中にある物品を侵入者が勝手に私物化しようとして動かすと、ワイアー仕掛け等で信管を作動させ爆破します。


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

Name: softya [URL]  ..ハッカー(158,052ポイント)   Date: 2010/05/06(木) 18:24   No:51706     
Title: Re:トラップ    
家庭用電源、100Vを電気伝導体に流しておくのが簡単かつ効果的です。
アース側だと流れませんので、必ずホット側を接続してください。


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

Name: softya [URL]  ..ハッカー(158,161ポイント)   Date: 2010/05/06(木) 18:36   No:51707     
Title: Re:トラップ    
ターゲットを部屋の中で拘束することを考えると、無力化ガスも有効です。
http://ja.wikipedia.org/wiki/%E7%84%A1%E5%8A%9B%E5%8C%96%E3%82%AC%E3%82%B9
用法と用量を間違えると致死性の物が多いので、運用には十分な注意が必要です。


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

Name: たかぎ [URL]  ..ハッカー(182,193ポイント)   Date: 2010/05/06(木) 18:38   No:51708     
Title: Re:トラップ    
まったく別種のトラップとしては...
ハニートラップもどうでしょう。
何をもって簡単とするかにもよりますし、何を目的とした質問かも分かりませんが...(ゲームの話なのか、小説やマンガ等の話しなのか、現実の話なのか)


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

Name: tuelon  ..ぴよぴよ(759ポイント)   Date: 2010/05/06(木) 20:08   No:51713     
Title: Re:トラップ    
www

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

Name: Tororo  ..初心者(6,873ポイント)   Date: 2010/05/06(木) 20:47   No:51714     
Title: Re:トラップ    
上から落ちてくるタライ
ワイヤーで落としてみるとか・・・


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

Name: ookami  ..中級者(10,298ポイント)   Date: 2010/05/06(木) 21:23   No:51716     
Title: Re:トラップ    
これは...荒れている?(笑) 物色する音に反応して、けたたましくサイレンを鳴らすトラップはどうでしょう。びっくりさせるだけですけど。

で、擬人さんの質問の意図はなんだったんでしょう。


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

Name: たいちう  ..比類無きプログラマー(79,466ポイント)   Date: 2010/05/06(木) 22:21   No:51720     
Title: Re:トラップ    
部屋の中のいろいろな場所に仕掛けられたハニートラップ……
無事に部屋を出られる気がしない。


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

Name: たかぎ [URL]  ..ハッカー(182,216ポイント)   Date: 2010/05/06(木) 22:23   No:51723     
Title: Re:トラップ    
> 部屋の中のいろいろな場所に仕掛けられたハニートラップ…… 

"いろいろ"は想定外ですね。


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

Name: 擬人  ..ぴよぴよ(100ポイント)   Date: 2010/05/07(金) 22:00   No:51760     
Title: Re:トラップ    
ただ、部屋に入ってきた人を驚かすぐらいのトラップをお願いします(笑)
(忍者部屋みたいな・・・?(笑))


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,185,139ポイント)   Date: 2010/05/08(土) 13:30   No:51783     
Title: Re:トラップ    
ookamiさんも仰っていますが、仕掛ける目的は何ですか?
それによって変わってくるような気がしますが・・。
例えば泥棒を撃退する為とか、家族を自分の部屋に寄せ付けないだとか、友達を部屋に呼んだ時びっくりさせる為だとか・・。

トラップではないですが、このトピックを読んで、
映画のデスノートで自分の部屋のドアにシャーペンの芯を仕込んで、ドアがあいたら折れるようにしておき、
自分が家に帰った時、いない間に人が入ったかどうか知る・・というシーンを思い出しました^^;


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

Name: softya [URL]  ..ハッカー(158,353ポイント)   Date: 2010/05/08(土) 14:11   No:51785     
Title: Re:トラップ    
簡単な方法なら、携帯電話に変な着メロを入れて部屋に隠しておいて、タイミングよく外から電話を掛けるだけでも十分驚かせることができます。幽霊ネタの前振り→携帯からラップ音とかですね。


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

Name: 擬人  ..ぴよぴよ(135ポイント)   Date: 2010/05/08(土) 17:22   No:51795     
Title: Re:トラップ    
家族を自分の部屋に寄せ付けないだとか、友達を部屋に呼んだ時びっくりさせる為です(笑)

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

Name: たかぎ [URL]  ..ハッカー(183,359ポイント)   Date: 2010/05/08(土) 17:32   No:51797     
Title: Re:トラップ    
いつの間にか同居人がいれば、一番びっくりしますよ。

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

Name: 擬人  ..ぴよぴよ(141ポイント)   Date: 2010/05/08(土) 17:39   No:51798     
Title: Re:トラップ    
(笑)

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

Name: ムンバ  ..熟練のプログラマー(41,249ポイント)   Date: 2010/05/08(土) 19:01   No:51801     
Title: Re:トラップ    
その1
 扉を開けた所に、いかりや長介の実寸大の写真を、板かダンボールなどに貼り付け
 扉から50センチ位の位置に立てて置いておく。
 その手前の目立たない位置に、できるだけ目立たない様、左右に
 ゴキブリホイホイを開いたまま置いておく。
 (同封の餌は、くれぐれも置かない様に!)
 もし、引いて開ける扉なら、この写真と扉の取っ手をタコ糸などで結び
 扉を開けたと同時に、いかりや長介が起き上がる仕掛けができれば
 なおの事、効果的である。
 
その1の2
 実寸大の写真が用意できなければ、いかりや長介の顔写真を上からぶら下げて
 何かで、扉向きに顔の部分が向く様に固定する。
 床に、扉から1歩くらい踏み込むだろうと予想される距離に
 できるだけ目立たない様に(余計な部分は切り取るなど)
 ゴキブリホイホイを開いたまま、2枚くらい置いておく。

その2
 厚めのマットか座布団を2〜3枚用意し並べ
 その隙間に、目立たない様にゴキブリホイホイを開いたまま置いておく。

その3
 もし座椅子があれば、背の部分に
 ガムテープ(できれば、紙ではなく布?の強力な方)を
 裏返しにし、縞模様(しまもよう)の様に
 できるだけ美しくばれないように、3段位に分けて巻いておく。
 相手に興味があるような話をしながら相手の視線を自分に向け
 何気に座椅子付近まで移動させ
 巧みな話術を使い、座る様に誘導する。

その4
 もしカーテンがあれば、少し大きめのタランチュラ(クモ)の
 ゴムかぬいぐるみの様な物を用意し
 カーテンを巻いた状態で、用意したタランチュラを
 巻いたカーテンの中に忍ばせておく。
 (↑落ちる様なら、粘着力の弱いセロテープなどで軽く貼り付けておく。)
 巧みな話術を使い誘導して、相手にカーテンを閉めさせる。

注意
 ・その1とその2:自分が踏まない。
 ・その3:高級な服などを着てる人にはお勧めできない。
 ・その3以外:心臓疾患・高血圧・糖尿病などの疾患のある人にはお勧めできない。
 ・余計な経費がかかる。

以上、お勧めできません。(爆

=== 以下、追加です ===

 スレッド主様へ、お願いです。
 どなたかの案を、もし実行され成功した場合なのですが
 (もしも実行して成功したら教えて欲しいですが。w)
 ご承知とは思いますが、あくまでも自己責任でお願い致します。
 私のせいにするのは構いませんが
 例えば「ネット見てたら、どっかのページのやつが言ってたんだよっ!」
 とか「自分で考えたんだよっ!」などなど。
 こちらのサイトとは、無関係ですので
 ご迷惑はおかけし無い様、何卒、宜しくお願い申し上げます。<(_ _)>

  編集済み


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

Name: Tororo  ..初心者(6,894ポイント)   Date: 2010/05/08(土) 19:04   No:51802     
Title: Re:トラップ    
爆竹とかでも十分怖いですよw
たくさんあれば「バンバンバンバン」と迫力満点!


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

Name: lbfuvab  ..プログラマー(25,831ポイント)   Date: 2010/05/09(日) 03:03   No:51826     
Title: Re:トラップ    
部屋の入口にワイヤーを張ってこけさせても面白そうですねww


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

Name: Ma  ..比類無きプログラマー(95,533ポイント)   Date: 2010/05/09(日) 07:58   No:51831     
Title: Re:トラップ    
>Tororo
爆竹かー。
扉を開いたら、板か何かで固定した着火マンが引かれて爆竹に火をつける。
*注:火事にならないようにw 編集済み


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

Name: conio  ..比類無きプログラマー(88,540ポイント)   Date: 2010/05/09(日) 21:51   No:51864     
Title: Re:トラップ    
部屋の入り口付近に GLUE GUARD を敷き詰めておく のはどうでしょうか?
(置くだけなので、金銭的に問題がなければ簡単に出来ます。)


防犯粘着シート GLUE GUARD
http://www.kanshin.com/keyword/2028875


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

Name: no  ..中級者(11,076ポイント)   Date: 2010/05/10(月) 13:10   No:51894     
Title: Re:トラップ    
部屋に人を入れたくなくて、ドアノブに肌荒れ用のクリームを大量につけたことがありましたが……
子どもの頃ってなんであんなことするんでしょう。


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



Name: no  ..中級者(10,970ポイント)   Date: 2010/05/10(月) 11:56   No:51889       
Title: VisualC++2008のF5→エンターキーでのデバッグ(+謝罪)    
まず初めに、softyaさん申し訳ありません。
急に海外で学会発表がはいってしまったため、日本におらず、私の前スレがどこかに流れてしまいました。
最後のお返事がsoftyaさんであったと記憶しています。
確か「グラボを更新してみては」という類の文章だったと思います。結果はだめでした。
やはりグラボを買い換えてみたいと思います。

して、まためんどくさい問題に見舞われました。
今までVisualC++を使用してきました。そこで、F5→エンターキーを押すと「ビルド+デバッグ」を同時に行ってくれてとても便利でした。しかしながら、F5を押した後に表示される「今後この画面を表示しない」にチェックをあやまって入れてしまい、それ以降、ビルドの動作がなされません。
手動でやれば問題はないんですが、ややめんどくささを感じます。
元に戻す方法があれば教えてください。
(ないはずはないと思います。しかしググってもなかなかみつからず……)



そういえばきゅーさんも院卒でしたね、どんな修論書いたのか興味がありますw


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


Name: たいちう  ..比類無きプログラマー(79,782ポイント)   Date: 2010/05/10(月) 12:20   No:51891     
Title: Re:VisualC++2008のF5→エンターキーでのデバッグ(+謝罪)    
前スレはきっとこれでしょう。

http://www.play21.jp/board/formz.cgi?action=res&resno=50711&page=&lognum=156&id=dixq&rln=50928


本題の質問については、手元に環境がないので、
メニューの[ツール]-[オプション]で設定できたはず、としかいえません。


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

Name: fatens  ..中級者(10,989ポイント)   Date: 2010/05/10(月) 12:21   No:51892     
Title: Re:VisualC++2008のF5→エンターキーでのデバッグ(+謝罪)    
[ツール]→[オプション]を開き、プロジェクトおよびソリューションのビルド/実行で、
「実行時に、プロジェクトが古い形式のとき」のところを
「ビルド時に確認する」に戻せば良いのではないでしょうか。


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

Name: no  ..中級者(11,027ポイント)   Date: 2010/05/10(月) 13:06   No:51893 解決!     
Title: Re:VisualC++2008のF5→エンターキーでのデバッグ(+謝罪)    
たいちうさん,fatensさん>
おふた方、ありがとうございました。無事に元通りにすることができました。
前スレについても感謝いたします。


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



Name: わんころ  ..かけだし(1,191ポイント)   Date: 2010/05/10(月) 02:10   No:51876       
Title: 画像透過    
プログラミングの館の方で勉強させていただいてるわんころといいます。
22章で壁にぶつかりました。

今回質問させていただきたいのは、画像透過についてです。
色が黒の部分は透過するはずですが、画像が透過してくれません。
(画像は館の方で扱っているものではなく、自分で用意した画像です)

画像透過の条件には、画像サイズの大きさの制限とかってあるんでしょうか?
それとも自分が書いたコードが悪いんでしょうか?

画像を添付し、以下にコードを張るので申し訳ありませんが見ていただけないでしょうか。
宜しくお願い致しますm(_ _)m

#使う画像は、添付した画像と館の方で扱っている"back.bmp"です。

#include "DxLib.h"
#define pix 32
#define SPEED 2
 
typedef struct{
        int x,y,img,walkflag, muki;
}ch_t;
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
        
    int image[96];
    static long counter = 0;
    char Key[256];
    ch_t ch;
 
    if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //ウィンドウ化と初期化処理
 
    int White = GetColor(255,255,255);
    ch.x    =320;
    ch.y    =320;
    ch.walkflag = 0;
    ch.muki = 0;
    int Hugo;


    SetDrawScreen( DX_SCREEN_BACK ) ;                                                 //描画先を裏画面に設定
    LoadDivGraph( "char01.png" , 96 , 12 , 8 , 32 , 48 , image ) ;//画像を分割してimage配列に保存
 
    while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
           //↑メッセージ処理        ↑画面をクリア         ↑キーボード入力状態取得       ↑ESCが押されると終了
 
        if(ch.x%pix == 0 && ch.y%pix == 0){
            ch.walkflag = 1;
            if     ( Key[ KEY_INPUT_UP   ]  == 1 ){
                counter += 1;
                ch.muki=3;
            }else if( Key[ KEY_INPUT_LEFT ]  == 1 ){
                counter += 1;
                ch.muki=1;
            }else if( Key[ KEY_INPUT_DOWN ]  == 1 ){
                counter += 1;
                ch.muki=0;
            }else if( Key[ KEY_INPUT_RIGHT]  == 1 ){
                counter += 1;
                ch.muki=2;
            }else                                    //何のボタンも押されてなかったら
                    ch.walkflag=0; //歩かないフラグを立てる
        }


        if(ch.walkflag == 1){
            switch(ch.muki){
            case 0 : ch.y += SPEED; Hugo = 0; break;
            case 1 : ch.x -= SPEED; Hugo = 1; break;
            case 2 : ch.x += SPEED; Hugo = 0; break;
            case 3 : ch.y -= SPEED; Hugo = 1; break;
            }
        }
 
        if((ch.x + ch.y)%32 == 0)
            ch.img = image[1 + ch.muki*12];
        else if(ch.walkflag == 1 && counter%2 == 0 && (ch.x%pix + ch.y%pix)/16 == Hugo)
            ch.img = image[0 + ch.muki*12];
        else if(ch.walkflag == 1 && counter%2 == 1 && (ch.x%pix + ch.y%pix)/16 == Hugo)
            ch.img = image[2 + ch.muki*12];
        else{
            ch.img = image[1 + ch.muki*12];
        }

        LoadGraphScreen( 0 , 0 , "back.bmp" , FALSE ) ;
        DrawGraph( ch.x , ch.y , ch.img , TRUE  ) ;
    DrawFormatString(0,0,White,"歩数:%d", counter);
 

        ScreenFlip();//裏画面を表画面に反映
    }
 
    DxLib_End();
    return 0;
}


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


Name: 匿名  ..上級者(21,167ポイント)   Date: 2010/05/10(月) 05:25   No:51880     
Title: Re:画像透過    
LoadGraphScreen( 0 , 0 , "back.bmp" , FALSE ) ;
ではなく
LoadGraphScreen( 0 , 0 , "back.bmp" , TRUE ) ;
なのではないでしょうか


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

Name: わんころ  ..かけだし(1,217ポイント)   Date: 2010/05/10(月) 07:40   No:51883     
Title: Re:画像透過    
すいません。説明が足りませんでした。
透過させたいのはキャラ画像の方です。


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

Name: 胡椒  ..初心者(5,993ポイント)   Date: 2010/05/10(月) 08:20   No:51884     
Title: Re:画像透過    
私もそれで悩んだことがあります。
なぜ黒色で透過しないかは分かりません。自分の考えだと、おそらく画像ファイルで何らかの処理(加工?)がされているのでしょう。
解決方法としてはGIMP Portableなどで画像を追加して透過処理をすることです。


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

Name: Ma  ..比類無きプログラマー(95,294ポイント)   Date: 2010/05/10(月) 09:22   No:51886     
Title: Re:画像透過    
pngファイルは、すでに透過情報が含まれているファイルです。
そのファイルを見て黒い背景になっているなら、そのとおりに表示されます。
bmpに変換するか、pngファイルを編集するか、_aファイルが必要になります。

いずれかの方法だけでよかったと思います。
(調べてないので、間違っているところもあるかもしれませんが。)


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

Name: わんころ  ..かけだし(1,415ポイント)   Date: 2010/05/10(月) 11:09   No:51888 解決!     
Title: Re:画像透過    
>>胡椒さん
こんなすごいツールがあるんですね。
知りませんでした。
このツールを使って画像加工したら無事透過できました!

Maさん
画像に関して全く無知なのですごく勉強になりました。
単に画像をpng→bmpで名前をつけて保存するだけでも透過しました!

透過したときにはすごく興奮しました^^
これでまたグーンとモチベーションあがりました。
御両方、本当にありがとうございましたm(_ _)m 編集済み


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



Name: kai  ..上級者(15,729ポイント)   Date: 2010/05/08(土) 02:38   No:51765       
Title: だんだん目標物に寄ってくるプログラムについて    
龍神録を改造してます。
例えばの話なんですが、
ボスの真上に重ねてボールを表示させるとして、

ボスが右に移動した場合、"20カウントかけて"ボスが移動した地点までボールを右に移動させる
ボスが左に移動した場合、"20カウントかけて"ボスが移動した地点までボールを左に移動させる

みたいに時間をかけてボールを動かして表示させたいのですが
計算式がどうもうまくいかなくて困ってます。
下のプログラムまで考えたのですが、うまくいきません…
どうすれば出来るのか、どなたか分かる方がいましたら教えてください。
よろしくお願いします。


#define X_TIME 20    //何カウントかけてボールを移動させるか

eff.real_x = (int)(boss.dx+FX+dn.x);

if( eff.disp_x < eff.real_x ){
    int add_x = eff.real_x - eff.disp_x;
    eff.disp_x += add_x / X_TIME + X_TIME;
    if( eff.disp_x > eff.real_x ){
        eff.disp_x = eff.real_x;
    }
}

DrawGraph(eff.disp_x , eff.disp_y , img_ball[0] , TRUE); 編集済み


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


Name: ideyan  ..初心者(5,533ポイント)   Date: 2010/05/08(土) 03:20   No:51766     
Title: Re:だんだん目標物に寄ってくるプログラムについて    
えーと、これは「ボスが右に移動〜」の場合の処理ですか?
具体的にどううまくいっていないのか知りたいところです。

とりあえずソースから読みとれる突っ込みとしては……
>eff.disp_x += add_x / X_TIME + X_TIME; 
ここは、20+α加算される処理になっている上に
add_x / X_TIME が (int)/(int)で、小数点以下切り捨てになっています。

仮に
float add_x = eff.real_x - eff.disp_x; 
eff.disp_x += add_x / X_TIME;
みたいに直したとしても、 
そのフレームでの残りの距離の20分の1進むという処理になってしまって
理論上はいつまでたっても追い付けなくなります(笑

私だったら、ボスが移動したときにeff.real_xの書き換えをし、
毎フレームの移動量の計算をして変数に持たせておいて、
後は毎フレームでその移動量を加減算していくとか、
今何カウント目なのかを記録する変数などを用意しておいて計算するとかの
方法をとると思います。


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

Name: ookami  ..中級者(10,103ポイント)   Date: 2010/05/08(土) 09:04   No:51770     
Title: Re:だんだん目標物に寄ってくるプログラムについて    
おはようございます。ookamiです。

"20カウントかけて" について念のため確認したいのですが、以下の2つのうち、イメージされているのはどっちでしょうか?

1.ボスが移動を始めるのと同時に、ボールもゆっくり移動を開始して、20カウント後に追いつく
2.ボスが移動を始めてから20カウントはボールは停止しており、その後に移動を開始して、さらに20カウント後に追いつく

念のため、ボスは左右だけに動いて、ナナメ移動はナシということで合ってますか?


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

Name: kai  ..上級者(15,835ポイント)   Date: 2010/05/08(土) 09:12   No:51771     
Title: Re:だんだん目標物に寄ってくるプログラムについて    
>えーと、これは「ボスが右に移動〜」の場合の処理ですか? 
そうですね。左は考えていませんでした。

分かりやすい例でいうと

1:12〜
http://www.nicovideo.jp/watch/sm6573517

このボスの周りを回転してる円の
「ボスに寄ってくる座標」を求める計算式を知りたいのですが
どのような計算式なのでしょうか?


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

Name: kai  ..上級者(15,837ポイント)   Date: 2010/05/08(土) 09:16   No:51772     
Title: Re:だんだん目標物に寄ってくるプログラムについて    
>ookamiさん
1、ですね。

>ボスは左右だけに動いて、ナナメ移動はナシということで合ってますか?
左右が出来れば、上下もxをyに変えて追加すればいいので
必然的に斜めの移動も可能だと考えているのですが


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

Name: ユーリ  ..入門者(4,620ポイント)   Date: 2010/05/09(日) 08:24   No:51832     
Title: Re:だんだん目標物に寄ってくるプログラムについて    
う〜ん難しいですね

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

Name: ookami  ..中級者(10,297ポイント)   Date: 2010/05/09(日) 10:07   No:51833     
Title: Re:だんだん目標物に寄ってくるプログラムについて    
えぇと、

> 1、ですね。 

というのと、

>このボスの周りを回転してる円の 
>「ボスに寄ってくる座標」を求める計算式を知りたいのですが 

というのの関係がよく分かりませんが、
こんなのはイメージ近いんでしょうか。disp_x,y と real_x,y はdoubleかfloatでないとうまく行かないかもしれませんが。

double PRM=0.1;    // 0〜1で指定。1に近いほどすばやく対称に近づく
eff.disp_x = eff.real_x*(1.0-PRM) + eff.disp_x*PRM;
eff.disp_y = eff.real_y*(1.0-PRM) + eff.disp_y*PRM;


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

Name: kai  ..上級者(15,887ポイント)   Date: 2010/05/10(月) 06:04   No:51881 解決!     
Title: Re:だんだん目標物に寄ってくるプログラムについて    
>ookamiさん
まさにその計算式でした。
ただ、試した結果、正しくは

eff.disp_x = eff.disp_x*(1.0-PRM) + eff.real_x*PRM;
eff.disp_y = eff.disp_y*(1.0-PRM) + eff.real_y*PRM;

で、eff.disp_xとeff.real_xが逆ですね。
それでも、その計算式は思い浮かばなかったので
非常に助かりました。ありがとうございました。


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



Name: gdu  ..ぴよぴよ(75ポイント)   Date: 2010/05/10(月) 03:09   No:51877       
Title: メニュー画面の作成    
はじめまして。
最近、四聖龍神録をPlayさせていただき自分でも作ってみようと思い、
C++、DXLibを勉強しながら現在作成中です。

とりあえず「龍神録プログラミングの館」を一通り(50章まで)みて
STGの構成については大体わかり、オリジナルのステージは作成できたのですが。
50章の状態で実行するといきなりゲームが始まってしまうので、
その前にメニュー選択画面を表示してそこからゲームスタートなどを
したいと思っています。

ですが、なにしろまだC++、DXLibを勉強して一ヶ月ぐらいで、
どこをどのようにしたら出来るのかがいまいち把握し切れてないので、
よろしければアドバイスなどをいただけないでしょうか?

(出来ればconfig設定等もそこでやりたいと思っています)
 編集済み


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


Name: やっくん  ..上級者(17,620ポイント)   Date: 2010/05/10(月) 04:56   No:51879     
Title: Re:メニュー画面の作成    
以下は私が製作中のRPGのメニュー画面を簡素化した物です。
DxLibを用いています。

void title_gamen()
{
    int y  = 300;
    int title = LoadGraph("dat/gazou/ini/title.png"); // タイトル画像ハンドル
    int White = GetColor(255,255,255);

    while(!ProcessMessage() && !GetHitKeyStateAll_2(Key) && !ClearDrawScreen() && !Key[KEY_INPUT_ESCAPE]){
      
      DrawGraph( 0 , 0 , title , FALSE ) ;      //タイトル表示

      DrawString( 260 , y   , "→"    , White ); //  矢印(選択を示す)
      DrawString( 280 , 300 , "はじめから"  , White );
      DrawString( 280 , 320 , "つづきから"  , White );
    
      // もし『はじめから』(y=300)でボタンが押されたら
      if(y == 300 && Key[KEY_INPUT_RETURN] == 1){
          /* 初期化処理 */
          ClearDrawScreen();
          return ;
      }
      // もし『つづきから』(y=320)でボタンが押されたら
      if(y == 320 && Key[KEY_INPUT_RETURN] == 1){
          bool hh = load_gamen(mc_temp); // ロード画面へ
          ClearDrawScreen();
          if(hh == true) return; // もしロード成功したらゲーム開
          else continue;         // そうでなければループを続ける。
      }
      if( Key[KEY_INPUT_DOWN]==1 || ( Key[KEY_INPUT_UP]%5==0 && Key[KEY_INPUT_UP]>30)){
           // たった今押したか、30カウンター以上押しっぱなしかつ5回に一度
              y+=20;
              if(y==340){  // y座標が200なら(選択が一番下なら)
                y=300;     // 選択座標を一番上に
       }
      }
      if( Key[KEY_INPUT_UP]==1 || ( Key[KEY_INPUT_DOWN]%5==0 && Key[KEY_INPUT_DOWN]>30)){
           // たった今押したか、30カウンター以上押しっぱなしかつ5回に一度
              y-=20;
           if(y==280){  // y座標が200なら(選択が一番下なら)
                y=320;     // 選択座標を一番上に
              }
      }
           ScreenFlip();
    }
}


↓↓ソースの説明↓↓

画面を表示しています。
ここではタイトルの名前を出したり、『初めから』『続きから』などを表示してます。
矢印のy座標に変数を用いていますが、これは現在どこを指し示しているかを表すために変数としています。


ここでは矢印のy座標がある場所でReturn(Enter)キーが押されたら、それに見合う処理を行うようにしています。
私の場合は『初めから』では主人公に関するデータを初期化し、この関数を抜けてゲーム開始としています。
『続きから』ではロード画面に飛んでデータをロードするようにしています。


矢印のy座標を変化させる働きを担っています。
↓キーや↑キーが押されたらy座標の値を変化させています。


私は上記の様に3つの役割に分けています。
ただ、このソースでは選択肢の選択をするために矢印を用いていますが、画像を用いたり、選択されている物は色を変えるなどをすると見た目が良くなると思います。
参考になれば幸いです。 編集済み


1,002ポイント を落としてしまった。

Name: gdu   Date: 2010/05/17(月) 02:41   No:518771274031671 解決!     
Title: Re:メニュー画面の作成    
返答遅くなりすいません。

やっくん さん
のソースを元に作成してみたところ
無事メニュー画面を作ることが出来ました。




Name: Kit  ..ぴよぴよ(69ポイント)   Date: 2010/05/09(日) 16:45   No:51853       
Title: カウントダウンするプログラムを作りたいのですが    
Dxライブラリを使い、カウントダウンするプログラムを作りたいのですが、どうもソースが思いつきませんw ちなみにこんな感じのです→http://www.youtube.com/watch?v=NBWcCl3c9eE&playnext_from=TL&videos=heS5AYgzGj8

 各数字の画像を時間に合わせてこのように↑動かしたいです。たとえばスタートボタンを押すとカウントダウン開始、タイムヲッチのようなプログラムです。   アドバイスいただけたらありがたいです!!


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


Name: softya [URL]  ..ハッカー(158,781ポイント)   Date: 2010/05/09(日) 16:54   No:51854     
Title: Re:カウントダウンするプログラムを作りたいのですが    
今、どこまで出来るかをまずを教えてください。
ソースが有るなら、それも添付お願いします。
DXライブラリを理解したのなら、数字を表示するところぐらいまでは出来ていますせんか?


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

Name: kit  ..ぴよぴよ(38ポイント)   Date: 2010/05/09(日) 17:25   No:51856     
Title: 無題    
恥ずかしながらDxライブラリでは基本的な画面表示くらしかできません・・・・ソースはまだ作っていない現状で、ゼロスタートです。C言語自体は勉強していたのでさほど問題ないと思います。

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

Name: softya [URL]  ..ハッカー(158,876ポイント)   Date: 2010/05/09(日) 17:41   No:51857     
Title: Re:無題    
ここの掲示板のサイトの「ゲームプログラミングの館」を拾い読みで良いので、「3. 画像を表示する。」〜「17.画像を分割して読み込む」辺りまでを読んでみてください。
http://dixq.net/g/
あとは、画像を作って時間を01:23と固定で良いので表示してみてください。まず、ここまでやってみましょうか。


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

Name: kit  ..ぴよぴよ(54ポイント)   Date: 2010/05/09(日) 20:09   No:51861     
Title: Re:無題    
その辺ならできます(・ω・)

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

Name: softya [URL]  ..ハッカー(158,940ポイント)   Date: 2010/05/09(日) 20:32   No:51863     
Title: Re:無題    
じゃあ、秒単位じゃなくて毎フレームカウントダウンするプログラムをまず作ってみてください。上のが作れるなら作れるはずですから。
出来たら、ソースコードをここに添付してくださいね。


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

Name: kit  ..ぴよぴよ(107ポイント)   Date: 2010/05/09(日) 22:12   No:51865     
Title: Re:無題    
えーっと、そこを教えてほしいのですが・・・><  簡単で結構なのでアドバイスとして一部のプログラム教えてくださいー!

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

Name: softya [URL]  ..ハッカー(159,020ポイント)   Date: 2010/05/09(日) 22:31   No:51866     
Title: Re:無題    
>その辺ならできます(・ω・)

まず、分かるところまでのソースコードを提示してください。
その辺なら出来ますと書かれていますが、本当に出来ているのか分からないと説明が出来ないです。


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

Name: b  ..かけだし(1,785ポイント)   Date: 2010/05/09(日) 22:59   No:51867     
Title: Re:無題    
0000〜9999までの画像を用意して、順番に表示させればよいのでは?


int counter ;

for(i=9999;i>=0;i--){
    switch(i){
    case 9999:
        9999の画像を表示    break;
    case 9998:
        9998の画像を表示    break;
    ・
    ・
    ・
    ・
    case 0:
        0000の画像を表示    break;
    default:
        break;
    }
}


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

Name: やっくん  ..上級者(18,622ポイント)   Date: 2010/05/09(日) 23:35   No:51871     
Title: Re:無題    
横から失礼します。

>0000〜9999までの画像を用意して、順番に表示させればよいのでは?
0〜9の10個でできるかと思います。
0〜9999までカウントする際に各桁に合った数字を表示すれば大丈夫かと。


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



Name: jjexpress  ..ぴよぴよ(401ポイント)   Date: 2010/05/09(日) 17:04   No:51855       
Title: データ重複時のエラー処理    
以下のプログラムに、入力データが重複した場合の処理を追加しようとしています。
データ重複時のエラーメッセージを出力する方法を教えてください。
-------------------------------------------------------------------
#include<stdio.h>

#define NO_MIN 0
#define NO_MAX 100
#define MAX_INPUT 3

int main(void)
{
    int no[MAX_INPUT];
    int cnt;

    for(cnt = 0 ; cnt < MAX_INPUT ; cnt++)
    {
        while(1)
        {
            printf("\nInput number%d : ", cnt + 1);
            scanf("%d", &no[cnt]);

            if(no[cnt] >= NO_MIN && no[cnt] <= NO_MAX)
            {
                break;
            }
            printf("\nInput number %d-%d.\n", NO_MIN, NO_MAX);
        }
    }

    for(cnt = 0 ; cnt < MAX_INPUT ; cnt++)
    {
        printf("\n%d", no[cnt]);
    }
    printf("\n");

    return 0;
}
-------------------------------------------------------------------


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


Name: jjexpress  ..ぴよぴよ(408ポイント)   Date: 2010/05/09(日) 18:24   No:51860 解決!     
Title: Re:データ重複時のエラー処理    
自己解決しました。

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



Name: ニャー  ..ぴよぴよ(76ポイント)   Date: 2010/05/09(日) 13:48   No:51849       
Title: index関数の作成    
内容:
・ 授業単元:アルゴリズムと複素解析 
・ 問題文
INDEX関数の作成 

二つの文字列(A,B)をキーボードから入力して 
文字列Aの中に文字列Bが何番目に現れるかポインタで一文字ずつ指す 

今授業でこのようなプログラムを書いて来いと言われたのですが、
どのように作るのかがわかりません。

どのような流れでつくるのかだけでも教えてください。
よろしくお願いします。


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


Name: Ma  ..比類無きプログラマー(95,448ポイント)   Date: 2010/05/09(日) 13:57   No:51850     
Title: Re:index関数の作成    
簡単にステップ化すると。。。

1.hello world のプログラムの書き方を知る。
2.文字列の入力方法を知る。
3.文字列の比較方法、あるいは検索方法を探す。
4.文字列表示の方法を知る。
5.関数の作り方を知る。
6.Index関数を完成させる。

すべて、ちょっと検索して読めばできます。


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

Name: たかぎ [URL]  ..ハッカー(184,050ポイント)   Date: 2010/05/09(日) 14:04   No:51851     
Title: Re:index関数の作成    
> どのような流れでつくるのかだけでも教えてください。 

1. 仕様を正確に把握する。
2. どんな開発ツールを使用し、どんなプラットフォームを対象にするのかを明確にする。

あとの細かい話は、ここまでができてからのことです。


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



Name:  ..ぴよぴよ(49ポイント)   Date: 2010/05/08(土) 21:08   No:51807       
Title: 参照の順序    
struct A {
    B* b;
};

struct B {
    A* a;
};


初めまして。
C言語で上のようなデータ構造を実現したいのですが、どのように記述すれば良いでしょうか?
単純な事なのかも知れませんが、どなたかご教授下さい。


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


Name: ひよこ  ..比類無きプログラマー(82,693ポイント)   Date: 2010/05/08(土) 21:45   No:51808     
Title: Re:参照の順序    
struct A;
struct B;
と仮の宣言?をすればいいと思います。


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

Name: たかぎ [URL]  ..ハッカー(183,419ポイント)   Date: 2010/05/08(土) 21:52   No:51809     
Title: Re:参照の順序    
> C言語で

本当ですか?


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

Name:  ..ぴよぴよ(224ポイント)   Date: 2010/05/08(土) 23:24   No:51813     
Title: Re:参照の順序    
ひよこさんありがとうございます。一歩前に進みました。

では、
tyepdef struct _A {
    PB pb;
} A, *PA;
typedef struct _B {
    PA pa;
} B, *PB;
等のようにtypedefを使用した場合はどうしたら良いでしょうか?

structを記述せず定義しているのでC++ですね。
C++からプログラムに入ったのでCとC++の境界が自分の中で非常に曖昧になっていて申し訳ない。


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

Name: たかぎ [URL]  ..ハッカー(183,863ポイント)   Date: 2010/05/08(土) 23:43   No:51814     
Title: Re:参照の順序    
これでどうでしょうか?

typedef struct A A, *PA; 
typedef struct B B, *PB; 

struct A { 
    PB pb; 
}; 
struct B { 
    PA pa; 
}; 

ちなみに、struct _A や struct _B のように、下線で始まって大文字が続く識別子を使うと未定義の動作になります。
http://www.kijineko.co.jp/tech/superstitions/tags-begin-in-underscore.html

> C++からプログラムに入ったのでCとC++の境界が自分の中で非常に曖昧になっていて申し訳ない。

↓こちらを参考にしてください。
http://www.kijineko.co.jp/tech/cpp2c


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



Name: おほし  ..ぴよぴよ(137ポイント)   Date: 2010/05/08(土) 22:25   No:51810       
Title: 『.exe』の作り方    
はじめまして。
自分は今『Visual C++ 2008』を使ってゲームを作ろうと
思っています。
C言語の基本は学んだのですが、どうすれば『.exe』
を作れるのか分かりません。
ネット上で公開されているゲームなどのソフトは大抵
『.exe』なのですが、これもプログラムで作れるのですか?
是非教えてください。


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


Name: たかぎ [URL]  ..ハッカー(183,679ポイント)   Date: 2010/05/08(土) 22:28   No:51811     
Title: Re:『.exe』の作り方    
拡張子が.exeの実行ファイルということでしょうか?
それであれば、実行ファイルを作れなければ実行することはできませんので、実行できているのであれば、実行ファイルもできています。
実行せずに、実行ファイルだけ作りたいのであれば、ビルドしてください。


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

Name: おほし  ..ぴよぴよ(122ポイント)   Date: 2010/05/08(土) 22:43   No:51812 解決!     
Title: Re:『.exe』の作り方    
ありがとうございます。
実行ファイルありました!



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



Name: 若葉  ..ぴよぴよ(82ポイント)   Date: 2010/05/08(土) 17:28   No:51796       
Title: ラジコンの仕組み    
ラジコンの仕組みを詳しく教えていただけませんか?
1.どうやって動いているのか

2.どういう仕組みで前後左右に動くようにリモコンや本体ができているのか。

3.リモコンはどういう仕組みなのか

4.本体(車など)が動くための仕組み

などなど・・・ラジコンの仕組みについて、詳しく教えてください。 編集済み


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


Name: たかぎ [URL]  ..ハッカー(183,410ポイント)   Date: 2010/05/08(土) 18:23   No:51799     
Title: Re:ラジコンの仕組み    
とりあえず、↓でも読んでください。
http://www16.plala.or.jp/toy-hospital/index07/index079.html

本体の動力については、いろいろありすぎます。
自動車だけを考えても、モーターのものもあれば内燃機関のものもあります。


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

Name: softya [URL]  ..ハッカー(158,194ポイント)   Date: 2010/05/08(土) 18:24   No:51800     
Title: Re:ラジコンの仕組み    
若葉さんが、何処まで電子回路の知識があるか分かりませんが、まず軽く解説してみます。
と言いながら途中から難しいかも知れません。

1.どうやって動いているのか
送信機の操作は、電波あるいは光信号で受信機に伝えられて送信機での操作通りに受信機側が動作します。

2.どういう仕組みで前後左右に動くようにリモコンや本体ができているのか。
送信機のスティックの操作が受信機ではRCサーボの回転角(前輪のハンドル角)やモーターの回転速度(スピード)に置き換わることで、車などを操縦します。

3.リモコンはどういう仕組みなのか
デジタルプロポーショナル式と呼ばれる方式で制御しています(通常みんなプロポとしか呼びませんね)。
操縦スティックは可変抵抗器(ポテンショメーター)に繋がっています。
可変抵抗器は文字通り可変する抵抗値で動きを取り出すことが出来るもので、抵抗値が変わると流れる電流量が変わります。この電流量をある電子回路を通すとパルス信号のパルス幅に変えることが出来ます。
このパルス幅を電波にのせて受信機に送ります。

4.本体(車など)が動くための仕組み 
受信機は、電波から元もパルス信号を取り出してRCサーボの送ります。
RCサーボは、パルス幅に応じて角度が変わる装置でこれがハンドル角などに使われます。

ざっとこんな感じですが、難しかったですか?
デジタル式と言われる方式なためマイコンとの相性もよく、ロボットの制御などにもRCサーボは使われていますね。


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

Name: 若葉  ..ぴよぴよ(90ポイント)   Date: 2010/05/08(土) 19:41   No:51804 解決!     
Title: Re:ラジコンの仕組み    
ありがとうございます^^
よくわかりました!


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



Name: はなこ  ..ぴよぴよ(216ポイント)   Date: 2010/05/08(土) 15:41   No:51792       
Title: 宣言の構文エラー?    
はじめまして。C言語によるプログラミング 基礎編(第2版) という本に掲載されているコードについて質問です。(コンパイラはborland c++ compiler 5.5 です。)

#include  <stdio.h>

int main ( void )
{
    int a[ ] = {1,2,3,4,5,6,7,8,9,10,0}
    int i;
    int sum;
    int *p;

    p= &a[ 0 ];
    sum = 0;
    while (*p)
    {
        sum += *p++;
    }
    printf("合計= %d\n", sum);

    return 0;
}


エラー文はといいますと

 E2141 ファイル名 6:宣言の構文エラー(関数 main)

初心者のため、原因、対処法がわからず困っています。
どなたかご教授願います。

 編集済み


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


Name: 初心者  ..熟練のプログラマー(47,497ポイント)   Date: 2010/05/08(土) 15:56   No:51793     
Title: Re:宣言の構文エラー?    
a[]の定義の最後に;がない。 

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

Name: はなこ  ..ぴよぴよ(263ポイント)   Date: 2010/05/08(土) 16:03   No:51794 解決!     
Title: Re:宣言の構文エラー?    
>初心者 さん
おっしゃる通りでした。
;がぬけていました。

教えていただき、ありがとうございます。


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



Name: Gen  ..ぴよぴよ(7ポイント)   Date: 2010/05/08(土) 12:42   No:51776       
Title: 関数についてです    
10個のデータがあり、平均と標準偏差を求めるプログラムを関数化するのですが全く分かりません。教えてください。ちなみにポインタは使えません。よろしくお願いします。

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


Name: たかぎ [URL]  ..ハッカー(183,115ポイント)   Date: 2010/05/08(土) 12:44   No:51777     
Title: Re:関数についてです    
> ちなみにポインタは使えません。

だったら無理です。


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

Name: ookami  ..中級者(10,172ポイント)   Date: 2010/05/08(土) 12:54   No:51778     
Title: Re:関数についてです    
関数化がわからないと言うことは、mainの中ならできたって事ですよね。

それを貼ってもらっていいですか?

まぁポインタが使えないならグローバルな配列にするしか…?


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

Name: nishi  ..ぴよぴよ(11ポイント)   Date: 2010/05/08(土) 13:07   No:51779     
Title: Re:関数についてです    
平均と標準偏差を含む構造体を定義して
関数の戻り値を構造体にすればポインタなしでも
可能だと思います。


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

Name: たかぎ [URL]  ..ハッカー(183,260ポイント)   Date: 2010/05/08(土) 13:10   No:51780     
Title: Re:関数についてです    
> まぁポインタが使えないならグローバルな配列にするしか…?

ポインタが使えないなら配列も使えません。
*演算子も[]演算子も、オペランドにポインタを要求しますので。
そもそも、関数呼出し演算子自体がオペランドに関数へのポインタを要求しますから、関数を定義しても呼び出しができなくなります。

# せめて、利用規約をちゃんと守って、ていねいに質問してくれれば、ていねいに答える気にもなるのですが...
 編集済み


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,184,037ポイント)   Date: 2010/05/08(土) 13:12   No:51781     
Title: Re:関数についてです    
>Genさん

こんにちは。
ポインタは使えませんというのは、使い方がわかりません、という意味なのでしょうか、それとも宿題の制約上使ってはいけないということでしょうか?
ポインタを使ってはいけないなら、グローバル変数を使うとか、nishiさんの仰る方法にするとか方法はあるかもしれませんが、使った方が良いと思いますよ。

まず、どちらの方法で問題を解きましょうか?


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

Name: Gen  ..ぴよぴよ(58ポイント)   Date: 2010/05/08(土) 14:39   No:51788     
Title: Re:関数についてです    
ていねいに書いていなくてすいませんでした。nishiさんの言うように関数の戻り値を用いてプログラミングしたいです

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

Name: たかぎ [URL]  ..ハッカー(183,337ポイント)   Date: 2010/05/08(土) 14:47   No:51790     
Title: Re:関数についてです    
コンストラクタを使えば関数呼出し演算子が不要なので、ポインタ無しで実現できる可能性があるかもと考えていたのですが...

> 関数の戻り値を用いてプログラミングしたいです

ということであれば絶望的ですね。


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

Name: nishi  ..ぴよぴよ(213ポイント)   Date: 2010/05/08(土) 15:00   No:51791     
Title: Re:関数についてです    
きっとこんな感じでしょうね。
各項目の型は必要に応じて変更してください。

struct info_t {
    int heikin;
    int hensa;
};
struct info_t func(int data1, int data2, 以下略)
{
    struct info_t info;
    info.heikin = (平均を計算);
    info.hensa = (標準偏差を計算);
    return info;
}
int main(void)
{
    struct info_t info;
    info = func(1, 2, 以下略);
    return 0;
}


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



Name: kazuoni [URL]  ..ハッカー(142,335ポイント)   Date: 2010/05/07(金) 09:42   No:51746       
Title: WEBカメラ画像の取り込み・編集    
お邪魔します。お久しぶりです。

管理人さんの作成されたAeroBeatに影響されてwebカメラを用いた
プログラムを作成してみようかなと考えています。
そこでお聞きしたい事があります。
どのライブラリを用いて、画像を取り込んでいるのでしょうか?(恐らくOpenCV?)
あっているかどうかわかりませんが、物体の検知に色を用いているかと思いますが、
ピクセルデータを取得等もそのライブラリを用いているのでしょうか?
ニコニコ動画のタグではDXライブラリとありましたが、
どうも重要な部分は他のライブラリを使用しているような気がしまして・・・

ちなみに今から自分がやろうとしている事は、
WEBカメラからの物体検知なので、多少速度を求められるようなものです。
(っというか、openCVではすでに物体検知アルゴリズムが確立しているとか・・・)

よろしくお願いします。


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


Name: non  ..比類無きプログラマー(96,772ポイント)   Date: 2010/05/07(金) 10:21   No:51747     
Title: Re:WEBカメラ画像の取り込み・編集    
私も管理人さんに前におたずねしたことがあります。
そのときの回答は、

>私は特に難しい事してませんよ、Justyさんのおっしゃる通り、ただDirectShowを使っただけです。形を覚えたりするわけじゃないので、自力で計算しても色検知位ならすぐ出来ました。

ということで、openCVは使っていないということでした。


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

Name: Dixq (管理人)  ..ウィザード(1,183,777ポイント)   Date: 2010/05/07(金) 10:49   No:51750     
Title: Re:WEBカメラ画像の取り込み・編集    
あれはnonさんのおっしゃる通り、DirectShowです。

エアロビートのプログラムでよければ差し上げますよ。
参考になるようなものかは解りませんが…。

ただ全く難しいことはしていません。物体検地とかしたいならCVがよいでしょう。
私は今月からARツールキッドでしたっけ?名前忘れましたが、あの辺いじってみるつもりです。

あと、「DirectShow キャプチャ」とかでググればいろいろ出てきたと思いますよ。


…携帯なのでたいした情報だし出来ませんが…。


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

Name: kazuoni [URL]  ..ハッカー(142,501ポイント)   Date: 2010/05/07(金) 11:48   No:51752     
Title: Re:WEBカメラ画像の取り込み・編集    
ご回答ありがとうございます!

DirectShowでしたか。
まだ使用した事がないので、
管理人さんのエアロビート実装を是非拝見したいです。
(昨日からOpenCV始めてしまってますけど・・・w)
UPはいつもで大丈夫ですので、一報いただけるとありがたいです。

ARもそこそこの理解度で出来そうな気がしますけど、(マーカー検出が中心かな?)
ただ、3Dデータの細かい設定が大変そう。。
Metasequoia使いこなせる気がしない・・・


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

Name: Dixq (管理人) [URL]  ..ウィザード(1,183,910ポイント)   Date: 2010/05/08(土) 01:35   No:51764     
Title: Re:WEBカメラ画像の取り込み・編集    
結構参考になるサイト出てくるみたいですよ。
http://www.google.co.jp/search?hl=ja&q=DirectShow+%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3&lr=lang_ja

後、ソースコードはアップ出来るようなものじゃないので、メールで送りますね^^;
メタセコは使ったことないですけど、六角大王なら安いし結構簡単につかえましたよ。
・・といってもたいして使いこなしたわけじゃないですが;

後はVue7位しか持ってないですねぇ。


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

Name: kazuoni [URL]  ..ハッカー(142,556ポイント)   Date: 2010/05/08(土) 11:53   No:51774 解決!     
Title: Re:WEBカメラ画像の取り込み・編集    
kazuoni0506◎gmail.comによろしくお願いします。(◎をアットに)

ちょっと土日の時間があるときにDirectShow,OpenCV共に遊んでみようと思います。 編集済み


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



Name: リョウ  ..かけだし(1,502ポイント)   Date: 2010/05/08(土) 05:03   No:51767       
Title: 曜日の表示    
質問させて頂きます。
今2010年5月の日にちを記入して
その日が何曜日か答えるプログラムを作っているんですが、
記入するとき31日より上の日にち(例えば32日)を入力したら
エラーが出るプログラムを作るにはどうすればいいですか?

作りかけのソースは
  #include <stdio.h>

  # define BUFFER_SIZE (256)
  
  int get_int(void)
  {
    char buf[BUFFER_SIZE];

    fgets(buf, BUFFER_SIZE, stdin);

    return atoi(buf);
  }
int main(void)
{
  int a,b;
  printf("措定する年月は2010年5月です。\n");
  printf("日付は?: ");
  a = get_int();
  b  = (a + 6 - 1) % 7;
  switch(b)
    {
    case 0:
    printf("2010年5月%d日は日曜日です\n",a);
    break;
    case 1:
    printf("2010年5月%d日は月曜日です\n",a);
    break;
    case 2:
    printf("2010年5月%d日は火曜日です\n",a);
    break;
    case 3:
    printf("2010年5月%d日は水曜日です\n",a);
    break;
    case 4:
    printf("2010年5月%d日は木曜日です\n",a);
    break;
    case 5:
    printf("2010年5月%d日は金曜日です\n",a);
    break;
    case 6:
    printf("2010年5月%d日は土曜日です\n",a);
    break;
  }

  return 0;
}
です。
osはlinux
コンパイラはgccです。
お願いいたします。


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


Name: toyo  ..熟練のプログラマー(45,836ポイント)   Date: 2010/05/08(土) 06:40   No:51768     
Title: Re:曜日の表示    
値の判定には if 文を使います。
日本語にすれば”もし”文ですね。
もし a が 31 より大きければ "error" を表示する
というのをプログラムに変えると
if (a > 31) { printf("error"); }
のようになります。


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

Name: リョウ  ..かけだし(1,542ポイント)   Date: 2010/05/08(土) 07:22   No:51769 解決!     
Title: Re:曜日の表示    
わかりました。
switchではなくてifを使えばいいんですね!
ありがとうございます。


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



Name: はね  ..上級者(16,851ポイント)   Date: 2010/05/06(木) 10:15   No:51686       
Title: ちょっと前にyu?さんが作成してくれたサンプルについて    
ちょっと昔のことなので
誰がサンプルを作ってくれたのか忘れてしまったのですけど、(多分yuさん?)
東方みたいにボスから発射されたワッカが
ボスの周りを回転するワッカのサンプルを作成してくれた方がいて

http://www.dotup.org/uploda/www.dotup.org864761.rar.html
パス:ts

これについてお聞きしたいのですが、最近の東方は
@ボスから発射されてボスの周りを回転するワッカ+
A壁を越えて周りからボスの周辺に集まって、ボスの周りを逆回転するワッカ
があるのですが、サンプルを利用してAを作りたいのですが
計算に弱く、作れなくて困ってます・・。
どのようにプログラムを変えたら出来るのか
分かる方がいましたら、よろしければ教えてください。


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


Name: yu  ..熟練のプログラマー(42,773ポイント)   Date: 2010/05/06(木) 22:22   No:51722     
Title: Re:ちょっと前にyu?さんが作成してくれたサンプルについて    
>> 誰がサンプルを作ってくれたのか忘れてしまったのですけど、(多分yuさん?) 

はい。確か自分だったと思います。


>> 壁を越えて周りからボスの周辺に集まって、ボスの周りを逆回転するワッカ 

あまりイメージできませんが、こんな感じですかね;
参考になれば幸いです。

pass「effect」
http://www1.axfc.net/uploader/He/so/276511

2つ輪を使うので構造体にしてみました。
後、久しぶりにプログラミングしたので色々忘れてしまったことがありました。 orz


>> 計算に弱く、作れなくて困ってます・・。

三角関数が分かるとしての話ですが、分解して考えれば思ったより単純ですよ。
一度自分で作ってみると理解が深まるかもしれません。


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

Name: はね  ..上級者(16,921ポイント)   Date: 2010/05/06(木) 23:09   No:51728     
Title: Re:ちょっと前にyu?さんが作成してくれたサンプルについて    
おおおおおお!!凄い・・・
まさに思ってた構想通りです。(ちょっと感動)
このサンプルを元に勉強してみたいと思います。
yuさん大変ありがとうございました! 編集済み


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

Name: はね  ..上級者(16,984ポイント)   Date: 2010/05/07(金) 06:31   No:51743     
Title: Re:ちょっと前にyu?さんが作成してくれたサンプルについて    
すみません。
サンプルの値を変えて実行してみたら
end_timeの値を変えた場合、ワッカが上手く0のときに収集つかなかったのですが
これはどうしたらよいのでしょうか?
それと、よろしければ前回みたいに

最初の円の大きさ(円の半径の最大値)
終わる時の大きさ(円の半径の最小値)
外側の頂点と内側の頂点の距離(円の線の太さ)

の値を変えるだけで、大きさが変えられるようなサンプルを
お願いできないでしょうか?
よろしくお願いします。 編集済み


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

Name: yu  ..熟練のプログラマー(42,922ポイント)   Date: 2010/05/07(金) 20:12   No:51759     
Title: Re:ちょっと前にyu?さんが作成してくれたサンプルについて    
>> end_timeの値を変えた場合、ワッカが上手く0のときに収集つかなかったのですが

少し急いでたので値をそのまま代入してました。
確かに、どうしてこの値になっているのかというのが分かりにくいですね。


>> よろしければ前回みたいに〜

直したので宜しければどうぞ。(それでもバグが有るかも・・・)
変数が前回に比べて多いですが、頑張って理解してみてください。
もちろん、他にも色々な方法はあると思いますので参考程度にどうぞ。

pass「effect」
http://www1.axfc.net/uploader/He/so/276654


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

Name: はね  ..上級者(17,025ポイント)   Date: 2010/05/08(土) 00:11   No:51763 解決!     
Title: Re:ちょっと前にyu?さんが作成してくれたサンプルについて    
ありがとうございます!
かなり理解しやすくなり、助かりました。
ほんとyuさんありがとうございました!
精進したいと思います。


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



Name: たろう  ..かけだし(2,351ポイント)   Date: 2010/05/02(日) 23:01   No:51506       
Title: アーカイブファイルについて    
http://asobinosusume.com/program/prg_arc.php
でファイルをダウンロードして付属のソースをVC++2005で開いて実行したのですが。「マルチ バイト文字セットを使用する」で実行するとアーカイブファイルが出力されるのですが、設定を「UNICODCE文字セット使用する」に変更してコンパイルしようとすると、エラーが出たので
charを全部TCHAR、strcopy,strcatなどを、_tcscopy,_tcscatと変更したのですが。実行はできるのですが、アーカイブファイルが出力されません。なぜでしょうか?また直せばいいところはどこなのでしょうか? 


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


Name: たかぎ [URL]  ..ハッカー(180,260ポイント)   Date: 2010/05/02(日) 23:38   No:51511     
Title: Re:アーカイブファイルについて    
http://oshiete.goo.ne.jp/qa/5866692.html
マルチ


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

Name: たろう  ..かけだし(2,369ポイント)   Date: 2010/05/03(月) 18:18   No:51546     
Title: Re:アーカイブファイルについて    
すみません。どうしたら答えてくれるのでしょうか?

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

Name: softya [URL]  ..ハッカー(155,357ポイント)   Date: 2010/05/03(月) 18:27   No:51547     
Title: Re:アーカイブファイルについて    
まず、利用規約をよく読んでください。
マルチポストじゃなくなるためには、質問している他のサイトにお礼を言って質問を終了するか、この質問を閉じてokwaveだけで質問を続けてくださいね。

マルチポストが問題視される理由。
http://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88


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

Name: たろう  ..かけだし(2,382ポイント)   Date: 2010/05/03(月) 20:27   No:51553     
Title: Re:アーカイブファイルについて    
返信ありがとうございます。そうだったんですか、失礼しました。今質問を終了しました。今後気をつけます。

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

Name: たかぎ [URL]  ..ハッカー(181,027ポイント)   Date: 2010/05/03(月) 21:58   No:51555     
Title: Re:アーカイブファイルについて    
> 今質問を終了しました。

そういう問題ではないような...。
あちらで回答してくれた方は、解決したのかどうかわからないまま終了されてしまったわけで、釈然としない思いをされたと思いますよ。

ところで、利用規約は熟読しましたか?


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

Name: たろう  ..かけだし(2,405ポイント)   Date: 2010/05/03(月) 22:07   No:51558     
Title: Re:アーカイブファイルについて    
返信ありがとうございます。読みました。今後このようなことがないよう気をつけます。

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

Name: softya [URL]  ..ハッカー(155,446ポイント)   Date: 2010/05/03(月) 22:20   No:51560     
Title: Re:アーカイブファイルについて    
やってしまった事は仕方ないので、今後気をつけてくださいね。

で、まだ問題なのは規約を読まれたと思いますが、圧倒的に情報不足です。
規約のテンプレに沿って出せるだけの情報を全部出してください。
そうしないと、こちらに手間がかかる上に細かい状況が分からずサポートしようが無いのです。


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

Name: たろう  ..入門者(2,857ポイント)   Date: 2010/05/03(月) 22:41   No:51561     
Title: Re:アーカイブファイルについて    
返信ありがとうございます。
アーカイブファイルを作るソフトを
http://asobinosusume.com/program/prg_arc.php 
でファイルをダウンロードして付属のソースをVC++2005で開いて実行したのですが。「マルチ バイト文字セットを使用する」で実行するとアーカイブファイルが出力されるのですが、設定を「UNICODCE文字セット使用する」に変更してコンパイルしようとすると、
c:\documents and settings\user\my documents\visual studio 2005\projects\練習3\練習3\main.cpp(108) : error C2664: 'FindFirstFileW' : 1 番目の引数を 'char [64]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
        指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
c:\documents and settings\user\my documents\visual studio 2005\projects\練習3\練習3\main.cpp(141) : error C2664: 'errno_t strcpy_s(char *,rsize_t,const char *)' : 3 番目の引数を 'WCHAR [260]' から 'const char *' に変換できません。(新しい機能 ; ヘルプを参照)
        指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です
というエラーが出たので 
charを全部TCHAR、strcopy,strcat,printfなどを、_tcscopy,_tcscat,_tprintfと変更したのですが。実行はできるのですが、アーカイブファイルが出力されません。なぜでしょうか?また直せばいいところはどこなのでしょうか? 
今知りたいのはどうやったらアーカイブファイルが出力されるのかということです。
環境はosはwinXpコンパパイラーはVC++2005です。よろしくお願いします。


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

Name: softya [URL]  ..ハッカー(155,530ポイント)   Date: 2010/05/03(月) 22:51   No:51562     
Title: Re:アーカイブファイルについて    
たぶん、UNICODEと言うかwchar_tの事を理解できていないんだと思いますが、UNICODEにするのが無理な場合も有り得ます。
手っ取り早く直したソースコードを添付してください。それとUNICODEにする理由も教えてください。無理に変えなくても良いのではありませんか?


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

Name: たろう  ..入門者(4,066ポイント)   Date: 2010/05/03(月) 23:08   No:51565     
Title: Re:アーカイブファイルについて    
返信ありがとうございます。
UINICODEにする理由は、「マルチ バイト文字セットを使用する」でreleaseでビルドすると以下のようなエラーが出るからです。(releaseでしたい理由は、友達にあげるためにどうしてもリリースとして出したいのです。)
c:\documents and settings\user\my documents\visual studio 2005\projects\練習3\練習3\main.cpp(108) : error C2664: 'FindFirstFileW' : 1 番目の引数を 'char [64]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 
        指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 
c:\documents and settings\user\my documents\visual studio 2005\projects\練習3\練習3\main.cpp(141) : error C2664: 'errno_t strcpy_s(char *,rsize_t,const char *)' : 3 番目の引数を 'WCHAR [260]' から 'const char *' に変換できません。(新しい機能 ; ヘルプを参照) 
        指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です 

ソースは下記です。

//==============================================================================
// ArcMain                                                                        
//------------------------------------------------------------------------------
// アーカイブツール                                                                
//------------------------------------------------------------------------------
// 詳細                                                                            
//                                                                                
//                                                                                
//==============================================================================
//----------------------------------------------
// ヘッダー
//----------------------------------------------
#include <stdio.h>
#include <windows.h>
#include<TCHAR.h>
#include "arc.h"
//----------------------------------------------
// define
//----------------------------------------------

//----------------------------------------------
// enum
//----------------------------------------------
enum ARGV_TYPE
{
    ARGV_TYPE_BAT_NAME,
    ARGV_TYPE_BASE_DIR,
    ARGV_TYPE_OUT_FILE,
    ARGV_TYPE_NUM
};
//--------------------------------------------------------------
// static
//--------------------------------------------------------------
static ArcData g_arc_data;
//--------------------------------------------------------------
// プロトタイプ
//--------------------------------------------------------------
bool Archive( TCHAR* DirName, TCHAR* SaveName );
//======================================================================================
// メイン
//======================================================================================
//--------------------------------------------------------------
// メイン関数
//--------------------------------------------------------------
void main( int argc, TCHAR *argv[] )
{
    FILE* fp = NULL;
    
    if( argc != ARGV_TYPE_NUM ){
        _tprintf( _T("引数が正しくありません。\n") );
    } else {
        if( Archive( argv[ARGV_TYPE_BASE_DIR], argv[ARGV_TYPE_OUT_FILE] ) == false ){
            _tprintf( _T("正常に終了しました。\n") );
        }
    }
    
    //getchar();
}
//--------------------------------------------------------------
// 文字列中の英小文字を大文字に変換
//--------------------------------------------------------------
TCHAR* StrToUpper(TCHAR *s)
{
    TCHAR *p;
    for (p = s; *p; p++){
        if( *p == _T('.') ){
            *p = _T('_');
        } else {
            //*p = toupper(*p);
        }
    }
    return (s);
}

//--------------------------------------------------------------
// アーカイブ
//--------------------------------------------------------------
bool Archive( TCHAR* DirName, TCHAR* SaveName )
{
    WIN32_FIND_DATA    FindFileData;
    HANDLE            hFind;
    
    // ファイル先頭からの位置
    unsigned int file_point = sizeof(ArcData);
    
    FILE* archive_file;
    FILE* read_file;
    
    // 検索するファイル名
    TCHAR search_name[NAME_MAX];
    TCHAR save_name[NAME_MAX];
    TCHAR new_name[NAME_MAX];
    TCHAR parts_name[NAME_MAX];
    unsigned int copy_byte;
    int loop;
    unsigned int copy_loop;
    
    // セーブするファイル名
    _tcscpy_s( save_name, NAME_MAX * sizeof( TCHAR ), _T("out\\") );
    _tcscat_s( save_name, NAME_MAX * sizeof( TCHAR ), SaveName );
    _tcscat_s( save_name, NAME_MAX * sizeof( TCHAR ), _T(".dat") );
    
    // 検索するファイル名を作成
    // フォルダ内の全ファイルを指定する
    _tcscpy_s( search_name, NAME_MAX * sizeof( TCHAR ), DirName );
    _tcscat_s( search_name, NAME_MAX * sizeof( TCHAR ), _T("*.*") );
    
    // 最初の1行だけ実行
    hFind = FindFirstFile( search_name, &FindFileData );
    
    if(hFind == INVALID_HANDLE_VALUE) {
        _tprintf( _T("!! ERROR !! no file") );
    }


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

Name: たろう  ..初心者(5,230ポイント)   Date: 2010/05/03(月) 23:08   No:51566     
Title: Re:アーカイブファイルについて    
続きです。
    // 最初のファイルはディレクトリなのではずす
    FindNextFile( hFind, &FindFileData );
    
    bool max_over = false;
    
    while( true ){
        
        // ファイルを検索
        if( FindNextFile( hFind, &FindFileData ) == 0 ){
            
            // エラーチェック
            if( GetLastError() == ERROR_NO_MORE_FILES ){
                // ファイルがもうないなら終了
                break;
            } else {
                // そうでなければエラーで戻る
                FindClose(hFind);
                return true;
            }
        }
        
        if( g_arc_data.count < FILE_MAX ){
            
            // ヘッダに情報を書き込む
            g_arc_data.parts[ g_arc_data.count ].point = file_point;
            g_arc_data.parts[ g_arc_data.count ].size = FindFileData.nFileSizeLow;
            
            // ファイル名のコピー
            _tcscpy_s( g_arc_data.parts[ g_arc_data.count ].name, NAME_MAX * sizeof( TCHAR ), FindFileData.cFileName );
            
            // 格納するファイルの先頭からの位置計算
            file_point += FindFileData.nFileSizeLow;
            
            // ファイルの数をカウントする
            g_arc_data.count++;
        } else {
            max_over = true;
            g_arc_data.count++;
        }
    }
    
    if( max_over ){
        _tprintf( _T("!! ERROR !! FILE_MAX over : %d > %d\n"), g_arc_data.count, FILE_MAX );
        return true;
    }
    
    // 検索終了
    FindClose( hFind );
    
    // バイナリ書き込みモードでまとめるファイルを開く
    _tfopen_s( &archive_file, save_name, _T("w+b") );
    
    // ヘッダ本体
    fwrite( &g_arc_data, sizeof( ArcData ), 1, archive_file );
    
    _tprintf( _T("#ifndef __%s_H__\n"), SaveName );
    _tprintf( _T("#define __%s_H__\n"), SaveName );
    _tprintf( _T("\n\n") );
    _tprintf( _T("#define %s_MEMBER \\\n"), SaveName );
    
    for( loop = 0 ; loop < g_arc_data.count ; loop++ ){
        
        // 個別のファイルを1つのファイルにコピーする
        _tcscpy_s( new_name, NAME_MAX * sizeof( TCHAR ), DirName );
        _tcscat_s( new_name, NAME_MAX * sizeof( TCHAR ), g_arc_data.parts[loop].name );
        _tfopen_s( &read_file, new_name, _T("r+b") );
        
        for( copy_loop = 0 ; copy_loop < g_arc_data.parts[loop].size ; copy_loop++ ){
            
            // ファイルサイズ分だけ繰り返す
            fread( ©_byte, 1, 1, read_file );
            fwrite( ©_byte, 1, 1, archive_file );
        }
        _tprintf( _T("\t%s"), SaveName );
        _tcscpy_s( parts_name, NAME_MAX * sizeof( TCHAR ), g_arc_data.parts[loop].name );
        TCHAR* p_parts_name = &parts_name[0];
        p_parts_name = StrToUpper( p_parts_name );
        _tprintf( _T("( %s, %d ) /* [%d] %s */ \\\n"), parts_name, g_arc_data.parts[loop].size, loop, g_arc_data.parts[loop].name );
        
        fclose( read_file );
    }
    
    _tprintf( _T("\n") );
    _tprintf( _T("#undef  %s\n"), SaveName );
    _tprintf( _T("#define %s( _id, _size ) %s_ID_##_id, \n"), SaveName, SaveName );
    _tprintf( _T("enum %s_ID\n{\n"), SaveName );
    _tprintf( _T("\t %s_MEMBER\n"), SaveName );
    _tprintf( _T("\t %s_ID_NUM\n"), SaveName );
    _tprintf( _T("};\n\n") );
    
    _tprintf( _T("#endif\n"), SaveName );
    // ファイルを閉じる
    fclose( archive_file );
    
    
    // 正常終了
    return false;
}



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

Name: softya [URL]  ..ハッカー(155,720ポイント)   Date: 2010/05/03(月) 23:36   No:51567     
Title: Re:アーカイブファイルについて    
ソースコードを見ましたが、UNICODEとマルチバイト文字の混在になってしまっています。fopen他がマルチバイト文字のままですから。よく文字コードに付いて理解出来ないままUNICODEを使っても中々ちゃんとしたプログラムは作れないと思いますので、元のまま使った方が良いと思います。

もしかして、元のコードの状態でReleaseで出るエラーはUNICODE/マルチバイト文字セットへの切り替えがDebug/Releaseで各々別に必要であると言うことを理解されていないだけなのではと疑いを持ちましたので、プロパティを確認してみてください。


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

Name: たかぎ [URL]  ..ハッカー(181,003ポイント)   Date: 2010/05/03(月) 23:38   No:51568     
Title: Re:アーカイブファイルについて    
意味がわかりません。

> 「マルチ バイト文字セットを使用する」で実行するとアーカイブファイルが出力されるのですが、

つまり、「マルチ バイト文字セットを使用する」にすればビルドできたということですよね。
にも関わらず、

> 「マルチ バイト文字セットを使用する」でreleaseでビルドすると以下のようなエラーが出るからです。

というのはどういうことでしょうか?
Debug版ならビルドできたということでしょうか?
そんな風にはとても見えませんが...


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

Name: たろう  ..初心者(5,528ポイント)   Date: 2010/05/04(火) 00:18   No:51569     
Title: Re:アーカイブファイルについて    
softyaさん
返信ありがとうございます。
>ソースコードを見ましたが、UNICODEとマルチバイト文字の混在になってしまっています。fopen他がマルチバイト文字のままですから。よく文字
>コードに付いて理解出来ないままUNICODEを使っても中々ちゃんとしたプログラムは作れないと思いますので、元のまま使った方が良いと思います。

_tprintfなどはUNICODEではないのでしょうか?

>もしかして、元のコードの状態でReleaseで出るエラーはUNICODE/マルチバイト文字セットへの切り替えがDebug/Releaseで各々別に必要であると言うことを理解されていないだけなのではと疑いを持ちましたので、プロパティを確認してみてください。

Debug/Releaseで変更したらできるようになりました。ありがとうございます。ただUINIDCODEでやる場合はどこをどう変更すればよいのでしょうか?

たかぎさん
返信ありがとうございます。
> 「マルチ バイト文字セットを使用する」でreleaseでビルドすると以下のようなエラーが出るからです。
というのはどういうことでしょうか?
Debug版ならビルドできたということでしょうか?
そんな風にはとても見えませんが... 

UNICODE/マルチバイト文字セットへの切り替えをDebug/Releaseにしたらできるようになりました。


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

Name: softya [URL]  ..ハッカー(155,892ポイント)   Date: 2010/05/04(火) 01:08   No:51573     
Title: Re:アーカイブファイルについて    
あっ、fopenじゃなくて無いですね。申し訳ない。
ただ、ヘッダの方とか直し忘れてません?どこかにcharが残っていますよ。 編集済み


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

Name: たろう  ..初心者(5,563ポイント)   Date: 2010/05/04(火) 07:52   No:51577     
Title: Re:アーカイブファイルについて    
返信ありがとうございます。
ヘッダのcharを直しましたが、アーカイブファイルは出力されませんでした。


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

Name: たろう  ..初心者(5,767ポイント)   Date: 2010/05/04(火) 07:56   No:51578     
Title: Re:アーカイブファイルについて    
ヘッダーのソースです。
// ヘッダー
//----------------------------------------------
//----------------------------------------------
// define
//----------------------------------------------
#define FILE_MAX                            (32)        // ファイル数
#define NAME_MAX                            (64)        // 名前の長さ
//----------------------------------------------
//    プロトタイプ宣言
//----------------------------------------------
//----------------------------------------------
// enum
//----------------------------------------------

//----------------------------------------------
// struct
//----------------------------------------------
struct ArcFileData
{
    unsigned int            point;                // 先頭からのファイルの位置
    unsigned int            size;                // サイズ
    TCHAR                    name[NAME_MAX];        // 名前
};
struct ArcData
{
    int                        count;
    ArcFileData                parts[FILE_MAX];
};

//----------------------------------------------
// 関数
//----------------------------------------------

#endif


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

Name: softya [URL]  ..ハッカー(155,927ポイント)   Date: 2010/05/04(火) 10:29   No:51581     
Title: Re:アーカイブファイルについて    
どんなエラーor問題が出ているか確認されましたか?
推測出来る原因も書き出してみてください。


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

Name: たろう  ..初心者(5,710ポイント)   Date: 2010/05/04(火) 11:59   No:51584     
Title: Re:アーカイブファイルについて    
エラーはありません。問題は、アーカイブファイルが作成されないことです。
原因は、不明です。少ない情報ですが、どうかよろしくお願いします。


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

Name: softya [URL]  ..ハッカー(156,061ポイント)   Date: 2010/05/04(火) 12:06   No:51586     
Title: Re:アーカイブファイルについて    
本当にですか?
実行したプログラムから何らかのメッセージが出ていませんか?
このプログラム結構ちゃんとエラーチェックしているので、実行時に問題があればエラー状況をテキスト出力してくれるはずですが。


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

Name: たろう  ..初心者(5,570ポイント)   Date: 2010/05/04(火) 12:19   No:51590     
Title: Re:アーカイブファイルについて    
releaseのフォルダの中にサイトでダウンロードしたarc/exe/arc_test.bat(ファイルの中をreleaseの〜.exeファイルに指定して)を入れてreleaseのarc_test.batを実行してやるとoutの中にARC_TEST.hのファイルが作成されるのですが、その中が!! ERROR !! no fileと出力されます。よろしくお願いします。

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

Name: softya [URL]  ..ハッカー(156,152ポイント)   Date: 2010/05/04(火) 12:37   No:51592     
Title: Re:アーカイブファイルについて    
VC++2005のDebugビルドでデバッグしてみましょうか。
111行目辺りの
hFind = FindFirstFile( search_name, &FindFileData );
にブレークポイントを設定してプログラムを実行してみましょう。

プロジェクトのプロパティでデバックの引数に、arc_test.batで書かれていることと同じ内容を記述するのを忘れないでくださいね。main.cppのあるフォルダにinputとoutのフォルダも用意しましょう。
引数:>out\\ARC_TEST.h input\\ ARC_TEST

ブレークポイントの使い方はこちら。
http://cvwww.ee.ous.ac.jp/vc08prog.html
ブレークしたら、変数の所に思っている値が入っているか確認してみてください。
search_nameには、何が入っているべきでしょうか?


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

Name: たろう  ..初心者(5,577ポイント)   Date: 2010/05/04(火) 19:58   No:51608     
Title: Re:アーカイブファイルについて    
返信ありがとうございます。TCHARなどに変換した時のソースだと
search_nameは文字化けした文字列です。
マルチバイトでやった場合、
if( argc != ARGV_TYPE_NUM ){
printf( "引数が正しくありません。\n" );
を通ってしまうので、
enum ARGV_TYPE
{
    ARGV_TYPE_BAT_NAME,
    ARGV_TYPE_BASE_DIR,
    ARGV_TYPE_OUT_FILE,
    ARGV_TYPE_NUM
};
を変更して
enum ARGV_TYPE
{
    ARGV_TYPE_BAT_NAME=1,
    ARGV_TYPE_BASE_DIR,
    ARGV_TYPE_OUT_FILE,
    ARGV_TYPE_NUM
};

に変更したら、通ったのでそのときのsearch_nameはinput\\*.*です。


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

Name: softya [URL]  ..ハッカー(156,536ポイント)   Date: 2010/05/04(火) 23:57   No:51620     
Title: Re:アーカイブファイルについて    
まず、UNICODEで動作が不安定な理由は、NAME_MAX * sizeof( TCHAR )が間違ってます。理由は関数のリファレンスを読み直してみてください。

>マルチバイトでやった場合、
>if( argc != ARGV_TYPE_NUM ){
>printf( "引数が正しくありません。\n" );
>を通ってしまうので、 

上が意味もわからず通らないからと言って
>enum ARGV_TYPE
>{
>    ARGV_TYPE_BAT_NAME=1,
>    ARGV_TYPE_BASE_DIR,
>    ARGV_TYPE_OUT_FILE,
>    ARGV_TYPE_NUM
>};
とするのは止めましょう。
プログラムは理解して直す癖を付けないと曖昧な部分が堂々増えていきますよ。


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

Name: たろう  ..初心者(5,702ポイント)   Date: 2010/05/05(水) 08:31   No:51627     
Title: Re:アーカイブファイルについて    
返信ありがとうございます。
NAME_MAX * sizeof( TCHAR )を
numberOfElements
コピー先の文字列バッファーのサイズ
と書かれていたのですが,NAME_MAXに直してみたのですが、アーカイブファイルは出力されませんでした。
でもコピー先の文字列バッファーのサイズということは文字列のサイズに要素数を掛けたやつなのでNAME_MAX * sizeof(TCHAR)じゃないのでしょうか?


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

Name: softya [URL]  ..ハッカー(156,683ポイント)   Date: 2010/05/05(水) 11:39   No:51628     
Title: Re:アーカイブファイルについて    
>numberOfElements コピー先の文字列バッファーのサイズ 

MSDNの日本語訳が少し変ですね。numberOfElements。と言う事で要素数が正しいです。決してバイト数ではありません。

>NAME_MAXに直してみたのですが、アーカイブファイルは出力されませんでした。 

オーバーしているのは重大な問題ですが、小さくなったからと言って出力されないのは別の問題だと思います。
プログラムをステップ実行して、なぜコピーされないのか、どこが問題なのかを調べてください。


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

Name: たろう  ..初心者(6,071ポイント)   Date: 2010/05/05(水) 17:23   No:51636     
Title: Re:アーカイブファイルについて    
返信ありがとうございます。
 コピーされないのは、文字列が文字化けしているせいで
void main( int argc, TCHAR *argv[] )
argvが文字化けしているせいでファイルがコピーされないのだと思います。
なので、
if( Archive( argv[ARGV_TYPE_BASE_DIR], argv[ARGV_TYPE_OUT_FILE] ) == false ){ 

if( Archive( _T("input\\") ,_T("ARC_TEST") ) == false ){
に変更したらアーカイブファイルが出力されました。
ということはargvが変換されていないということでしょうか?
どうしたらargvのコマンド引数を文字化けせずに読み込まれるのでしょうか?
後、ARC_TEST.hの
#define ARC_TEST_MEMBER \
    ARC_TEST( listbox1_txt, 62 ) /* [0] listbox1.txt */ \
    ARC_TEST( Listbox2_txt, 115 ) /* [1] Listbox2.txt */ \
    ARC_TEST( Listbox3_txt, 208 ) /* [2] Listbox3.txt */ \
    ARC_TEST( Listbox4_txt, 123 ) /* [3] Listbox4.txt */ \
    ARC_TEST( Listdatebase_txt, 1396 ) /* [4] Listdatebase.txt */ \
    ARC_TEST( ???_exe, 28672 ) /* [5] ???.exe */ \
    ARC_TEST( ?????? ??????_txt, 38 ) /* [6] ?????? ??????.txt */ \
の?????というのが日本語で書いてあるファイルなのですが、日本語に変換されません。

どうしたらよいでしょうか?


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

Name: softya [URL]  ..ハッカー(157,643ポイント)   Date: 2010/05/05(水) 18:56   No:51643     
Title: Re:アーカイブファイルについて    
1番目の問題は、私のところは問題ありません。
本当に文字化けしているのか、argvの値がどうなっているのか全部printfして確かめてみてください。
文字化けしているのなら、別の原因があるはずです。

2番目の問題は、ヘッダに日本語が混ざるとコンパイラの動作として問題なので避けてください。つまり登録するファイルに日本語は使えません。
ただし、私のところはちゃんと表示されるんですけどね(別の問題がある可能性もありますね)。
[補足]
正確に言うと使えないことはないですがファイル名中に空白とかがあると問題が出ます。 編集済み


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

Name: たろう  ..初心者(6,329ポイント)   Date: 2010/05/05(水) 19:58   No:51654     
Title: Re:アーカイブファイルについて    
返信ありがとうございます。
何とか出力されました。ありがとうございました。
あと、
自分のところだと
_tprintf( _T("(%s, %d ) /* [%d] %s */ \\\n"), parts_name, g_arc_data.parts[loop].size, loop,         g_arc_data.parts[loop].name );
のところを
_tprintf( _T("(たろう, %d ) /* [%d] %s */ \\\n"), parts_name, g_arc_data.parts[loop].size, loop,         g_arc_data.parts[loop].name );
とやると
ARC_TEST.hのファイルの中が、
ifndef __ARC_TEST_H__
#define __ARC_TEST_H__


#define ARC_TEST_MEMBER \
    ARC_TEST(    ARC_TEST(    ARC_TEST(    ARC_TEST(    ARC_TEST(    ARC_TEST(    ARC_TEST(<==ここ
#undef  ARC_TEST
#define ARC_TEST( _id, _size ) ARC_TEST_ID_##_id, 
enum ARC_TEST_ID
{
     ARC_TEST_MEMBER
     ARC_TEST_ID_NUM
};

#endif

が腑に落ちないのですが。。。(ここ)が連なってしまうのですが、どなたかわかる方教えてください。
よろしくお願いします。


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

Name: softya [URL]  ..ハッカー(158,019ポイント)   Date: 2010/05/06(木) 14:44   No:51693     
Title: Re:アーカイブファイルについて    
ソースコードをファイル添付してもらっても良いですが、再現性を確かめたいので。

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

Name: たろう  ..初心者(6,350ポイント)   Date: 2010/05/07(金) 08:17   No:51744     
Title: Re:アーカイブファイルについて    
返信ありがとうございます。
ファイルはこれです。よろしくお願いします。


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

Name: softya [URL]  ..ハッカー(158,286ポイント)   Date: 2010/05/07(金) 11:32   No:51751     
Title: Re:アーカイブファイルについて    
見直して気づきました。
文字ロケールがマルチバイト文字のままでした。

ヘッダと
#include <locale.h>

ロケールの設定を行ってください。
_tsetlocale(LC_ALL, _T(""));

http://msdn.microsoft.com/ja-jp/library/x99tb11d%28VS.80%29.aspx

こうしないと_ftprintfのコンソールへの出力は、うまく行きません。


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

Name: たろう  ..初心者(6,378ポイント)   Date: 2010/05/07(金) 18:45   No:51755 解決!     
Title: Re:アーカイブファイルについて    
回答ありがとうございます。できました!本当にありがとうございました!

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



Name: A  ..かけだし(1,596ポイント)   Date: 2010/05/05(水) 16:09   No:51632       
Title: 四角形の当たり判定    
CまたはC++で四角形の当たり判定を実装することは可能ですか?
出来たとして、どのように宣言(?)すればいいですか?
自分ではどうやっていいか分かりません・・・


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


Name: ookami  ..中級者(9,538ポイント)   Date: 2010/05/05(水) 16:26   No:51634     
Title: Re:四角形の当たり判定    
お困りなんでしょうが、イマイチどのように回答したものか分かりかねます。

以下のような事でしょうか?

bool isHit(float Ax,float Ay,float Awidth,float Aheight,
           float Bx,float By,float Bwidth,float Bheight) {

    return (Ax<Bx+Bwidth) && 
           (Ay<By+Bheidht) && 
           (Bx<Ax+Awidth) && 
           (By<Ay+Aheight);

}


規約も参考にしてください。
http://dixq.net/board/board.html


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

Name: たかぎ [URL]  ..ハッカー(181,214ポイント)   Date: 2010/05/05(水) 17:05   No:51635     
Title: Re:四角形の当たり判定    
> CまたはC++で四角形の当たり判定を実装することは可能ですか? 

可能です。
ただし、四角形が同一平面上にあるのかどうか、曲面上にあるのか、三次元のユークリッド空間内にあるのか、非ユークリッド空間にあるのかによって難度は大きく変わります。

ookamiさんの例は、同一平面上の矩形(長方形)についてしか適用できませんね。
一般に四角形といった場合は、矩形も平行四辺形も台形もありますが、それ以外のものも当然扱わなければなりません。

まずは、どうしたいかのかを明確にすべきです。


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

Name: A  ..かけだし(1,720ポイント)   Date: 2010/05/05(水) 19:13   No:51644     
Title: Re:四角形の当たり判定    
説明不足で申し訳ありません。
簡単なブロック崩しを作っています。
正確には四角形ではなく"2D"の長方形です。で、DXライブラリで実装しようとしています。
演算子や変数の型などは分かりますが、C言語はほぼ全くやっていません。C++が入門程度。

>>ookamiさん
そんな感じなんですけど、長方形と円の衝突なので、ちょっと違います。
応用できそうな気もしますが、当たり判定についてはからっきしなもので・・・
答えて下さったのにすいません。


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

Name: 組木紙織  ..比類無きプログラマー(79,754ポイント)   Date: 2010/05/05(水) 19:22   No:51645     
Title: Re:四角形の当たり判定    
それならここを見れば分かります。
http://dixq.net/rp/34.html

#この円と長方形の当たり判定は質問多いな。
#誰か当たり判定ライブラリつくってくれないかな。


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

Name: ookami  ..中級者(9,681ポイント)   Date: 2010/05/05(水) 19:26   No:51647     
Title: Re:四角形の当たり判定    
なるほど。

私の示した例は、座標軸に平行な長方形同士の衝突判定です。

長方形と円の衝突判定をしたい、とのことですが、長方形同士の衝突判定よりも複雑になります。

あえてそっちで進めてもよいでしょうが、ブロック崩しなら、当たり判定の時だけボールを四角に見立てても、そんなに違和感はないと思いますよ。ボールが格別大きいなら別ですが...


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

Name: アトラス  ..初心者(5,840ポイント)   Date: 2010/05/06(木) 00:06   No:51673     
Title: Re:四角形の当たり判定    
最近ブロック崩しを作りましたが、私の場合

・ボールの中心のY座標がブロックの上端のY座標と下端のY座標の間にある
・ボールとブロックの左端との距離が半径以下(つまり接触している)
・1フレーム前のボールのX座標が、ブロックの左端のX座標より小さい(接触していない)

これらを満たしたら左からぶつかっていると判定、それに応じた反射角度調整

これを4方向分全部作って当たり判定を作りました。

大まかな条件はこんな感じです
もっといい判定式はありそうですけどね;


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

Name: A  ..かけだし(1,806ポイント)   Date: 2010/05/07(金) 17:23   No:51754 解決!     
Title: Re:四角形の当たり判定    
いろいろ答えて下さってありがとうございます。
おおまかなプログラムの組み方は分かりました。
最初は円と長方形の当たり判定でやってみますが、
無理だった場合は、弾は結構小さいので、
弾を四角形に見立ててやってみます。


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



Name: ムンバ  ..熟練のプログラマー(40,521ポイント)   Date: 2010/05/07(金) 01:21   No:51738       
Title:  _TRUNCATE って何ですか?    
こんばんは!お世話になります。
長文になりますが、すみません。<(_ _)>

環境:Windows7(32bit)
   Microsoft Visual C++ 2008 Express Edition SP1
   (今回は、DXライブラリは未使用だと思われます。
    程度の、プログラミング初心者です。^^;)

今、参考させて頂いている本に搭載されている例題のソースに
(以下のソース:「14歳からはじめる C言語オンラインゲーム プログラミング教室」
 内のソースを引用させて頂きます。)

#include <stdio.h>
#include <string.h>

int main(void){
        char str1[80] = "HELLO! HELLO!";
        char str2[80] = "世界";
        int num = 100;

        //strncatを使った連結
        strncat_s( str1, sizeof(str1), str2, _TRUNCATE);
        printf( str1 );
        printf( "\n" );
}

とありました。

このソースを munba.c(と名付けたファイル)に記述し
「デバッグ無しで開始(Ctrl+F5)」で実行すると
HELLO! HELLO!世界
と、コマンドプロンプトで表示されます。

上述のソースの10行目の
strncat_s → strncat に変更して、「デバッグ無しで開始(Ctrl+F5)」で実行しようとすると

1>------ ビルド開始: プロジェクト: munba, 構成: Debug Win32 ------
1>コンパイルしています...
1>munba.c
1>?:\users\???\documents\visual studio 2008\projects\munba\munba.c(10) : warning C4047: '関数' : 間接参照のレベルが 'const char *' と 'unsigned int' で異なっています。
1>?:\users\???\documents\visual studio 2008\projects\munba\munba.c(10) : warning C4024: 'strncat' : の型が 2 の仮引数および実引数と異なります。
1>?:\users\???\documents\visual studio 2008\projects\munba\munba.c(10) : warning C4047: '関数' : 間接参照のレベルが 'size_t' と 'char [80]' で異なっています。
1>?:\users\???\documents\visual studio 2008\projects\munba\munba.c(10) : warning C4024: 'strncat' : の型が 3 の仮引数および実引数と異なります。
1>?:\users\???\documents\visual studio 2008\projects\munba\munba.c(10) : warning C4020: 'strncat' : 実引数が多すぎます。
1>?:\users\???\documents\visual studio 2008\projects\munba\munba.c(10) : warning C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        c:\program files\microsoft visual studio 9.0\vc\include\string.h(144) : 'strncat' の宣言を確認してください。
1>リンクしています...
1>マニフェストを埋め込んでいます...
1>ビルドログは "file://?:\Users\???\Documents\Visual Studio 2008\Projects\munba\Debug\BuildLog.htm" に保存されました。
1>munba - エラー 0、警告 6
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========

以上の警告が6つ出て

「munba.exeは動作を停止しました
 問題が発生したため、プログラムが正しく動作しなくなりました。
 プログラムは閉じられ、解決策がある場合はWindowsから通知されます。」

この画面で、右下に「プログラムの終了(C)」と出るので
このボタンを押すと、プログラムが終了して
コマンドプロンプト画面内?に
「続行するには、何かキーを押してください...」と出るので
何かキーを押すと、コマンドプロンプトが終了します。

一方、この元のソース(strncat_s のまま)を
munba.cpp(ファイル)で実行すると、正常に実行されてる様なのですが
strncat_s → strncat に変更すると

「ビルドエラーが発生しました。続行して、最後に成功したビルドを実行しますか?」
と表示され

出力元の表示(S):ビルド内?には

1>コンパイルしています...
1>munba.cpp
1>?:\users\???\documents\visual studio 2008\projects\munba\munba.c(10) : error C2660: 'strncat' : 関数に 4 個の引数を指定できません。
1>ビルドログは "file://?:\Users\???\Documents\Visual Studio 2008\Projects\???\Debug\BuildLog.htm" に保存されました。
1>munba - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

漠然とした質問で、大変申し訳ないのですが

過去ログの
http://dixq.net/board/log/bbslog_88.html (No:28295 )
の、ご質問にも _TRUNCATE がありました。

今まで購入した本には搭載されていなかったので
ひたすらネットで検索かけて調べてみたのですが
関数の第4引数に使用される場合が多いという事が解っただけで
自力では理解できませんでした。

_TRUNCATE って何ですか?

今まで調べていて、こんな時間になってしまいました。
理解できなかったので質問させて頂きました。
勝手ながら、今日は寝てしまいます。<(_ _)>

申し訳御座いませんが、ご指導頂ける方、宜しくお願い致します。


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


Name: たかぎ [URL]  ..ハッカー(182,844ポイント)   Date: 2010/05/07(金) 01:44   No:51740     
Title: Re: _TRUNCATE って何ですか?    
ドキュメントぐらい読む習慣をつけましょう。
http://msdn.microsoft.com/ja-jp/library/ms175769(v=VS.80).aspx


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

Name: ムンバ  ..熟練のプログラマー(40,595ポイント)   Date: 2010/05/07(金) 10:34   No:51749 解決!     
Title: Re: _TRUNCATE って何ですか?    
おはようございます。

高木さん、サイトのご紹介ありがとうございました。
こういうページがあるのを初めて知りました。
勉強不足です。すみません。
読んでみます。ありがとうございました。(謝


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



Name: たいちう  ..比類無きプログラマー(79,372ポイント)   Date: 2010/05/06(木) 12:51   No:51690       
Title: 【アプリ紹介】2D&3Dのグラフ描画iPhoneアプリ「Quick Graph」【雑談】    
http://www.appbank.net/2010/05/02/iphone-application/117674.php
http://www.hyuki.com/d/201005.html#i20100505175046

結城先生の日記で紹介されていました。
以前Maさんが似たようなプログラムを作っていましたよね。

iPhoneなので私が使うことはないでしょうけど、
いずれWindows向けのフリーソフトでも、
似たようなことができるようになるのでしょう。

高校生にとって与えられた数式を簡単に視覚化できるのは魅力でしょうが、
こればっかり使っていて、実力が付くのかどうかが疑問です。
柔らかい食べ物ばかりだと顎が丈夫にならない、みたいな。


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


Name: たかぎ [URL]  ..ハッカー(182,021ポイント)   Date: 2010/05/06(木) 14:04   No:51692     
Title: Re:【アプリ紹介】2D&3Dのグラフ描画iPhoneアプリ「Quick Graph」【雑談】    
大きな声ではいえませんが、私はAppleは好きですが(普段Macを使っているぐらいなので)キャリアが嫌いなのでiPhoneは意地でも使いません。iPod touchなら使ってもよいのでそちらを検討していたりします。
結構この類のソフトは好きなので(というか数学が好きなので)、機会があれば使ってみたいと思います。

それはそうと...

> 高校生にとって与えられた数式を簡単に視覚化できるのは魅力でしょうが、 
> こればっかり使っていて、実力が付くのかどうかが疑問です。 
> 柔らかい食べ物ばかりだと顎が丈夫にならない、みたいな。

そうですね。
基礎力を身に付けた上で便利な道具を使うならよいのですが、はなから便利な道具に依存するとまったく潰しが効かなくなります。
今回の件に限らず、

暗算も筆算もまともにできないのに電卓を使わせるとか、
手書きで製図ができないのにCADを使わせるとか、
手縫いもできないのにコンピュータミシンを使わせるとか、
ディレクトリや環境変数などの概念を知らないものに統合開発環境を使わせるとか、

こういった教育をやっていると使えない人間ばかり増えていきます。
ほかには、二次方程式の解や三平方の定理など、証明を教えずに公式だけ丸暗記させるのも似たようなもんです。


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

Name: Ma  ..比類無きプログラマー(95,234ポイント)   Date: 2010/05/07(金) 10:27   No:51748     
Title: Re:【アプリ紹介】2D&3Dのグラフ描画iPhoneアプリ「Quick Graph」【雑談】    
あれ、名前が出てる。(笑

あのときは、お世話になりました。

> 高校生にとって与えられた数式を簡単に視覚化できるのは魅力でしょうが、  
> こればっかり使っていて、実力が付くのかどうかが疑問です。  
> 柔らかい食べ物ばかりだと顎が丈夫にならない、みたいな。 

それはどうでしょうね。
最初からあまり深く考えるつもりがない人の場合、このような視覚化は理解への手助けになります。
考えることがすきな人は図形イメージへのショートカットができることになりますが、想像力を育てる事ができません。

長所も短所もありますが、個人的には長所のほうが多いのだと思います。


ここから、電卓に限った話になります。

ちなみに、アメリカの学校では中学生から(数学のクラスに)全員電卓を持ち込む事が必要で、
高校になると約一万円する高性能電卓(グラフ機能、プログラム機能、当等)を全員が買わなければなりません。

当然、学校では電卓を使いまくりですが、日本人と比べたら電卓なしでの計算は著しく弱いです。
高校生にもなれば、暗算で掛け算とかもできますが、中学生だと1桁同士の掛け算を暗算できないくらいです。
(数人とかではなくて、数割です。アンケートとったことないので、正確にはわかりませんが。)
ここで考えずに電卓に頼り始めたら、当然本質の理解は得られません。

*「ただし」、逆に電卓を使いこなす力は日本人よりもかなり上手くなる事は言うまでもありません。
当然、手で計算するより電卓を使う事でできることはかなり大きいです。
しかも、実際に数学の知識を生かすときは、電卓を使ってはいけない、あるいはできないという事が少ないですね。
あと、日本の数学の問題は手で解けるように作られていますが、アメリカの問題は電卓がないと解けない問題が多いですね。(より実世界の計算に近いことができるようになる。)

でもおっしゃるとおり、だからといって、本質理解が欠けてしまえば本末転倒です。


で、本題に戻りますが、このような視覚化アプリなら本質を理解するための妨害になることは少ないと思います。
というのは、電卓のように仕事を楽にする計算を肩代わりする、というよりは、楽しむ、わかりやすくする
ということをして、本来の勉強に支障を起こすことはないとおもいます。


とまぁ、あっちいったりこっちいったりで、文がまとまってないですが、基本的にアプリ使え派です。
ですが、本質理解重要派でもあります。 編集済み


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




 
[ 1 , ... ]
 
 
管理者画面   RSS   + Powered By 21style +