C言語何でも質問掲示板


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

規約と使い方

 
   無題   
     ・[11364] 管理人 
     ・[11365] しりうす〜 
     ・[11380] 夢幻 
     ・[11382] 夢幻 
   クリックによる画像の ....   
     ・[11368] 雷 
   定数化のタイミング   
     ・[11345] しりうす〜 
     ・[11360] keichan 
     ・[11361] TT414 
     ・[11366] たまたま 
     ・[11367] たまたま 
   Cygwin   
     ・[11336] box 
     ・[11339] 大工 
     ・[11352] はてな 
     ・[11358] 大工 
   template 構造体の不思 ....   
     ・[11248] たかぎ 
     ・[11340] 新芽 
     ・[11342] YuO 
     ・[11343] 新芽 
   ご指導お願いいたしま ....   
     ・[11227] マック 
     ・[11232] マック 
     ・[11244] Justy 
     ・[11250] マック 
     ・[11264] Justy 
     ・[11335] マック 
   リスト構造   
     ・[11302] box 
     ・[11305] ゾン兵衛 
     ・[11329] 大工 
   Windowsアプリケーショ ....   
     ・[11242] ibis 
     ・[11327] niki 
   行列   
     ・[11325] box 
     ・[11326] つばさ 
   メニュー   
     ・[11254] ibis 
     ・[11320] ibis 
   このコーディングで値 ....   
     ・[11256] box 
     ・[11257] イサオ 
     ・[11258] box 
     ・[11259] イサオ 
     ・[11260] box 
     ・[11262] いさお 
     ・[11269] box 
     ・[11311] いさお 
     ・[11313] box 
     ・[11314] いさお 
     ・[11316] box 
     ・[11319] いさお 
   ランダムに並べ替える ....   
     ・[11261] box 
     ・[11263] プーコ 
     ・[11266] 管理人 
     ・[11275] プーコ 
     ・[11276] 管理人 
     ・[11277] ゾン兵衛 
     ・[11280] ゾン兵衛 
     ・[11286] プーコ 
     ・[11294] プーコ 
     ・[11295] 管理人 
     ・[11296] 管理人 
     ・[11298] プーコ 
     ・[11299] 管理人 
     ・[11301] プーコ 
     ・[11312] プーコ 
   無題   
     ・[11304] tkmakwins15 
     ・[11306] Hermit 
     ・[11307] tkmakwins15 
     ・[11308] マルチポスト 
     ・[11310] Guchiken 
   質問です   
     ・[11265] 管理人 
     ・[11268] LightLeaf 
   ファイルの書き換えに ....   
     ・[11201] keichan 
     ・[11202] Blue 
     ・[11204] tkmakwins15 
     ・[11205] Chii☆ 
     ・[11206] Chii☆ 
     ・[11215] tkmakwins15 
     ・[11237] Chii☆ 
     ・[11239] しりうす〜 
     ・[11251] Chii☆ 
   度々申し訳ございませ ....   
     ・[11210] 管理人 
     ・[11211] C.P.P 
     ・[11216] 管理人 
     ・[11233] C.P.P 
     ・[11236] 管理人 
     ・[11238] C.P.P 
     ・[11240] C.P.P 
     ・[11241] 管理人 
     ・[11249] C.P.P 
   スタックについて   
     ・[11182] box 
     ・[11183] toyo 
     ・[11194] 徹夜 
     ・[11195] box 
     ・[11214] 徹夜 
     ・[11217] box 
     ・[11245] 徹夜 
     ・[11246] box 
   パックマンの制作    
     ・[11028] 管理人 
     ・[11087] JugS 
     ・[11221] JugS 
     ・[11225] 管理人 
     ・[11243] JugS 
   無題   
     ・[11229] hg 
     ・[11230] バグ 
     ・[11231] しりうす〜 
     ・[11234] 通りすがり 
     ・[11235] 管理人 
   ハードウェアの知識   
     ・[11219] たかぎ 
     ・[11220] てつ 
     ・[11222] てつ 
     ・[11223] たかぎ 
   エラーが・・・   
     ・[11193] box 
     ・[11213] カリカリ 
   malloc   
     ・[11199] keichan 
     ・[11207] 大工 
     ・[11209] box 
   教えてください   
     ・[11200] keichan 
     ・[11203] C.P.P 
   確認のため   
     ・[11187] 管理人 
     ・[11190] マック 
     ・[11191] 管理人 
   教えてください・・・   
     ・[11188] 管理人 
     ・[11189] C.P.P 
   誰か分かりませんか? ....   
     ・[11142] バグ 
     ・[11148] よっつん 
     ・[11149] tkmakwins15 
     ・[11185] C.P.P 
   ダイアログベースアプ ....   
     ・[11162] Justy 
     ・[11166] バグ 
     ・[11169] バグ 
     ・[11170] Justy 
     ・[11171] バグ 
     ・[11173] ま〜く 
     ・[11179] パラディン 
     ・[11180] バグ 
   原因が・・   
     ・[11178] 独学勉強中 
   計算プログラム   
     ・[11126] box 
     ・[11127] 管理人 
     ・[11128] RIRI 
     ・[11129] RIRI 
     ・[11130] box 
     ・[11131] 管理人 
     ・[11132] tkmakwins15 
     ・[11133] 管理人 
     ・[11138] RIRI 
     ・[11176] RIRI 
     ・[11177] RIRI 
   無題   
     ・[11135] たかぎ 
     ・[11159] ココア 
     ・[11174] Lbfuvab 
   クラスによる時間管理   
     ・[11160] tkmakwins15 
     ・[11161] Justy 
     ・[11163] tkmakwins15 
     ・[11164] Justy 
     ・[11165] tkmakwins15 
     ・[11167] Justy 
     ・[11168] tkmakwins15 
     ・[11172] tkmakwins15 
   2次元で、x方向とy方 ....   
     ・[11151] toyo 
     ・[11152] たかぎ 
     ・[11156] t 
   &の意味   
     ・[11154] box 
     ・[11155] kai 
   動いたんですけど   
     ・[11145] tkmakwins15 
     ・[11146] keichan 
     ・[11147] 独学勉強中 
   何度やっても・・   
     ・[11140] 独学勉強中 
     ・[11143] 独学勉強中 
   バブルソート計算量   
     ・[11137] 管理人 
   導入について、質問さ ....   
     ・[11120] 管理人 
     ・[11121] P.P.C 
     ・[11122] P.P.C 
     ・[11123] tkmakwins15 
     ・[11125] P.P.C 
   ウィンドウハンドルの ....   
     ・[11117] マルチポスト 
     ・[11118] たかぎ 
   学校の課題A   
     ・[11108] 徹夜 
     ・[11116] バグ 
   どの変がわるいんでし ....   
     ・[11114] Blue 
     ・[11115] たまー 
   無題   
     ・[11112] たまー 
   template構造体の生成 ....   
     ・[11095] DDK 
     ・[11096] keichan 
     ・[11097] DDK 
     ・[11098] keichan 
     ・[11099] DDK 
     ・[11109] hoge 
     ・[11110] keichan 
   学校の課題   
     ・[10994] box 
     ・[11001] 徹夜 
     ・[11003] box 
     ・[11008] 徹夜 
     ・[11010] box 
     ・[11016] 徹夜 
     ・[11024] box 
     ・[11052] 徹夜 
     ・[11053] box 
     ・[11054] 徹夜 
     ・[11055] box 
     ・[11059] 徹夜 
     ・[11079] box 
     ・[11081] 徹夜 
     ・[11082] box 
     ・[11083] 徹夜 
     ・[11084] box 
     ・[11100] 徹夜 
     ・[11101] box 
     ・[11102] 徹夜 
     ・[11103] box 
     ・[11104] 徹夜 
     ・[11105] box 
     ・[11106] 徹夜 
   .NETがネイティブAPIに ....   
     ・[11006] Justy 
     ・[11011] tkmakwins15 
     ・[11014] Justy 
     ・[11017] tkmakwins15 
     ・[11018] Justy 
     ・[11020] tkmakwins15 
     ・[11022] YuO 
     ・[11023] たかぎ 
     ・[11025] 将 
     ・[11036] tkmakwins15 
     ・[11041] YuO 
     ・[11046] tkmakwins15 
     ・[11060] tkmakwins15 
     ・[11064] YuO 
     ・[11065] tkmakwins15 
     ・[11067] keichan 
     ・[11076] tkmakwins15 
     ・[11078] YuO 
     ・[11085] tkmakwins15 
     ・[11092] tkmakwins15 
   文字列のカウント   
     ・[11063] 管理人 
     ・[11089] たまー 
     ・[11091] たまー 
   教えてください   
     ・[10976] 管理人 
     ・[10977] box 
     ・[10981] たまー 
     ・[10982] box 
     ・[10983] 管理人 
     ・[10985] parapara 
     ・[10986] フリオ 
     ・[11019] たまー 
     ・[11090] たまー 
   小数点表示について   
     ・[11047] box 
     ・[11050] ナナイ 
     ・[11051] box 
     ・[11062] tkmakwins15 
     ・[11088] ナナイ 
   マップの表示   
     ・[11057] 廉 
     ・[11058] 廉 
     ・[11069] アニィ 
     ・[11080] 廉 
     ・[11086] Justy 
   不意にコンパイルエラ ....   
     ・[11032] Blue 
     ・[11033] しりうす〜 
     ・[11035] たまたま 
     ・[11068] asd 
     ・[11071] たまたま 
     ・[11072] 管理人 
     ・[11073] たまたま 
     ・[11074] しりうす〜 
     ・[11075] たまたま 
     ・[11077] バグ 
   配列のローテーション ....   
     ・[11048] box 
     ・[11049] tkmakwins15 
     ・[11070] 平 
   オーバーフローの発生   
     ・[11037] tkmakwins15 
     ・[11038] box 
     ・[11039] tkmakwins15 
     ・[11040] たかぎ 
     ・[11066] なや 

