C言語何でも質問掲示板


アンケートにご協力下さい → >> アンケートフォーム <<

規約と使い方

 
   外部シンボルが未解決 ....   
     ・[15059] バグ 
     ・[15079] ぬっち 
   就職関係   
     ・[15066] あきら 
     ・[15068] やそ 
     ・[15069] バグ 
     ・[15072] 管理人 
     ・[15078] 大工 
   こんばんは!   
   VisualC++の方がいい? ....   
     ・[15002] tkmakwins15 
     ・[15003] tkmakwins15 
     ・[15005] toyo 
     ・[15008] へろり 
     ・[15010] ウォビワン 
     ・[15011] tkmakwins15 
     ・[15012] バグ 
     ・[15015] ウォビワン 
     ・[15019] 管理人 
     ・[15023] バグ 
     ・[15024] ウォビワン 
     ・[15048] ウォビワン 
     ・[15049] 管理人 
     ・[15050] ウォビワン 
   日ごろから参考にさせ ....   
     ・[14954] 管理人 
     ・[14956] tkmakwins15 
     ・[15047] mama 
   はじめまして   
     ・[15038] 管理人 
     ・[15041] 管理人 
   プログラムの書き方   
     ・[14982] あきら 
     ・[14983] やそ 
     ・[14990] あきら 
     ・[15000] やそ 
     ・[15001] やそ 
     ・[15006] あきら 
     ・[15031] あきら 
     ・[15033] やそ 
     ・[15036] あきら 
   DXライブラリの設定で ....   
     ・[15032] あきら 
     ・[15034] 透夜 
   カーソルの移動につい ....   
     ・[14992] シュバ 
     ・[15007] やそ 
   ScreenFlipでエラー   
     ・[14985] tkmakwins15 
     ・[14986] 山下 
     ・[14987] tkmakwins15 
     ・[14988] 山下 
     ・[14989] tkmakwins15 
     ・[14999] 山下 
   DXライブラリの構文エ ....   
     ・[14946] 管理人 
     ・[14948] tkmakwins15 
     ・[14949] tkmakwins15 
     ・[14958] ウォビワン 
     ・[14959] tkmakwins15 
     ・[14973] ウォビワン 
     ・[14974] tkmakwins15 
     ・[14975] ウォビワン 
     ・[14976] tkmakwins15 
     ・[14977] tkmakwins15 
     ・[14978] ウォビワン 
     ・[14979] tkmakwins15 
     ・[14980] ウォビワン 
   αブレンド   
     ・[14966] やそ 
     ・[14967] 管理人 
     ・[14968] kazuoni 
     ・[14972] 管理人 
   音をつけたいのですが ....   
     ・[14964] 管理人 
     ・[14965] tkmakwins15 
     ・[14970] バグ 
     ・[14971] 由良 
   c/c++ 先に学んだ方が ....   
     ・[14899] tkmakwins15 
     ・[14900] tkmakwins15 
     ・[14902] たかぎ 
     ・[14955] 組木紙織 
     ・[14957] たかぎ 
   ゲームプログラミング ....   
     ・[14842] tkmakwins15 
     ・[14862] じゅう 
     ・[14950] あきら 
     ・[14951] 管理人 
     ・[14952] あきら 
   パッドについて   
     ・[14944] Justy 
     ・[14947] うなぎ 
   画面変更について   
     ・[14923] 雷 
     ・[14924] ぬっち 
     ・[14925] バグ 
     ・[14926] Justy 
     ・[14928] 管理人 
     ・[14941] ぬっち 
     ・[14943] ぬっち 
     ・[14945] 管理人 
   重複に定義されている ....   
     ・[14931] box 
     ・[14932] kazuoni 
     ・[14933] box 
     ・[14934] kazuoni 
     ・[14935] box 
     ・[14936] kazuoni 
     ・[14937] box 
     ・[14938] kazuoni 
     ・[14939] box 
     ・[14940] kazuoni 
   質問です   
     ・[14891] やそ 
     ・[14892] com 
     ・[14915] com 
     ・[14922] 雷 
     ・[14927] com 
   分割   
     ・[14919] box 
     ・[14920] kazuoni 
   イベント? スクリプ ....   
     ・[14887] へろり 
     ・[14889] りーくん 
     ・[14890] へろり 
     ・[14894] Hermit 
     ・[14916] りーくん 
     ・[14917] たかぎ 
   C++の良い解説のサイト ....   
     ・[14912] バグ 
     ・[14914] kz 
   シューティングゲーム ....   
     ・[14879] 組木紙織 
     ・[14883] 迷える羊 
     ・[14896] 組木紙織 
     ・[14905] 迷える羊 
     ・[14906] 組木紙織 
     ・[14907] 迷える羊 
     ・[14911] 組木紙織 
     ・[14913] 迷える羊 
   こんばんは。   
     ・[14868] tkmakwins15 
     ・[14869] 組木紙織 
     ・[14870] 謎の塊 
     ・[14877] 迷える羊 
     ・[14909] 謎の塊 
   このサイトのリンクに ....   
     ・[14864] 管理人 
     ・[14872] ふるむ〜ん 
     ・[14874] 管理人 
     ・[14908] ふるむ〜ん 
   ウィンドウの大きさを ....   
     ・[14904] 上記 
   変なエラーがでます。   
     ・[14897] 組木紙織 
     ・[14903] じゅう 
   ☆四聖龍神録 ダウン ....   
     ・[14630] みんみ 
     ・[14631] taku.net 
     ・[14635] メル 
     ・[14636] 管理人 
     ・[14640] tkmakwins15 
     ・[14642] クロカモ 
     ・[14643] 管理人 
     ・[14645] tkmakwins15 
     ・[14648] 秋 
     ・[14652] 管理人 
     ・[14653] 秋 
     ・[14654] 管理人 
     ・[14655] 管理人 
     ・[14659] hamatin 
     ・[14664] tkmakwins15 
     ・[14684] マンGO 
     ・[14691] 管理人 
     ・[14694] 管理人 
     ・[14699] nayo 
     ・[14701] kura 
     ・[14702] 管理人 
     ・[14745] 管理人 
     ・[14761] 管理人 
     ・[14831] 管理人 
     ・[14840] 通りすがり 
     ・[14843] tkmakwins15 
     ・[14846] 管理人 
     ・[14853] tkmakwins15 
     ・[14861] カモナベ 
     ・[14871] うう 
     ・[14876] 管理人 
     ・[14893] tkmakwins15 
   こんばんは。   
     ・[14875] 管理人 
     ・[14880] じゅう 
     ・[14881] 管理人 
     ・[14882] じゅう 
     ・[14884] やそ 
     ・[14886] じゅう 
   ゲームで使用する画像 ....   
     ・[14857] 管理人 
     ・[14859] mist 
     ・[14866] 管理人 
   HPのカウンタが・・ ....   
     ・[14865] 管理人 
   ウィンドウモードとフ ....   
     ・[14858] 木霊 
     ・[14863] kz 
   画像と背景について   
     ・[14848] 管理人 
     ・[14854] 迷える羊 
   新規プロジェクト   
     ・[14835] tkmakwins15 
     ・[14851] ハーブ 
   DXライブラリでメニ ....   
     ・[14845] Justy 
     ・[14850] kz 
   はじめまして   
     ・[14838] やそ 
     ・[14849] 管理人 
   このサイトに感謝   
     ・[14847] 管理人 
   ウインドウの状態の取 ....   
     ・[14833] Justy 
     ・[14834] KN 
   16進数を10進数に ....   
     ・[14826] box 
     ・[14827] box 
     ・[14828] やそ 
   C言語の勉強方法につい ....   
     ・[14814] 管理人 
     ・[14815] バグ 
     ・[14817] たかぎ 
     ・[14824] 勉強マン 
   継承についての質問で ....   
     ・[14773] GPGA 
     ・[14780] ものもん 
     ・[14785] 組木紙織 
     ・[14786] ものもん 
     ・[14816] keichan 
     ・[14823] tkmakwins15 
   効率の良いデバッグモ ....   
     ・[14760] Justy 
     ・[14776] GPGA 
     ・[14781] Justy 
     ・[14804] YuO 
     ・[14806] Justy 
     ・[14822] GPGA 
   凄い勢いでつまずいた ....   
     ・[14813] GPGA 
     ・[14818] アル 
     ・[14819] GPGA 
     ・[14821] アル 
   ビットマップ表示が思 ....   
     ・[14709] やそ 
     ・[14710] tokumei tokuo 
     ・[14711] Mist 
     ・[14713] tokumei tokuo 
     ・[14714] やそ 
     ・[14716] GPGA 
     ・[14717] tokumei tokuo 
     ・[14718] Mist 
     ・[14719] tokumei tokuo 
     ・[14720] Mist 
     ・[14721] tokumei tokuo 
     ・[14722] Mist 
     ・[14725] GPGA 
     ・[14726] tokumei tokuo 
     ・[14727] Mist 
     ・[14729] tokumei tokuo 
     ・[14732] Mist 
     ・[14733] 通りすがり 
     ・[14737] 雷 
     ・[14764] tokumei tokuo 
     ・[14774] やそ 
     ・[14810] tokumei tokuo 
     ・[14820] Mist 
   受験とC言語の方向性   
     ・[14807] box 
     ・[14809] tkmakwins15 
     ・[14811] yoshi 
   データファイル処理の ....   
     ・[14791] てんてん 
     ・[14792] toyo 
     ・[14794] 組木紙織 
     ・[14801] へろり 
     ・[14802] へろり 
     ・[14803] 組木紙織 
   DXライブラリのウイ ....   
     ・[14798] tkmakwins15 
     ・[14800] のいも 

Name: ぬっち  ..ぴよぴよ(874ポイント)   Date: 2008/03/21(金) 00:11   No:15052       
Title: 外部シンボルが未解決?    
こんばんは、また詰まってしまったので質問させていただきますm(--)m

シューティングゲームの館の第8節にて、サンプルをコピペしてプログラムを実行してみたところ、エラーが発生しました。(ちなみにBCC Developerを使っています)
「プロジェクトの設定」−「アプリケーション」−「ターゲット」をコンソールアプリケーションにしたところ
Error: 外部シンボル '_main' が未解決
と出てしまい、
Windowsアプリケーションとしたところ、
Error: 外部シンボル '_img_player_shot' が未解決
Error: 外部シンボル '_PlayerShot' が未解決
と出てしまいました。

過去ログを見て、externをWinmain外に出しても何ら変化がありませんでした。
改善すべき点と、アプリケーションの使い分け方を教えていただけないでしょうか?

よろしくお願いします。


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


Name: バグ  ..比類無きプログラマー(78,775ポイント)   Date: 2008/03/21(金) 09:04   No:15059     
Title: Re:外部シンボルが未解決?    
コンソールアプリケーションを指定したのならば、Winmain関数ではなく、main関数を使用して下さい。

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

Name: ぬっち  ..ぴよぴよ(899ポイント)   Date: 2008/03/21(金) 23:03   No:15079 解決!     
Title: Re:外部シンボルが未解決?    
バグさん返答ありがとうございます。

無事解決しました^^


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



Name: 大工  ..プログラマー(26,692ポイント)   Date: 2008/03/19(水) 12:27   No:14995       
Title: 就職関係    
お久しぶりです, 大工です。

春から3回生で就職活動がちらほらと話題に出てきました。

個人的にはグラフ理論が主で離散数理的な知識を利用する仕事に就きたいと思っています。

ですが, 具体的にどんな仕事があるのか分かりません。。。

どんな仕事があるのでしょうか?


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


Name: あきら  ..初心者(7,002ポイント)   Date: 2008/03/21(金) 13:40   No:15066     
Title: Re:就職関係    
大工様

こんにちは

>個人的にはグラフ理論が主で離散数理的な知識を利用する仕事に就きたいと思っています。

私は,グラフ理論も離散数理的な知識が何かはわかりません。

しかし,多くの学生は大学・専門学校で就職相談科で相談をしたり,リクナビ,毎日ナビに登録をして情報収集を行ったり,上級生に相談するというイメージがあります。

ですので,そういった活動をする事で求めているものが見つけやすくなるのではないかと思います。

会社というのは組織であり,組織は役割を分担する事で成り立っています。

大きな会社ほど,役割が分担される傾向があるので望んでいるものがみつかりやすいと思います。

個人的な興味ですが,離散数理的な知識はどういったもので,どういった時に役に立つものなのでしょうか。


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

Name: やそ  ..プログラマー(33,772ポイント)   Date: 2008/03/21(金) 15:49   No:15068     
Title: Re:就職関係    
離散数理(離散数学)とは・・・
http://www.ngm.ed.ynu.ac.jp/negami/document/discmath/discmath.html

で解説されています。まあ、コンピュータ向きな理論では有りますね。


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

Name: バグ  ..比類無きプログラマー(78,874ポイント)   Date: 2008/03/21(金) 15:59   No:15069     
Title: Re:就職関係    
会社が求める事をこなせる人材であるならば、引く手数多でしょうが…
これしかできないから、これだけをやらせて欲しいというのであれば、仕事にするのは止めておいた方が無難でしょう。自分で営業して顧客開拓して、組織に属さずにフリーで活動するならば、有りだとは思いますけど…


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

Name: 管理人 [URL]  ..伝説のハッカー(537,355ポイント)   Date: 2008/03/21(金) 16:34   No:15072     
Title: Re:就職関係    
シミュレーション関係の研究を大学でやってる人はよく研究員として引っ張られると聞きますが、
ごく一部の数学的知識を会社が使って欲しいという要望はかなり狭い世界になりそうな気がします・・。


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

Name: 大工  ..プログラマー(26,804ポイント)   Date: 2008/03/21(金) 22:12   No:15078     
Title: Re:就職関係    
返信が遅れました。。。。

みなさん返信ありがとうございます。

例えば, カーナビの(動的な)ルート検索だとか携帯電話の基地局の混み具合を解析して快適に通信を行うルートを検索するとかそんな管理人様の言う通りに職業って限られますよね・・・・


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



Name: 謎の塊  ..かけだし(1,270ポイント)   Date: 2008/03/21(金) 19:26   No:15074       
Title: こんばんは!    
あれから、少しずつ進めていましたが、また手が詰まってしまったので解決法を教えてもらえませんか?
言語はc言語でやっています。
添付ファイルががソースになります、長い上に見にくくて申し訳ありません。
後半の Buki_syousai(i,&mys);
    Kougeki_suru(mys->power[0],mys.namae_fuda[0],&mys,&tekis);
   などが全てエラーになってしまいます。
二重の関数が原因なのか、ポインタの宣言が問題なのか、まだ勉強不足で分かりません。
凄腕のプログラマーさん、よろしくお願いします。


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




Name: ウォビワン  ..かけだし(1,412ポイント)   Date: 2008/03/19(水) 14:26   No:14998       
Title: VisualC++の方がいい?    
ここでは、Borlandのコンパイラでは説明してなくて、
VisualC++で説明してあるのですが、Borlandでいいのでしょうか?
僕はBorlandで導入してしまったんですが。
もしかして、VC++の方が良かったのでしょうか?

もし、VC++の方が良かったのなら、まだ全然プログラムを書いてないので
間に合うと思います。なので、
よろしくお願いします。


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


Name: tkmakwins15 [URL]  ..比類無きプログラマー(61,051ポイント)   Date: 2008/03/19(水) 16:05   No:15002     
Title: Re:VisualC++の方がいい?    
Dxライブラリならばどちらも同じです。
ただし、VC特有の関数などは使えません。
たぶんゲームプログラミングの館のプログラムも動くでしょう。


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

Name: tkmakwins15 [URL]  ..比類無きプログラマー(61,076ポイント)   Date: 2008/03/19(水) 16:07   No:15003     
Title: Re:VisualC++の方がいい?    
あっ、でもVCのほうが高機能ですね。でもVC自体は重いかもしれません。

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