Name: 夢幻 [URL]  ..ぴよぴよ(262ポイント)   Date: 2007/10/29(月) 21:52   No:11350       
Title: 無題    
今、VC++でFpsの表示を行う関数を例を元に作ったのですが
コンパイルはされるものの、表示がかなり細かく点滅してしまいました。
おそらく、この関数が原因だと思うのですが・・・
何が原因でしょうか?


#include "DxLid.h"

void Fps (void)
{
static int Time1,Time2;
static int Count;
double Fps;
int White;

if(Count == 0){
Time1=GetNowCount();
}

if(Count == 49){
White=GetColor(225,225,225);
Time2=GetNowCount();
Fps=(double)(1000/((Time2-Time1)/50));
DrawFormatString(0,0,White,"Fps %2.1f",Fps);
Count=0;
}else{
Count++;
}

return ;
}


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


Name: 管理人 [URL]  ..伝説のハッカー(438,103ポイント)   Date: 2007/10/30(火) 12:40   No:11364     
Title: Re:無題    
点滅するのは裏画面処理をせずにループさせてるからじゃないでしょうか?
http://dixq.net/g/#12
ココを参考にしてみてください。


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

Name: しりうす〜  ..かけだし(1,120ポイント)   Date: 2007/10/30(火) 13:51   No:11365     
Title: Re:無題    
単純に、 Count == 49 のFPS更新時の中に描画処理をいれちゃってるからかな。
DrawFormatString をif文の外に出すだけで問題ないかな。