Name: toyo  ..初心者(6,554ポイント)   Date: 2008/03/19(水) 18:25   No:15005     
Title: Re:VisualC++の方がいい?    
デバッグはVC++の方がやりやすい
自分は両方使ってます


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

Name: へろり  ..入門者(3,566ポイント)   Date: 2008/03/19(水) 19:05   No:15008     
Title: Re:VisualC++の方がいい?    
Microsoft社製の処理系では無名構造体が定義出来るなど、本来のC言語の規格にはない
独自規格を採用していたり、若干の差異は見られますが基本的には変わりません。
高機能と言ってしまえばそうなのかも知れませんが、規格にない機能を手放しで喜ぶのはどうかと思います。

大きな違いがあるとすれば、統合開発環境としての使い勝手でしょう。
これはもう慣れに過ぎず、Excelを使うかLotus1-2-3を使うかの違いです。

tuyoさんがデバッグを取り上げていますが、Boarland社製もC++ Builderといった統合開発環境に搭載されてる
デバッガも相当強力なデバッガで、使い勝手もVCと比べて、遜色のあるものではありません。

個人的にはVC++をお勧めします。


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

Name: ウォビワン  ..かけだし(1,455ポイント)   Date: 2008/03/19(水) 20:11   No:15010     
Title: Re:VisualC++の方がいい?    
そうですか。
VCならここでも紹介してるので、
変えようと思います。
ありがとうございました。

あと、最新のVC++2008も無料(?)でダウンロードできるらしいですが、
2005をダウンロードした方がいいのでしょうか?


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

Name: tkmakwins15 [URL]  ..比類無きプログラマー(61,435ポイント)   Date: 2008/03/19(水) 20:35   No:15011     
Title: Re:VisualC++の方がいい?    
うーん、難しいところですねぇ。2005のほうが使ってる人が多いので聞きやすいとは思いますが、2008のほうが導入段階は簡単だったりします。

ただ、コンソールアプリをVCで作るにしても、BCCでコンパイルできるかどうかはチェックしておいたほうがいいとも思います。
一応の互換性チェックということで。(GCCとかでもいいかも。)


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

Name: バグ  ..比類無きプログラマー(78,661ポイント)   Date: 2008/03/19(水) 20:55   No:15012     
Title: Re:VisualC++の方がいい?    
BCCでコンソールアプリを使用する際に注意するのはファンクションキーやカーソルキーなどの入力を取得する際に、戻り値が違う事ですかねぇ…あれにはビックリしました。

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

Name: ウォビワン  ..かけだし(1,507ポイント)   Date: 2008/03/19(水) 22:33   No:15015     
Title: Re:VisualC++の方がいい?    
なるほど・・・・・・。
ちょっと良く分かりませんがw
もし、2008をダウンロードして、ここで紹介している
2005のやり方でやったら少し違ってしまうのでしょうか?
それとも、関係ないんですかね?


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

Name: 管理人 [URL]  ..伝説のハッカー(535,113ポイント)   Date: 2008/03/19(水) 23:45   No:15019     
Title: Re:VisualC++の方がいい?    
2008は使った事無いですが、2008だと2005で必要なSDKの導入などが必要ないようですね。
でも、私は2005を使ってて不便に思ったこと無いですし、知人の専門家の方なんて2003を使い続けていらっしゃるそうですから、新しい物を導入する意味はあまり無いように思います・・。
出たばかりのvistaのように新しいものはバグがあるかもしれないと思うのであまり好みません・・。


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

Name: バグ  ..比類無きプログラマー(78,725ポイント)   Date: 2008/03/20(木) 00:39   No:15023     
Title: Re:VisualC++の方がいい?    
一度だけですが、VS2008を起動させようとしたら、起動中のアプリが全て強制的に終了した事があって肝を冷やした事があります(笑)
でも、最近はVS2008のファンになりつつあります。慣れてくると相当に使いやすいですよあれ♪


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

Name: ウォビワン  ..かけだし(1,442ポイント)   Date: 2008/03/20(木) 00:43   No:15024     
Title: Re:VisualC++の方がいい?    
う〜〜〜〜〜〜〜〜〜〜〜〜ん。
どっちにすればいいんだろう・・・・・・・。
大して変わらないとは思いますが、やっぱり2005かなぁ。
それとも2008かなぁ。
・・・なんで導入から悩んでるんでしょうねぇ・・・。
迷うです。



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

Name: ウォビワン  ..かけだし(1,545ポイント)   Date: 2008/03/20(木) 19:40   No:15048     
Title: Re:VisualC++の方がいい?    
すいません。
いろいろごちゃごちゃしていて、結局もう一回
2008をダウンロードして設定しなおそうと思うんですが、
また、製品登録みたいなのをしなきゃいけないのでしょうか?
それとも、もうしなくていいのでしょうか?
グダグダしていてすいませんが教えてください。


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

Name: 管理人 [URL]  ..伝説のハッカー(536,340ポイント)   Date: 2008/03/20(木) 21:06   No:15049     
Title: Re:VisualC++の方がいい?    
2008を使用したこと無いので良く知りませんが、無料ソフトですから、最初にメルアドか何か登録する必要はあるかもしれませんが、それだけじゃないでしょうか?

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

Name: ウォビワン  ..かけだし(1,577ポイント)   Date: 2008/03/20(木) 21:10   No:15050 解決!     
Title: Re:VisualC++の方がいい?    
わかりました。
とりあえず、出来るようになったと思います。
ありがとうございました。


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



Name: mama  ..ぴよぴよ(22ポイント)   Date: 2008/03/17(月) 18:11   No:14953       
Title: 日ごろから参考にさせてもらっています    
どうもこんにちは。
まだプログラムを始めたばかりなのですが非常に分かりやすく参考にさせてもらってます。
ひとつ質問なのですがさらに解説ページを増やすという予定はありますか?
敵の動きや画面のスクロール方法などまだ未熟なところがあり自力でなんとかしているところでありますが
もしここで更新される予定があるのであれば是非期待しているのですが。


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


Name: 管理人 [URL]  ..伝説のハッカー(534,431ポイント)   Date: 2008/03/17(月) 18:30   No:14954     
Title: Re:日ごろから参考にさせてもらっています    
こんにちは。

増やす予定は沢山あるものの、いつになるかが不明です^^;
今一番最初に更新予定なのが、シューティングゲームプログラミングの館です。
いい加減なところで止まっているのと相応しくないアルゴリズムがあれこれ含まれているのでちゃんと書き直そうと思っています。
四聖龍神録のソースコードを元に作っていくので将来的に四聖龍神録と同じものが出来上がるようなページにしようと思っています・・・・が!
半年かかって作ったゲームなので、章わけにすると一体何百章になるかわからないので、
その辺もどう効率化しようか悩んでいます;

またゲームプログラミングの館もメニュー項目が統一感がなく、見にくいので何とか見やすくしようと思っています。
四聖龍神録ver.2も製作しないといけないし、他の友達からゲームの共同作成依頼が来ているのでそっちもしないといけなかったり、
まず、リアルが忙しいので趣味に避ける時間が今本当に少なく、現在は四聖龍神録の修正パッチを作るだけで手一杯な状態です。

就職活動が終わればまた趣味にさける時間も増えるはずですので、後2ヶ月位はスローペースかもしれません;


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

Name: tkmakwins15 [URL]  ..熟練のプログラマー(59,968ポイント)   Date: 2008/03/17(月) 20:08   No:14956     
Title: Re:日ごろから参考にさせてもらっています    
シューディングゲームの館が四聖龍神録の製作講座っぽくなるってことですか、それはいい考えですね。
一つ意見があるのですが、ゲーム製作に必要な数学/物理講座を作ってみてはどうでしょうか?


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

Name: mama  ..ぴよぴよ(92ポイント)   Date: 2008/03/20(木) 19:29   No:15047     
Title: Re:日ごろから参考にさせてもらっています    
シューティングゲームプログラミング、ものすごく参考になると思います
私のほうも書店などに足を運び、努力してみます
これからもちょくちょく覗かせていただきます
ありがとうございました


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



Name: ゆーた  ..ぴよぴよ(252ポイント)   Date: 2008/03/20(木) 07:15   No:15029       
Title: はじめまして    
はじめまして^^
ゆーたといいます

自分は情報科(と言っても高校なのでショボい。ちなみにやっているのはC言語)の生徒なのですが、小説を書いています。

そして自分の物語をゲーム(RPG)にしたいと思い、色々検索してみたところこのサイトと出逢うことできました。

どんな感じか色々みてみたのですが、CとC++が何が違うところからわからないし、学校でやったことはほ〜んのちょっと役にたつかどうかも怪しい内容でした(高校2年のこの時期にもかかわらずorz)

こんなんで本当に作れるのかどうか不安なのですが、まず何をやったらいいかもわかりませんTTb

とりあえずVisualC++(2008)は導入し、設定も終わっています。

作る場合は2D(とりあえずドット絵みたいな感じの)で充分だと思っているのですが、とりあえず館を読み進めるとして、グラフィックなどの作成もしたほうがいいのでしょうか?

なんか抽象的ですみませんが、なにかアドバイスを下さると本当に助かります!!
また、RPGを作る上で関連するオススメのフリーソフト、書籍等ありましたら、
教えていただけるとうれしいです^^




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


Name: 管理人 [URL]  ..伝説のハッカー(535,769ポイント)   Date: 2008/03/20(木) 14:13   No:15038     
Title: Re:はじめまして    
こんにちは。
小説を書いているということで、きっと最初から作りたいゲームのストーリーを思い描いている事と思います。

FF1やドラクエ1のようなゲームなら、プログラミング初心者でも少し頑張れば作れると思います。
どんなにC初心者でもゲームは作れますが、効率よく作れるかどうかは別問題です。
実際Cを始めたばかりの人が、大規模なゲームでも拡張性や汎用性のある関数を集めて構築することはすぐには不可能だと思います。

そういう意味でゲーム作成になれるため「まず小さなゲームをいくつも作ってみる」ことが大事です。
確かに書籍を読む事は大事ですが、例えばゲームプログラムについての本は私は読んでいません。
お遊び程度ならそれでも結構作れるものですよ。

いや、基礎からきっちり勉強してコツコツやっていきたいという方もいらっしゃるでしょうし、
好きなスタイルで勉強されたらいいと思いますが、私は試行錯誤タイプなので、そっちでやりました。
自分の思いつくままにゲームを作りながら作り方を覚えていく方が、教科書をただ読んでいくよりよっぽど楽しかったので。

質問者さんのスキルがどれ位かよくわかりませんが、かなり入門の部分しかまだ解っていないというのでしたら
まずジャンケンゲームとか作ってみてはどうでしょうか。

「グー」「チョキ」「パー」の3つの画像をペイントで書くかどっかから取ってきて用意します。
ジャンケン・・と表示させてキーボード入力を受付、キーボードにそってゲーム結果を表示するようなゲームなら
if文とループ文だけわかれば作れると思います。

「まずなれる」のが一番だと思いますし、思いつく端からミニゲームを沢山作ってみて下さい。
また「自作関数」は最低出来るようになっておいたほうがいいと思います。

まだC言語の基本的なことがわかってない場合は
http://www5c.biglobe.ne.jp/~ecb/c/c00.html
1,2,3,4,7章
位は解った方がいいと思います。7章の再帰関数とかはいらないと思います。


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

Name: 管理人 [URL]  ..伝説のハッカー(536,269ポイント)   Date: 2008/03/20(木) 14:24   No:15041     
Title: Re:はじめまして    
また、ミニゲームをいくつか作っていく中で「どうやったら効率よくなるだろうか」という事を考えながら作って行って下さい。
きっと初めてみようみまねで作るとこんなプログラムになると思います。


main{
計算;
描画;
計算;
描画;
キー入力受付;
  計算;
  描画;
}


こんなプログラムは書いているうちに

main{
  ループ{
キー入力受付;
    計算;
描画;
  }
}

このほうが効率よいことに気づくでしょうし、そのうち


キー入力制御関数(){
//
}

計算関数(){
//
}

描画関数(){
//
}

main{
ループ{
キー入力制御関数();
計算関数();
描画関数();
}
}


こうじゃないと大きなプログラムは書けないことに気づくでしょう。
こういうステップは教えられたらすぐに踏めるでしょうけど、自分で見つけたほうがずっと身に付きます。
試行錯誤しながら色んなプログラムを書いてみて下さい。
もし「ここの効率化がわからない」とか壁にぶつかった時は、ここの掲示板で
「こういう処理でうまい方法ないですか」と質問すればいいですよ。
頑張って下さい。


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



Name: あきら  ..かけだし(1,167ポイント)   Date: 2008/03/18(火) 18:21   No:14981       
Title: プログラムの書き方    
いつも利用させていただき誠にありがとうございます。

プログラムの書き方に関して気になる事があったので質問させていただきます。

C言語〜プログラミングの館〜 33節 選択画面の作り方では,下キーを押すことで白いカーソルが下に下がるようになっているかと思います。
せっかくこのような素晴らしいサイトがあるので,上キーを押して白いカーソルが上にあがるような仕組みにできないものかと思考錯誤した結果,上キーを押すことで白いカーソルが上にあがるようにプログラムを書く事が出来ました。
しかし,現状はコピーペーストでなんとなく理解している程度なので,プログラミングの書き方として間違ってないか。
また,もっとスマートなプログラムが書けないと気になったので質問させていただきました。
プログラムは次の投稿で記載したいと思います。


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


Name: あきら  ..入門者(4,108ポイント)   Date: 2008/03/18(火) 18:23   No:14982     
Title: Re:プログラムの書き方    
#include "DxLib.h"

void char_disp(int White,int y){
DrawString( 150 , y , "■" , White );
DrawString( 170 , 100 , "NEW GAME" , White );
DrawString( 170 , 120 , "CONTINUE1" , White );
DrawString( 170 , 140 , "CONTINUE2" , White );
DrawString( 170 , 160 , "CONTINUE3" , White );
DrawString( 170 , 180 , "CONTINUE4" , White );
DrawString( 170 , 200 , "CONTINUE5" , White );
DrawString( 170 , 220 , "CONTINUE6" , White );
DrawString( 170 , 240 , "LOG OUT" , White );
}

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; //ウィンドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了

int White , y=100; //色とy座標の宣言
int DownOshita=0,NewDown=0,OldDown=0,DownPusingCounter=0;
int UpOshita=0,NewUp=0,OldUp=0,UpPusingCounter=0;//各種フラグの宣言
char KeyBuf[ 256 ] ; //キー入力状態を格納する変数

White = GetColor( 255 , 255 , 255 ) ; //色の取得

SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先を裏画面に設定