管理人さんの仰ってるように描画周りも確認してみてくださいな。


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

Name: 夢幻  ..ぴよぴよ(306ポイント)   Date: 2007/10/30(火) 20:22   No:11380     
Title: Re:無題    
回答ありがとうございます。
あぁ、なるほど、そういうことですか・・・
ためしてみます


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

Name: 夢幻  ..ぴよぴよ(418ポイント)   Date: 2007/10/30(火) 20:47   No:11382 解決!     
Title: Re:無題    
main関数内の、ScreenFlip関数を、Fps関数内に
取り込んだところ無事、正常に表示されました。

お世話になりました、ありがとうございました。


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



Name:  ..中級者(10,913ポイント)   Date: 2007/10/30(火) 01:05   No:11356       
Title: クリックによる画像の描画    
お久しぶりです。
とても簡単なことなのかもしれませんが・・・
左ボタンが押された時、その位置を取得して、そこに画像を描画したいと考え、
作ってみたのですが、ウィンドウを再描画(でいいのかな?)した時以外は、
クリックした場所に表示されません。
WM_PAINTを送れるようにすれば良いかと思ったのですが、その方法も分かりませんでした。

どの様にすれば良いかご教授よろしくお願いします。



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


Name:  ..中級者(10,926ポイント)   Date: 2007/10/30(火) 14:34   No:11368 解決!     
Title: Re:クリックによる画像の描画    
すいません。
自己解決しました。


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