while( 1 ){
ClearDrawScreen(); // 裏画面のデータを全て削除
GetHitKeyStateAll( KeyBuf ) ; // すべてのキーの状態を得る
if( KeyBuf[ KEY_INPUT_ESCAPE ] == 1 ) break ; // Escapeが押されたらブレイク

char_disp(White,y); // 文字を描画

if( KeyBuf[ KEY_INPUT_DOWN ] == 1 ) // 下キーが押されたら
NewDown=1; // 今押されている状態に
else // 押されていなかったら
NewDown=0; // 今押されていない状態に

if( KeyBuf[ KEY_INPUT_UP ] == 1 ) // 上キーが押されたら
NewUp=1; // 今押されている状態に
else // 押されていなかったら
NewUp=0; // 今押されていない状態に

if( OldDown==0 && NewDown==1 ) // 前回押されてなく、今回押されていたら
DownOshita=1; // たった今押された状態に
else // それ以外なら
DownOshita=0; // たったいま押されていない状態に

if( OldUp==0 && NewUp==1 ) // 前回押されてなく、今回押されていたら
UpOshita=1; // たった今押された状態に
else // それ以外なら
UpOshita=0; // たったいま押されていない状態に

if( OldDown==1 && NewDown==1 ) // 前回も押され、今回も押されていたら
DownPusingCounter++; // 押しっぱなしカウンターを増加
else
DownPusingCounter=0;

if( OldUp==1 && NewUp==1 ) // 前回も押され、今回も押されていたら
UpPusingCounter++; // 押しっぱなしカウンターを増加
else
UpPusingCounter=0;


if( DownOshita==1 || DownPusingCounter>30){ // たった今押したか、30カウンター以上押しっぱなしなら
if(DownPusingCounter>30) // 30カウンター以上押しっぱなしならカウンターを27へ
DownPusingCounter=27; // オートの場合4回に1回下に下がる。
y+=20;
if(y==260) // y座標が260なら(選択が一番下なら)
y=100; // 選択座標を一番上に
}
if( UpOshita==1 || UpPusingCounter>30){ // たった今押したか、30カウンター以上押しっぱなしなら
if(UpPusingCounter>30) // 30カウンター以上押しっぱなしならカウンターを27へ
UpPusingCounter=27; // オートの場合4回に1回上に上がる。
y-=20;
if(y==80) // y座標が80なら(選択が一番上なら)
y=240; // 選択座標を一番下に
}
OldDown=NewDown,OldUp=NewUp; // 新しい入力情報を古い入力情報へ

if( ProcessMessage() == -1 ) break ; //エラーが起きたら終了
ScreenFlip() ; // 裏画面データを表画面へ反映
}

DxLib_End() ;// DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}


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

Name: やそ  ..プログラマー(28,381ポイント)   Date: 2008/03/18(火) 19:04   No:14983     
Title: Re:プログラムの書き方    
char_disp(White,y); // 文字を描画

の書く場所がおかしいです。

キー判定によってせっかく操作したY座標なのにchar_disp()が呼ばれずに
ScreenFlip()で画面反映しているようです。

while()に入る前に一度char_disp()を呼んで選択画面を表示しておいて、
while()の中でY座標を計算し、
char_dispを再度呼んで裏画面に表示して、
ScreenFlip()で画面反映するのが良いと思います。

また、選択画面の表示については選択肢は最初の一回だけでよいでしょう。
書き直す可能性のあるのは■マークだけなので、
char_disp()をうまく分割するといいんじゃないかな。


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

Name: あきら  ..入門者(4,574ポイント)   Date: 2008/03/18(火) 22:39   No:14990     
Title: Re:プログラムの書き方    
やそ様

早速のご助言ありがとうございます。

まだこちらのサイトで勉強を始めたばかりでわからない点が多いのですが,よろしくお願い致します。

いくつかわからない点があるので質問したいと思います。

>char_disp(White,y); // 文字を描画
>の書く場所がおかしいです。

どの位置に書くのがふさわしいのでしょうか。

>キー判定によってせっかく操作したY座標なのにchar_disp()が呼ばれずに
>ScreenFlip()で画面反映しているようです。

呼ぶというのは,どういった操作をさし,どのように記述すればよいのでしょうか。

>while()に入る前に一度char_disp()を呼んで選択画面を表示しておいて、
>while()の中でY座標を計算し、
>char_dispを再度呼んで裏画面に表示して、
>ScreenFlip()で画面反映するのが良いと思います。

while()の中でY座標を計算というのは,どういう記述を指しているのでしょうか。

本当に初歩的な質問ばかりで申し訳ないのですが,よろしくお願い致します。


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

Name: やそ  ..プログラマー(32,748ポイント)   Date: 2008/03/19(水) 15:04   No:15000     
Title: Re:プログラムの書き方    
んーと、本当に初歩的な質問でガッカリだよ!!(by桜塚やっくん)

と言うのはお約束の突っ込みとして、

あきらさんのその返しを見るに・・・
記述されたカーソル移動プログラムの内容を把握していないのかな?
”答え”をプログラムじゃなくて文章の形で書いただけなのですが・・・

「呼ぶ」と言うのは関数をコールすると言うことを指したつもりでしたが、
分かりにくかったでしょうか?
「char_disp()を呼んで〜」とかいたので文意は分かっていただけると思いました。

はっきり言って答えを曝すのは質問者&回答者双方のためにならないので好きじゃないんですけどね^^;


#include "DxLib.h"
/* 選択肢とカーソルを表示 */
void char_disp(int White,int y){
DrawString( 150 , y , "■" , White );
}
void char_disp2(){
DrawString( 170 , 100 , "NEW GAME" , White );
DrawString( 170 , 120 , "CONTINUE1" , White );
DrawString( 170 , 140 , "CONTINUE2" , White );
DrawString( 170 , 160 , "CONTINUE3" , White );
DrawString( 170 , 180 , "CONTINUE4" , White );
DrawString( 170 , 200 , "CONTINUE5" , White );
DrawString( 170 , 220 , "CONTINUE6" , White );
DrawString( 170 , 240 , "LOG OUT" , White );
}

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; //ウィンドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了

/* 宣言と初期設定 */
int White , y=100; //色とy座標の宣言
int DownOshita=0,NewDown=0,OldDown=0,DownPusingCounter=0;
int UpOshita=0,NewUp=0,OldUp=0,UpPusingCounter=0;//各種フラグの宣言
char KeyBuf[ 256 ] ; //キー入力状態を格納する変数

White = GetColor( 255 , 255 , 255 ) ; //色の取得

SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先を裏画面に設定

char_disp(White,y); // カーソルを描画
char_disp2(); // 選択肢を描画


/* 選択肢ループ開始 */
while( 1 ){
ClearDrawScreen(); // 裏画面のデータを全て削除
GetHitKeyStateAll( KeyBuf ) ; // すべてのキーの状態を得る
if( KeyBuf[ KEY_INPUT_ESCAPE ] == 1 ) break ; // Escapeが押されたらブレイク

/* カーソル表示 (コメント化)*/
// char_disp(White,y); // 文字を描画

if( KeyBuf[ KEY_INPUT_DOWN ] == 1 ) // 下キーが押されたら
NewDown=1; // 今押されている状態に
else // 押されていなかったら
NewDown=0; // 今押されていない状態に

if( KeyBuf[ KEY_INPUT_UP ] == 1 ) // 上キーが押されたら
NewUp=1; // 今押されている状態に
else // 押されていなかったら
NewUp=0; // 今押されていない状態に

if( OldDown==0 && NewDown==1 ) // 前回押されてなく、今回押されていたら
DownOshita=1; // たった今押された状態に
else // それ以外なら
DownOshita=0; // たったいま押されていない状態に

if( OldUp==0 && NewUp==1 ) // 前回押されてなく、今回押されていたら
UpOshita=1; // たった今押された状態に
else // それ以外なら
UpOshita=0; // たったいま押されていない状態に

if( OldDown==1 && NewDown==1 ) // 前回も押され、今回も押されていたら
DownPusingCounter++; // 押しっぱなしカウンターを増加
else
DownPusingCounter=0;

if( OldUp==1 && NewUp==1 ) // 前回も押され、今回も押されていたら
UpPusingCounter++; // 押しっぱなしカウンターを増加
else
UpPusingCounter=0;

/* カーソルの上下移動&ループ処理 */
if( DownOshita==1 || DownPusingCounter>30){ // たった今押したか、30カウンター以上押しっぱなしなら
if(DownPusingCounter>30) // 30カウンター以上押しっぱなしならカウンターを27へ
DownPusingCounter=27; // オートの場合4回に1回下に下がる。
/* ひとつ下の選択肢にカーソルのY座標を移動 */
y+=20;
if(y==260) // y座標が260なら(選択が一番下なら)
y=100; // 選択座標を一番上に
}

if( UpOshita==1 || UpPusingCounter>30){ // たった今押したか、30カウンター以上押しっぱなしなら
if(UpPusingCounter>30) // 30カウンター以上押しっぱなしならカウンターを27へ
UpPusingCounter=27; // オートの場合4回に1回上に上がる。
/* ひとつ上の選択肢にカーソルのY座標を移動 */
y-=20;
if(y==80) // y座標が80なら(選択が一番上なら)
y=240; // 選択座標を一番下に
}
/* 入力状態を引き継ぐ */
OldDown=NewDown,OldUp=NewUp; // 新しい入力情報を古い入力情報へ

if( ProcessMessage() == -1 ) break ; //エラーが起きたら終了
/* 画面表示 */
char_disp(White,y); // カーソルを描画
ScreenFlip() ; // 裏画面データを表画面へ反映
}

DxLib_End() ;// DXライブラリ使用の終了処理
return 0 ; // ソフトの終了

}

です。


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

Name: やそ  ..プログラマー(32,783ポイント)   Date: 2008/03/19(水) 15:05   No:15001     
Title: Re:プログラムの書き方    

あれ、今思ったが、移動前のカーソルって消さなくていいんだろうか??
その辺の調整は考えてみてください。


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

Name: あきら  ..初心者(5,440ポイント)   Date: 2008/03/19(水) 18:29   No:15006 解決!     
Title: Re:プログラムの書き方    
やそ様

このような初歩的な質問に対しても,真摯に答えていただき誠にありがとうございます。

早速,自分で書いたプログラムとどのように違うか検討したみたいと思います。

まだまだ勉強が足りないのは重々承知ではありますが,今後ともよろしくお願い致します。


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

Name: あきら  ..初心者(5,857ポイント)   Date: 2008/03/20(木) 10:38   No:15031     
Title: Re:プログラムの書き方    
再度問題が生じたため,質問させていただきます。

よろしくお願いします。

やそ様に回答いただいたプログラムをコピーペーストし,デバッグを行ってみました。

するとwhiteが宣言されていないというエラーが出たため,色々と調べてみました。

結果,ビルドが成功するまで修正する事が出来たのですが,修正の仕方が間違ってないかご指導いただけないでしょうか。


修正前   // char_disp(White,y); // 文字を描画
修正後    char_disp(White,y); // 文字を描画
こちらですが,ここは説明箇所ではないので,先頭の//は間違いではないでしょうか。

修正前      char_disp2(); // 選択肢を描画
修正後      char_disp2(White); // 選択肢を描画
Whiteが定義されていないというエラーが出たため,Whiteを入れてみました。

修正前      char_disp(White,y); // カーソルを描画

修正後      char_disp(White,y); // カーソルを描画
char_disp2(White); // コンティニュー等を描画
コンティニュー等が画面に表示されていなかったのでchar_disp2(White); を入れてみました。


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

Name: やそ  ..プログラマー(33,697ポイント)   Date: 2008/03/20(木) 11:38   No:15033     
Title: Re:プログラムの書き方    
あ、やっぱりWhiteは宣言エラーでますか^^;
void char_disp2(){
では特に引数を必要としないと思ったので省いちゃってました^^;
あきらさんの言われるとおり
void char_disp2(int White){



}

として、使うときにも
char_disp2(White); // 選択肢を描画
で良いかと思います。


>修正前   // char_disp(White,y); // 文字を描画
>修正後    char_disp(White,y); // 文字を描画
>こちらですが,ここは説明箇所ではないので,先頭の//は間違いではないでしょうか。

についてはここで呼ぶのはおかしいのであえてコメントにしてあります。
(削除しても良かったのですが、違いを分かりやすく見せるための措置です)

おかしいと言うその理由は前述しておりますが・・・
この場所ではY座標計算前なので呼んでも意味が無いからです。



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

Name: あきら  ..初心者(6,164ポイント)   Date: 2008/03/20(木) 12:50   No:15036     
Title: Re:プログラムの書き方    
やそ様

回答いただきありがとうございます。

重複している時点で明らかに不自然ですね。

>おかしいと言うその理由は前述しておりますが・・・
まだまだ勉強不足のため,記述する位置が理解できておりませんでした。

お恥ずかしい限りです。

残念ながら(?),Whiteはエラーが出てしまいました。

今さらですが,VC 2008 EEを使用しております。

本当に,懇切丁寧に色々とご助言いただきありがとうございました。


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



Name: 透夜  ..ぴよぴよ(402ポイント)   Date: 2008/03/20(木) 01:17   No:15025       
Title: DXライブラリの設定でつまづきました;    
はじめまして、管理人さんの四聖龍神録やってみてそこから他にも掲載されているゲームを見ていくなかで
自分もやってみたい、けどプログラムなんて触ったことない;
って奴が勉強のためにプログラムの館見ながらやってみたのですが
Visual C++2008 Express Edition をOS:WindowsXP にインストールし
DxLib_VC2_19b.exe を使って
http://homepage2.nifty.com/natupaji/DxLib/dxuse_vc2008express.html
のとおりにDXライブラリの設定を行ってみました。


5.DXライブラリを使用するためのプロジェクトの設定を行う
まではできたのですが、問題はその次です。

以下のプログラムをコピー&ペーストしたのですが、どうしてもエラーが出ます。


#include "DxLib.h"

// プログラムは WinMain から始まります
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1 ; // エラーが起きたら直ちに終了
}

DrawPixel( 320 , 240 , 0xffff ) ; // 点を打つ

WaitKey() ; // キー入力待ち

DxLib_End() ; // DXライブラリ使用の終了処理

return 0 ; // ソフトの終了
}




「ビルドエラーが発生しました。続行して、最後に成功したビルドを実行しますか?」
と出てくるのでここで「はい」を選択すると

「プログラム'C:\C++\test\Debug\test.exe'を開始できません。指定されたファイルが見つかりません。」
となり、確認してそのファイルを見ると確かにtest.exeとなっているものは見当たりませんでした。

・Debugフォルダにあったもの
BuildLog.htm
DrawPixel.obj
test.exe.embed.manifest
test.exe.embed.manifest.res
test.exe.intermediate.manifest
test.pdb
vc90.idb
vc90.pdb


こういった場合、どうしたらいいのでしょうか?
よろしければ助言をお願いします><


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


Name: あきら  ..初心者(6,013ポイント)   Date: 2008/03/20(木) 11:11   No:15032     
Title: Re:DXライブラリの設定でつまづきました;    
透夜様

こんにちは

DxLibに関してですが,現在はDxLib_VC2_24b.exeが出ています。

http://homepage2.nifty.com/natupaji/DxLib/dxdload.html

こちらで試してみて,再度うまくいくかどうか行ってみてください。

また,設定を行う上で1つでも手順にミスがあると様々なエラーが出る場合があります。


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

Name: 透夜  ..ぴよぴよ(453ポイント)   Date: 2008/03/20(木) 11:40   No:15034 解決!     
Title: Re:DXライブラリの設定でつまづきました;    
言われたとおり、DxLib_VC2_24b.exeを入れてみたら正常に動きました
ありがとうございました!!><

これからも度々質問に来ると思いますが、その時はまたご指導お願いします^^


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



Name: ryo  ..ぴよぴよ(229ポイント)   Date: 2008/03/19(水) 00:22   No:14991       
Title: カーソルの移動について    
c言語を初めて3か月ほど やっとゲームのプログラムまでこぎつけました

いつもなら1週間くらい悩んで解決策を見つけられたのですが、まだ動きのあるc言語に慣れていないためtどこが間違いなのか見つけられません

wakuをキーボードの方向入力で一マスずつ動くようにしたいのですが、wakuがどうしても出力されてくれません