Name: たまたま  ..ぴよぴよ(865ポイント)   Date: 2007/10/29(月) 15:49   No:11344       
Title: 定数化のタイミング    
早速ですが、
例えば、
#define A 20
#define B 100
#define C B/A

さて
func(C);
の中のCはコンパイル後、実行前にすでに5になっているのでしょうか、
または5にはまだならず、実行時に100/20をはじめて計算されるのでしょうか。






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


Name: しりうす〜  ..かけだし(1,055ポイント)   Date: 2007/10/29(月) 15:52   No:11345     
Title: Re:定数化のタイミング    
「プリプロセス」ってキーワードで調べると幸せになれそうな予感がします。

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

Name: keichan  ..プログラマー(28,140ポイント)   Date: 2007/10/30(火) 10:19   No:11360     
Title: Re:定数化のタイミング    
大抵のコンパイラは定数値同士の算術演算は計算しちゃうと思います。

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

Name: TT414  ..ぴよぴよ(389ポイント)   Date: 2007/10/30(火) 10:19   No:11361     
Title: Re:定数化のタイミング    
コンパイラによって違います。

Cプリプロセッサがdefineを処理した後の、Cコンパイラの入力は「func(100/20);」ですが、
コンパイラの最適化の設定により、「実行時に100/20をはじめて計算」または、
「実行前にすでに5」のどちらかになります。

もっとも「実行時に100/20をはじめて計算」になるのは、
1古い
2コンパイラの最適化のレベルが低い
3教育用コンパイラで最適化を一切しない。(教育用はコンパイラの作り方の方です)

程度しか、無いと思いますが、無くはないので。


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

Name: たまたま  ..ぴよぴよ(934ポイント)   Date: 2007/10/30(火) 13:55   No:11366     
Title: Re:定数化のタイミング    
TT414様
ご解説よくわかりました。
有難う御座います。

keichan様
有難う御座います。


しりうす〜さま
>「プリプロセス」ってキーワードで調べると幸せになれそうな予感がします。
上の方々からのご指導もあって、そしてしりうす〜さまのご返答自体からも
「プリプロセス」ってキーワードで調べなくても幸せになれるように予感がします。





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

Name: たまたま  ..ぴよぴよ(941ポイント)   Date: 2007/10/30(火) 13:56   No:11367 解決!     
Title: Re:定数化のタイミング(お礼)    
解決のお礼

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



Name: 大工  ..上級者(24,987ポイント)   Date: 2007/10/29(月) 03:09   No:11333       
Title: Cygwin    

#include <stdio.h>