どこがいけないのか、もしよければみてください
//othello
#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )
{
char Key[256];

if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1;
{      
int i,j;
int White,Red,Green,Blue,Black;
White=GetColor(255,255,255);
Red=GetColor(255,0,0);
Green=GetColor(0,255,0);
Blue=GetColor(0,0,255);
Black=GetColor(0,0,0);
DrawBox(80,0,560,480,Green,TRUE);
for(i=0;i<8;i++)
for(j=0;j<8;j++)
DrawBox(i*60+80,j*60,i*60+140,j*60+60,Black,FALSE);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if((i+j)%2==0)
DrawCircle(i*120+200,j*120+120,3,Black,TRUE);
for(i=0;i<2;i++)
for(j=0;j<2;j++)
if((i+j)%2==0)
DrawCircle(i*60+290,j*60+210,25,White,TRUE);
else
DrawCircle(i*60+290,j*60+210,25,Black,TRUE);
}// 表示完了
SetDrawScreen( DX_SCREEN_BACK ) ;
while(!ProcessMessage() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE])
{
int i,j=0;
int Red;
Red=GetColor(255,0,0);

if ( Key[ KEY_INPUT_UP ] == 1 )
j--;
DrawBox(i*60+500,i*60+420,i*60+560,i*60+480,Red,FALSE);
ScreenFlip();
}
DxLib_End();
return 0;
}




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


Name: シュバ  ..入門者(3,331ポイント)   Date: 2008/03/19(水) 01:19   No:14992     
Title: Re:カーソルの移動について    

#include "DxLib.h"

void Glaph();

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ) {

char Key[256];
int x1=0;
int y1=0;
int x2 = 0;
int y2 = 0;

SetDrawScreen( DX_SCREEN_BACK ) ;

if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1;

while(!ProcessMessage() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]) {

int Red;
Red=GetColor(255,0,0);

if ( Key[ KEY_INPUT_UP ] == 1 ) {
y1--;
y2--;
}

Glaph();
DrawBox(x1*60+500,y1*60+420,x2*60+560,y2*60+480,Red,TRUE);

ScreenFlip();

}

DxLib_End();
return 0;

}

//表示するだけの関数
void Glaph(){

ClearDrawScreen();

int i,j;
int White,Green,Blue,Black;
White=GetColor(255,255,255);
Green=GetColor(0,255,0);
Blue=GetColor(0,0,255);
Black=GetColor(0,0,0);

DrawBox(80,0,560,480,Green,TRUE);

for(i=0;i<8;i++){
for(j=0;j<8;j++){
DrawBox(i*60+80,j*60,i*60+140,j*60+60,Black,FALSE);
}
}

for(i=0;i<3;i++){
for(j=0;j<3;j++){
if((i+j)%2==0){
DrawCircle(i*120+200,j*120+120,3,Black,TRUE);
}
}
}

for(i=0;i<2;i++){
for(j=0;j<2;j++){
if((i+j)%2==0){
DrawCircle(i*60+290,j*60+210,25,White,TRUE);
}else{
DrawCircle(i*60+290,j*60+210,25,Black,TRUE);
}
}
}

}




こんな感じで如何ですか?

確認し易いように枠は塗りつぶしにしてあります。

DrawBox(x1*60+500,y1*60+420,x2*60+560,y2*60+480,Red,False);

にすれば枠だけが赤くなるハズです。



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