int main(void) {

char c[20];

while(1) {

printf("input = ");
gets(c);

printf("%s\n", c);

return 0;
}

 ・
 ・
 ・
 ・
 ・
 ・
続く

これはプログラムの一部ですが、たまにCygwinでprintfが呼び出されないまま無限ループに陥ったり、他のソースでもstrcmpが呼び出されるが第二引数のところにごみが入ってたりとおかしな動作が続くことがあります。
こういうときはいつもCygwinを消して再起動します。

こうすれば関数も呼び出されますし無限ループにもなりません。


これはバッファにごみがたまるからCygwinがおかしな動作をしてしまうのでしょうか?

それとも、僕のCygwinがおかしい?


意見を聞かせてください><。


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


Name: box  ..比類無きプログラマー(91,095ポイント)   Date: 2007/10/29(月) 11:16   No:11336     
Title: Re:Cygwin    
提示されたコードは、開きカッコと閉じカッコの数が合わないため、
コンパイルできません。

問題が発生しているお手持ちのコードを、そのままコピー&ペースト
していただけますか?


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

Name: 大工  ..プログラマー(25,170ポイント)   Date: 2007/10/29(月) 13:20   No:11339     
Title: Re:Cygwin    
あ、本当ですね。。。


#include <stdio.h>



int main(void) {



char c[20];



while(1) {



printf("input = ");

gets(c);



printf("%s\n", c);


}
return 0;

}


です。

今日、いろいろ入力してみたんですが不具合が出ませんでした。


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

Name: はてな  ..ぴよぴよ(28ポイント)   Date: 2007/10/29(月) 22:35   No:11352     
Title: Re:Cygwin    
ひとつ聞きたいのですが、while(1)を使用している理由はなんでしょうか?

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

Name: 大工  ..プログラマー(25,193ポイント)   Date: 2007/10/30(火) 09:34   No:11358     
Title: Re:Cygwin    
特に意味のないプログラムですのであまり気になさらずに…^^;

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



Name: 新芽  ..ぴよぴよ(131ポイント)   Date: 2007/10/26(金) 09:14   No:11247       
Title: template 構造体の不思議な定義法    
はじめまして

template技術を勉強しようとしましたが、早くも怪奇例文(構造体定義)に遭遇しました。

例1:
template <bool flag, typename T, typename U>
struct Select
{
typedef T Result;
};


この定義の中に"bool flag" と"typename U"が何のために存在するのでしょうか。

例2:
template <typename T, typename U>
struct Select<false, T, U>
{
t ypedef U Result;
};

この定義の中に"<false, T, U>" が何のために存在するのでしょうか。

基本的な問題ですいませんが
宜しくお願いします


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


Name: たかぎ [URL]  ..上級者(16,628ポイント)   Date: 2007/10/26(金) 13:11   No:11248     
Title: Re:template 構造体の不思議な定義法    
これはメタ関数というものです。
次のようにして使います。
Select<sizeof(int)==sizeof(long), int, long>::Result x;



上の例では、int 型のサイズが long 型と同じであれば、x は int 型、そうでなければ long 型として宣言されます。
#if 指令では、条件式に sizeof 演算子を使うことができませんが、テンプレート引数であれば、sizeof 演算子や列挙定数などを使うことができます。また、別のメタ関数の結果を使うこともできます。

> 基本的な問題ですいませんが

これはかなり高度な部類に入ります。


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

Name: 新芽  ..ぴよぴよ(174ポイント)   Date: 2007/10/29(月) 13:56   No:11340     
Title: Re:template 構造体の不思議な定義法    
たかぎさん
ありがおうございます。

> Select<sizeof(int)==sizeof(long), int, long>::Result x;
この例って、例1と例2のどっちのためのでしょうか。
申し訳ありません。まだ理解できていないです。





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

Name: YuO  ..中級者(14,934ポイント)   Date: 2007/10/29(月) 15:20   No:11342     
Title: Re:template 構造体の不思議な定義法    
>> Select<sizeof(int)==sizeof(long), int, long>::Result x;
> この例って、例1と例2のどっちのためのでしょうか。

例1と例2の両方を定義しておいて,環境にあわせて型を決定するために使われます。
つまり,両方のための例になります。

sizeof(int)とsizeof(long)が同一の値をとる環境下では,例1の構造体が使われます。
sizeof(int)とsizeof(long)が異なる値をとる環境下では,例2の構造体が使われます。


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

Name: 新芽  ..ぴよぴよ(210ポイント)   Date: 2007/10/29(月) 15:36   No:11343 解決!     
Title: Re:template 構造体の不思議な定義法(お礼)    
あーッ、そうなの!
よくわかりました。
ありがとうございました


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



Name: マック  ..かけだし(1,124ポイント)   Date: 2007/10/25(木) 10:41   No:11226       
Title: ご指導お願いいたします    
現在こちらのゲームプログラミングの24項目をベースに

ファミコンゼルダのような物を考えていて
現在MAPの移り変わりについてやっているのですが
イメージしている動きに中々いかない状態です。


現在のソースなのですが
簡単なmapを表示し、hantei[][]の中身が
MAP切り替えの数値だった場合map_typeを変え
次を表示という形にしています。
(can_notの関数の所で行っているため現在切り替わりがおかしい状態又、
切り替わり時に自キャラを移動していないのでmapが切り替わった瞬間の位置が悪いです)


今やりたいこととして下のような配列があるとして(今現在0,1以外はmap_typeを切り替える数値です)
hantei[][]={
{1,1,1,1,2,2,2,2,1,1,1,1},         //////////////////////////
{1,0,0,0,0,0,0,0,0,0,0,1},         /             /
{1,0,0,0,0,0,0,0,0,0,0,1},         / /
{1,0,0,0,0,0,0,0,0,0,0,1},         /             /         
{3,0,0,0,0,0,0,0,0,0,0,4},         /             /
{3,0,0,0,0,0,0,0,0,0,0,4},         / 空白部分が目に見える部分 /
{3,0,0,0,0,0,0,0,0,0,0,4},         /  (/の部分が1や2) /
{1,0,0,0,0,0,0,0,0,0,0,1},         /             /
{1,0,0,0,0,0,0,0,0,0,0,1},         /             /
{1,0,0,0,0,0,0,0,0,0,0,1},         /             / 
{1,1,1,1,5,5,5,5,1,1,1,1},         //////////////////////////
};
があるとして表示した際右のように表示させたいのですが
どのようにやればいいでしょうか?

又わざわざそんなことをしなくても現在の表示の方法でこう組めばうまく
切り替えができる等ございましたら
ご指摘のほどよろしくお願いいたします。
 


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


Name: マック  ..かけだし(1,159ポイント)   Date: 2007/10/25(木) 10:49   No:11227     
Title: Re:ご指導お願いいたします    
zipの添付がうまくいかなかったので
txtで添付させていただきます


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

Name: マック  ..かけだし(1,272ポイント)   Date: 2007/10/25(木) 12:05   No:11232     
Title: Re:ご指導お願いいたします    
容量がでか過ぎて全部送れなかったようですので修正版を。
最低限のソースと画像のみ入れてZIPにしています。
上のやつを編集したかったのですがパス設定をしてなかったのでできませんでした。


後表示させたいものの図がすごいずれてますね申し訳ないです。
添付ファイルに書きたかった図をのせておきます。
ちなみにつかっている物は、
VC++2005EXpress Edition
OSはwindows 2000です


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

Name: Justy  ..ハッカー(165,960ポイント)   Date: 2007/10/25(木) 23:20   No:11244     
Title: Re:ご指導お願いいたします    
右のように表示させたいのですが

 つまり、ワープポイント(2〜5)も壁として表示したい、ということでしょうか?
(そうでなければ、もう少し補足をお願いします)

 なら単純に壁の描画部分の判定を

    if(hantei[i][j])

DrawGraph(j * 32,i * 32,image2,TRUE); // 壁画像を表示


 とすれば、hantei[i][j]が0以外なら壁が描画されます。


こう組めばうまく
 同じようなコードが延々とあったので、少し縮めてみました。
 参考までに。



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

Name: マック  ..かけだし(1,720ポイント)   Date: 2007/10/26(金) 15:05   No:11250     
Title: Re:ご指導お願いいたします    
Justy様、ご返答ありがとうございます。

質問の意味がわかりにくくて申し訳ないです。

/*つまり、ワープポイント(2〜5)も壁として表示したい、ということでしょうか?*/
ワープポイントについては壁を表示せずにその配列内にいったら中身に対応したMAPに移るようにしています。

表示させたい仕方をペイントで図を書いてみました。
悩んでいるところとして今の所、コンパイル後ウインドウズ画面で表示されますが
添付ファイルにある "やりたい事.bmp"のようにウインドウズ画面外から描画を
始めたいのと思っています。


又、ソースを作っていただきまして誠にありがとうございます。
ソースがスリムに!
まだ日が浅いためまとめ方やポインタ・関数の使い方は大変勉強になります。







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

Name: Justy  ..ハッカー(167,176ポイント)   Date: 2007/10/26(金) 21:55   No:11264     
Title: Re:ご指導お願いいたします    
表示させたい仕方をペイントで図を書いてみました
添付ファイルにある "やりたい事.bmp"のようにウインドウズ画面外から
描画を 始めたいのと思っています
 概ね把握しました。
 つまり、画面外に壁やワープポイントするブロックがある、ということですね。

 やりかたとしてはタイプによっていろいろありますが、一番汎用性のあるのは
「カメラ」の概念を導入することです。

 キャラクタやマップの位置はあくまで内部的な管理上のものとして、
表示するときにその内部管理座標からカメラ通して見たときの位置に変換します。

 そうすることで、カメラの位置を動かすだけで、画面上の全てのものが
移動します。
(ビデオカメラを想像するとわかりやすいと思います)


 今回はスクロールするという話は出ていませんが、するしないに関わらず、
システム的にカメラ的な概念を入れることでマップの左上を画面外にすることができ、
尚かつ管理方法は表示のときを除いて今まで通りでOKとなります。

 ちなみに今回の場合、データ列が 20x15と画面ぴったりなので、
画面より一回り大きくなるよう22x17にデータを拡張した上で、カメラをマップの中央に
セットしておけば、自然と周囲の壁は画面の外にはみ出ます。



 簡単なサンプルを付けておきました。
 デバッグとして、ADWXのキーでカメラの位置を動かせます。


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

Name: マック  ..かけだし(1,730ポイント)   Date: 2007/10/29(月) 10:37   No:11335 解決!     
Title: Re:ご指導お願いいたします    
Justy様、ご返答ありがとうございます。
返信が遅くなりまして申し訳ないです。


カメラの概念があるとは。カメラといえば3Dにしか使わないイメージでした。
実際にコンパイルしてみましたがこれは面白いですね^^
もうすこし理解して工夫すれば色々できそうです。
後はMAP移動後の自キャラの位置調節などをやればMAPの基本的な切り替わりはできそうです。


Justy様、ご協力誠にありがとうございました。


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



Name: 大工  ..上級者(24,731ポイント)   Date: 2007/10/27(土) 23:56   No:11300       
Title: リスト構造    
諸事情の為、ソースは削除しました。


上記のプログラムでちょっとした不具合が出てしまったので質問させてください。

入力された数値をソートされた順に表示するプログラムで

input = 1
[ 1 ]
input = 2
[ 1 2 ]
input = 3
[ 1 3 2 ]

と入力すると"1", "2"までは小さい順から表示(リスト要素の入れ替ええ)されますが"3"からきちんとした表示がでません。
"3"は最初、リストの先頭にありますがソートが"1"と交換した次でfor文を抜けてしまいます。

原因がぜんぜんわかりません・・・・・・・


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


Name: box  ..比類無きプログラマー(90,797ポイント)   Date: 2007/10/28(日) 00:44   No:11302     
Title: Re:リスト構造    
いったんリストに挿入した後で、リスト全体をソートするのは
意外とむずかしいかもしれません。

sort_node()を思い切って廃棄し、
insert_node()で「リストのどこに挿入すべきかを
見つけてから挿入する」ようにすれば、
挿入した時点でソート済みになります。


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

Name: ゾン兵衛  ..ぴよぴよ(316ポイント)   Date: 2007/10/28(日) 04:45   No:11305     
Title: Re:リスト構造    
 
 "sort"関数も考えてみました。
これでうまくいく・・・はず。

void sort(node_t **n)
{
node_t *p , *q;

p = q = *n;
while(p->next != NULL && q->value > p->next->value) p = p->next;
if(p == q) return;
(*n) = (*n)->next;
q->next = p->next;
p->next = q;
}


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

Name: 大工  ..上級者(24,779ポイント)   Date: 2007/10/28(日) 23:58   No:11329     
Title: Re:リスト構造    
ゾン兵衛さま, boxさま>

返信ありがとうございます。

もういちど再設計してみたらゾン兵衛さんと同じアルゴリズムになりました。

ソースのUpありがとうございます。


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



Name: niki  ..ぴよぴよ(44ポイント)   Date: 2007/10/25(木) 00:23   No:11224       
Title: Windowsアプリケーション    
OSはWindowsXP、コンパイラはBorland C++を利用し、C言語を使ってWindowsプログラミングを作成中です。ポインタやファイル入出力、構造体等の基本的なことは学習したので、レベル7くらいだと思います。
添付したソースで作成したボタンを押したとき、ボタンが押されたままになるように、再度押すと押されていない状態になるようにしたいのですが、ソースをどのように変えたら良いのでしょうか?


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


Name: ibis  ..ぴよぴよ(202ポイント)   Date: 2007/10/25(木) 22:13   No:11242     
Title: Re:Windowsアプリケーション    
チェックボックスを使うべきかと。
この場合はCreateWindowの第3引数にBS_AUTOCHECKBOXを加えることで実現できます。
さらにBS_PUSHLIKEを加えるとプッシュボタンのような外観のチェックボックスになります。
チェックボックスの状態を取得するにはBM_CHECKEDメッセージを送信します。
その際の第3、第4引数は共にNULLです。
この戻り値がBST_CHECKEDならチェック状態、BST_UNCHECKEDなら非チェック状態となります。


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

Name: niki  ..ぴよぴよ(81ポイント)   Date: 2007/10/28(日) 23:36   No:11327     
Title: Re:Windowsアプリケーション    
ご回答ありがとうございました。
確認、返信するのが遅れてすみません。
アドバイスを参考に試してみようと思います。