Name: やそ  ..プログラマー(33,138ポイント)   Date: 2008/03/19(水) 18:55   No:15007     
Title: Re:カーソルの移動について    
中の処理はまだ追ってないので分かりませんが・・・
最初の
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1;
{      
int i,〜

ですが、{の前にelseが抜けてませんか?
また、
if ( Key[ KEY_INPUT_UP ] == 1 )
j--;
DrawBox(i*60+500,i*60+420,i*60+560,i*60+480,Red,FALSE);
ScreenFlip();
ですが、j--したのにDrawBoxで使用していないですよね??
その辺確認されましたか?


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



Name: 山下  ..ぴよぴよ(555ポイント)   Date: 2008/03/18(火) 19:18   No:14984       
Title: ScreenFlipでエラー    
こんばんは、初めて利用させて頂きます。私は今C++とDXライブラリでゲームを作っている者です。OSはXP,コンパイラはBorland C++ 5.5.1 、エディタはBCC Developerを使っております。プログラミングは中級くらいだと思いますが、よく聞く「マニュアル」というものが何なのかわかっていないレベルです。

今まではある程度順調に進めてきたのですが、あるとき突然にエラーに悩まされるようになりまして・・・。様々な所にprintfDxを入れてエラー発生場所を探したんですが、今までは元気に働いてくれていたはずのScreenFlipの箇所を実行した時にエラーが起こっているようでした。ScreenFlipの前のprintfDxは正常に動き文字が表示されるのですが、後のprintfDxが動く前にエラーが発生してプログラムが止まります。

このエラーはScreenFlipのたびに毎回起こるわけではなく、他の部分で何かした後、ScreenFlipに差し掛かると発生するようです。約1800行のコードのうちどこがキッカケなのか全くわからないので、具体的なコードを貼ることができず申し訳ありません。
一応説明しますと、的を狙い打つプログラムを作っております。近くの的を撃っても全く問題ないのですが、ある遠くの的を撃つと次のScreenFlipに差し掛かったときに実行が止まってしまいます。

ScreenFlipが悪いのでしょうか。それともScreenFlipで処理が止まるのは実質的な問題ではなく他の場所が問題なのでしょうか。どうか助けて頂きたいと思います。


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


Name: tkmakwins15 [URL]  ..比類無きプログラマー(60,810ポイント)   Date: 2008/03/18(火) 19:24   No:14985     
Title: Re:ScreenFlipでエラー    
たぶん他の箇所に問題があると思います。
ScreenFlip()に問題があるならば、次のプログラムでエラーが出るはずです。

#include"DxLib.h"

int WINAPI WinMain(HINSTANCE,HINSTANCe,PSTR,int)
{
int i=0;
if(DxLib_Nnit()==-1)return -1;

while(ProcessMessage()!=-1&&CheckHitKey(KEY_INPUT_ESCAPE)==0){
printfDx("%d",i)
ScreenFlip();
clsDx();
i++;
}
DxLib_End();
return 0;
}

コンパイルエラーは出ないと思います。


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

Name: 山下  ..ぴよぴよ(667ポイント)   Date: 2008/03/18(火) 19:51   No:14986     
Title: Re:ScreenFlipでエラー    
tkmakwins15さん、こんなにまで早くご返答頂き誠にありがとうございます!感謝の言葉もございません!

書いて頂いたコードを実際に貼り付けてビルドしてみたのですが、「エラー E2303 c:\newmyc\game\game.cpp 1803: 型名が必要」とのエラーが出ました。

私のプログラムのエラーと何か関係があるのでしょうか?重ねて質問してしまい誠に申し訳ございません。


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

Name: tkmakwins15 [URL]  ..比類無きプログラマー(60,988ポイント)   Date: 2008/03/18(火) 19:55   No:14987     
Title: Re:ScreenFlipでエラー    
あっ、間違いでした。修正します。

#include"DxLib.h"

int WINAPI WinMain(HINSTANCE,HINSTANCe,PSTR,int)
{
int i=0;
if(DxLib_Init()==-1)return -1;

while(ProcessMessage()!=-1&&CheckHitKey(KEY_INPUT_ESCAPE)==0){
printfDx("%d",i)
ScreenFlip();
clsDx();
i++;
}
DxLib_End();
return 0;
}

赤字の部分が修正箇所。


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

Name: 山下  ..ぴよぴよ(921ポイント)   Date: 2008/03/18(火) 20:06   No:14988     
Title: Re:ScreenFlipでエラー    
またもや非常に早いご返答ありがとうございます!全く感激です!!

ええと申し訳ありません、貼り付けてビルドしたのですがまた同じエラーのようです・・・。先ほどは言い忘れましたが、

int WINAPI WinMain(HINSTANCE,HINSTANCe,PSTR,int)

の行がエラー箇所のようです。ちなみに、私がプログラムを書くときはその行を

int WINAPI WinMain(HINSTANCE hI,HINSTANCE hp,LPSTR lpC,int nC)

と書いております。これが原因だったり・・・しませんよね・・・。何度も何度も本当に申し訳ございません。


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

Name: tkmakwins15 [URL]  ..比類無きプログラマー(61,015ポイント)   Date: 2008/03/18(火) 21:51   No:14989     
Title: Re:ScreenFlipでエラー    
何度もすいません。二つ目のHINSTANCeが変ですね。全て大文字にしてみてください。

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

Name: 山下  ..かけだし(1,029ポイント)   Date: 2008/03/19(水) 14:53   No:14999     
Title: Re:ScreenFlipでエラー    
返答が遅れ誠に申し訳ございません!

何とか実行でき、全画面表示で左上でカウントが進むというプログラムが動きました。

ということはやはりScreenFlipが原因ではないのですね・・・。これがわかっただけでも非常に有益だと思います、今回は誠にありがとうございました。

・・・でもどこが悪いんだろうなぁ・・・。


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



Name: ウォビワン  ..ぴよぴよ(212ポイント)   Date: 2008/03/16(日) 17:43   No:14929       
Title: DXライブラリの構文エラー    
ここで始めようと思って一番最初の導入のとこ(http://homepage2.nifty.com/natupaji/DxLib/dxuse_bcc.html
をやっていたんですが、最後のとこの

#include "DxLib.h"

// プログラムは WinMain から始まります
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1 ; // エラーが起きたら直ちに終了
}

DrawPixel( 320 , 240 , 0xffff ) ; // 点を打つ

WaitKey() ; // キー入力待ち

DxLib_End() ; // DXライブラリ使用の終了処理

return 0 ; // ソフトの終了
}


をやってみたら、
エラー E2141 D:\マイ ドキュメント\プロジェクト\test\DrawPixel.cpp 4: 宣言の構文エラー
と出て、できませんでした。
サイト通りにやったんですが・・・。
どうすればいいのでしょうか?


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


Name: 管理人 [URL]  ..伝説のハッカー(534,418ポイント)   Date: 2008/03/17(月) 00:47   No:14946     
Title: Re:DXライブラリの構文エラー    
フリーのBCCで構築されていますか?
BCCは使わないのでよくわかりませんが、書いているファイルは本当にDrawPixel.cpp ですか?
もしわからない場合はVisualStudio2005か2008のexpressEditionを利用してみて下さい。
マイクロソフトから提供されているとても高機能なコンパイラです。


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

Name: tkmakwins15 [URL]  ..熟練のプログラマー(59,895ポイント)   Date: 2008/03/17(月) 09:08   No:14948     
Title: Re:DXライブラリの構文エラー    
BCCは日本語のファイル名を基本的に認識しません。
ですからプロジェクトフォルダをCドライブ直下などに移動し、そのフォルダ名を「project」としてみてください。


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

Name: tkmakwins15 [URL]  ..熟練のプログラマー(59,919ポイント)   Date: 2008/03/17(月) 09:18   No:14949     
Title: Re:DXライブラリの構文エラー    
それに、本当にコピーペーストしたのですよね?

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

Name: ウォビワン  ..ぴよぴよ(464ポイント)   Date: 2008/03/17(月) 22:30   No:14958     
Title: Re:DXライブラリの構文エラー    
>>管理人さん
はい。DrawPixel.cppです。

>>tkmakwins15さん
Cドライブに移動して、名前を変えたんですが、
今度は
エラー E2209 C:\project\test\DrawPixel.cpp 1: インクルードファイル 'DxLib.h' をオープンできない
エラー E2141 C:\project\test\DrawPixel.cpp 4: 宣言の構文エラー

と出てしましました。

もしかしたらと思うんですが、『プロジェクトに追加すべきファイル_BCC用』という長いフォルダ名のフォルダ
に入ってるファイルは、「プロジェクト」フォルダに入れればいいんですよね?
あと、『プロジェクトに追加すべきファイル_BCC用』という長いフォルダ名のフォルダに入ってるファイルは
全部入れなくて良いんですよね?
間違ってたら教えてください。


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

Name: tkmakwins15 [URL]  ..比類無きプログラマー(60,136ポイント)   Date: 2008/03/17(月) 22:36   No:14959     
Title: Re:DXライブラリの構文エラー    
>もしかしたらと思うんですが、『プロジェクトに追加すべきファイル_BCC用』という長いフォルダ名のフォルダ
>に入ってるファイルは、「プロジェクト」フォルダに入れればいいんですよね?
>あと、『プロジェクトに追加すべきファイル_BCC用』という長いフォルダ名のフォルダに入ってるファイルは
>全部入れなくて良いんですよね?


projectフォルダに全部入れる必要があります。そうすればうまく行くと思いますが…


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

Name: ウォビワン  ..ぴよぴよ(483ポイント)   Date: 2008/03/18(火) 15:14   No:14973     
Title: Re:DXライブラリの構文エラー    
全部入れたんですが、ダメでした。
どうすればいいのでしょうか?


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

Name: tkmakwins15 [URL]  ..比類無きプログラマー(60,264ポイント)   Date: 2008/03/18(火) 15:35   No:14974     
Title: Re:DXライブラリの構文エラー    
DxLib.hをプロジェクトに参加させてください。
参加のさせ方は、BCC Developerの左のほうにファイルのツリー表示があると思います。その上に、+のようなマークがあるアイコンがあると思います。それをクリックして、プロジェクトフォルダ内のDxLib.hを参加させればいいです。


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

Name: ウォビワン  ..ぴよぴよ(510ポイント)   Date: 2008/03/18(火) 15:45   No:14975     
Title: Re:DXライブラリの構文エラー    
だめでした・・・・。
どうしてなんでしょうか・・・・・。


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

Name: tkmakwins15 [URL]  ..比類無きプログラマー(60,354ポイント)   Date: 2008/03/18(火) 16:15   No:14976     
Title: Re:DXライブラリの構文エラー    
添付したプロジェクトでもダメですか?


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

Name: tkmakwins15 [URL]  ..比類無きプログラマー(60,409ポイント)   Date: 2008/03/18(火) 16:18   No:14977     
Title: Re:DXライブラリの構文エラー    
っと、添付した圧縮ファイルを解凍したらそこにDxライブラリファイル一式をコピーしてください。
(プロジェクトに追加すべきファイル_BCC用フォルダの中のファイル全部)


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

Name: ウォビワン  ..かけだし(1,287ポイント)   Date: 2008/03/18(火) 16:40   No:14978     
Title: Re:DXライブラリの構文エラー    
ありがとうございます!
出来ました!
ただ、
警告 W8057 C:\Documents and Settings\けいすけ\デスクトップ\BeginDxLibTest\main.cpp 19: パラメータ 'hInstance' は一度も使用されない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
+ 詳細な解析情報
+ C:\Documents and Settings\けいすけ\デスクトップ\BeginDxLibTest\main.cpp, line 6: 構文解析対象:int __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int)
警告 W8057 C:\Documents and Settings\けいすけ\デスクトップ\BeginDxLibTest\main.cpp 19: パラメータ 'hPrevInstance' は一度も使用されない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
+ 詳細な解析情報
+ C:\Documents and Settings\けいすけ\デスクトップ\BeginDxLibTest\main.cpp, line 6: 構文解析対象:int __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int)
警告 W8057 C:\Documents and Settings\けいすけ\デスクトップ\BeginDxLibTest\main.cpp 19: パラメータ 'lpCmdLine' は一度も使用されない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
+ 詳細な解析情報
+ C:\Documents and Settings\けいすけ\デスクトップ\BeginDxLibTest\main.cpp, line 6: 構文解析対象:int __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int)
警告 W8057 C:\Documents and Settings\けいすけ\デスクトップ\BeginDxLibTest\main.cpp 19: パラメータ 'nCmdShow' は一度も使用されない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
+ 詳細な解析情報
+ C:\Documents and Settings\けいすけ\デスクトップ\BeginDxLibTest\main.cpp, line 6: 構文解析対象:int __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int)

というものが出てきたんですが、気にしなくていいのでしょうか?

あと、これからも何か作っていくときどのフォルダに入れればいいのでしょうか?
添付してくれたフォルダはデスクトップに置いたままでいいのでしょうか?
質問ばかりですいませんが、よろしくお願いします。