また、質問させていだ抱きます。
今回は画像の扱いについてなのですが、
・画面の切り替えについて
画面の切り替えの際、ClearDrawScreen()で画面をいったんきれいにし、そこに新しく、画像を描画していけばよいのでしょうか?(違う場合、修正および、サンプルコードをお願いします。 また、違う方法があれば、そちらも教えてもらえるとありがたいです。
・画像のランダム方法について
画像のランダム表示の方法があれば、サンプルコードをお願いします。
・画像と入力値のリンク(?)について
画像がないので文で説明します。
画像にオレンジの絵が何個か、書いてあったとして、それをパソコンで数値を入力して、合否を当てる
というものなのですが、可能でしょうか?
可能ならばヒントまたはサンプルコードを載せてもらえるとありがたいです。
開発環境はVS C++2010
使用言語 C言語
使用ライブラリ DXライブラリ
わかるかたお願いします。
DXライブラリの画像の扱いについて
- Hiragi(GKUTH)
- 記事: 167
- 登録日時: 13年前
- 住所: 大阪府
- 連絡を取る:
Re: DXライブラリの画像の扱いについて
>・画面の切り替えについて
>画面の切り替えの際、ClearDrawScreen()で画面をいったんきれいにし、そこに新しく、画像を描画していけばよいのでしょうか?
>(違う場合、修正および、サンプルコードをお願いします。また、違う方法があれば、そちらも教えてもらえるとありがたいです。
SetDrawScreen関数で裏画面にする ⇒ 裏画面(表示されない領域)で画像などの表示プログラムを実行 ⇒ ScreenFlip関数で表示
ClearDrawScreen関数で画面を消す、 ⇒ 裏画面(表示されない領域)で画像などの表示プログラムを実行・・・
と、こんな感じで描画されます。
>・画像のランダム方法について
>画像のランダム表示の方法があれば、サンプルコードをお願いします。
これはここのフォーラムルールに反しているように思えるので回答できません。
ただ適当に乱数などを使って、表示するだけでいいと思われますが・・・
>・画像と入力値のリンク(?)について
>画像がないので文で説明します。
>画像にオレンジの絵が何個か、書いてあったとして、それをパソコンで数値を入力して、合否を当てる
>というものなのですが、可能でしょうか?
>可能ならばヒントまたはサンプルコードを載せてもらえるとありがたいです。
画像ごとに数値を割り振って、それを使い条件分岐で判断すれば可能です、
>画面の切り替えの際、ClearDrawScreen()で画面をいったんきれいにし、そこに新しく、画像を描画していけばよいのでしょうか?
>(違う場合、修正および、サンプルコードをお願いします。また、違う方法があれば、そちらも教えてもらえるとありがたいです。
SetDrawScreen関数で裏画面にする ⇒ 裏画面(表示されない領域)で画像などの表示プログラムを実行 ⇒ ScreenFlip関数で表示
ClearDrawScreen関数で画面を消す、 ⇒ 裏画面(表示されない領域)で画像などの表示プログラムを実行・・・
と、こんな感じで描画されます。
>・画像のランダム方法について
>画像のランダム表示の方法があれば、サンプルコードをお願いします。
これはここのフォーラムルールに反しているように思えるので回答できません。
ただ適当に乱数などを使って、表示するだけでいいと思われますが・・・
>・画像と入力値のリンク(?)について
>画像がないので文で説明します。
>画像にオレンジの絵が何個か、書いてあったとして、それをパソコンで数値を入力して、合否を当てる
>というものなのですが、可能でしょうか?
>可能ならばヒントまたはサンプルコードを載せてもらえるとありがたいです。
画像ごとに数値を割り振って、それを使い条件分岐で判断すれば可能です、
だいがくせい!
Re: DXライブラリの画像の扱いについて
画像のランダム表示の件について・・・
ランダム関数は、数字でなら使ったことは、あるのですが、画像には、数字というものを持っていませんし、
画像にどうやって、数値を割り振るか、ということで、悩んでいるのですが、質問の内容不足ですいません。
ランダム関数は、数字でなら使ったことは、あるのですが、画像には、数字というものを持っていませんし、
画像にどうやって、数値を割り振るか、ということで、悩んでいるのですが、質問の内容不足ですいません。
Re: DXライブラリの画像の扱いについて
画像に数字を割り当てるのも、文字に数字を割り当てるのも同じ事です。
文字に数字を割り当てるのなら見たことありますよね?そう。'a'とやるとaという文字に割り当てられている数字を得られますね。
こんな感じで、「hoge.pngには0を、foo.pngには1を」みたいにすればいいでしょう。
文字に数字を割り当てるのなら見たことありますよね?そう。'a'とやるとaという文字に割り当てられている数字を得られますね。
こんな感じで、「hoge.pngには0を、foo.pngには1を」みたいにすればいいでしょう。
Re: DXライブラリの画像の扱いについて
文字だとchar型を使ってaとかを格納したのはわかるのですが、
aの中に元々、数値が割り振られているということですよね・・・?
charとかを使うわけではないんですよね?
理解力が低くてすいませんが、もう少しわかりやすくお願いできないでしょうか?
aの中に元々、数値が割り振られているということですよね・・・?
charとかを使うわけではないんですよね?
理解力が低くてすいませんが、もう少しわかりやすくお願いできないでしょうか?
Re: DXライブラリの画像の扱いについて
ルートさんの頭の中で「hoge.pngは0、foo.pngは1」という対応関係を作っておきます。
ユーザーが0を入力したらhoge.pngを選んだことにして、ユーザーが1を入力したらfoo.pngを選んだことにすればいいと思います。
もしかしたら、プログラム的に
int GetImageId(const char* image_name);
const char* GetImageName(int image_id);
みたいな関数を作りたいということでしょうか。
ユーザーが0を入力したらhoge.pngを選んだことにして、ユーザーが1を入力したらfoo.pngを選んだことにすればいいと思います。
もしかしたら、プログラム的に
int GetImageId(const char* image_name);
const char* GetImageName(int image_id);
みたいな関数を作りたいということでしょうか。
Re: DXライブラリの画像の扱いについて
ユーザが入力した数値なら、画像を表示するというより、
画像に数値を割り振って(できれば)
ランダム関数を使って指定した範囲内数値で、画像に割り振った数値が出たら、その数値の画像を表示する
という風にしたいのですが。
画像に数値を割り振って(できれば)
ランダム関数を使って指定した範囲内数値で、画像に割り振った数値が出たら、その数値の画像を表示する
という風にしたいのですが。
- Dixq (管理人)
- 管理人
- 記事: 1661
- 登録日時: 13年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: DXライブラリの画像の扱いについて
まず一つ目。
数値を文字列に変換したいということであれば、
いくつか方法がありますが、sprintfを使うと良いでしょう。
http://www.google.co.jp/search?gcx=c&so ... +C&qscrl=1
例えば
sample0.png
sample1.png
sample2.png
sample3.png
のような連番のファイルを用意しておきます。
int i=0;
char FileName[128];
sprintf(Filename,"sample%d.png",i);
としてやればFileNameは"sample0.png"になります。
これをLoadGraphに渡してやればよいです。
連番であれば、for文で回せますから と言った事も可能になります。
二つ目。
ランダムでこの数値を作りたければGetrand関数を使って適当な数値を生成すればよいでしょう。
但しリアルタイムに画像の表示を切り替えるなら、まず全ての画像を読み込んでおいて、画像ハンドルを使って表示する事になります。
その時は、
int GrHandle[5];
とでも配列を作っておいて、画像を全てこの中にロードしておき、GetRand(4)で帰ってくる0~4の値を配列要素数にあてはめて使用すると良いかと思います。
三つ目。
入力した文字列+ファイル名にしたいのなら、これもsprintfで連結すればよいです。
sprintfはprintfのように書式指定子が使えますので引数に「"%s%s","orange",".png"」のようにかけばorange.pngという文字列が出来上がります。
数値を文字列に変換したいということであれば、
いくつか方法がありますが、sprintfを使うと良いでしょう。
http://www.google.co.jp/search?gcx=c&so ... +C&qscrl=1
例えば
sample0.png
sample1.png
sample2.png
sample3.png
のような連番のファイルを用意しておきます。
int i=0;
char FileName[128];
sprintf(Filename,"sample%d.png",i);
としてやればFileNameは"sample0.png"になります。
これをLoadGraphに渡してやればよいです。
連番であれば、for文で回せますから と言った事も可能になります。
二つ目。
ランダムでこの数値を作りたければGetrand関数を使って適当な数値を生成すればよいでしょう。
但しリアルタイムに画像の表示を切り替えるなら、まず全ての画像を読み込んでおいて、画像ハンドルを使って表示する事になります。
その時は、
int GrHandle[5];
とでも配列を作っておいて、画像を全てこの中にロードしておき、GetRand(4)で帰ってくる0~4の値を配列要素数にあてはめて使用すると良いかと思います。
三つ目。
入力した文字列+ファイル名にしたいのなら、これもsprintfで連結すればよいです。
sprintfはprintfのように書式指定子が使えますので引数に「"%s%s","orange",".png"」のようにかけばorange.pngという文字列が出来上がります。
Re: DXライブラリの画像の扱いについて
みなさんありがとうございます。
ついでなのですが、画像の切り替えとは、また別のことなのですが
画像のスライドみたいなのはできますか?
例えば、画像を同じ座標に表示してクリックするとそこだけ、変わるイメージなんですが、
わからなかったらすいません。
ついでなのですが、画像の切り替えとは、また別のことなのですが
画像のスライドみたいなのはできますか?
例えば、画像を同じ座標に表示してクリックするとそこだけ、変わるイメージなんですが、
わからなかったらすいません。
Re: DXライブラリの画像の扱いについて
マウスを使ってということですか?
このあたりを見てもらうとして
http://dixq.net/g/04_07.html
マウスの座標が範囲に入っていて、かつ、クリックされたら
画像を表示でどうでしょうか。
いろいろ書き方はありそうですが、if文でどちらの画像を表示させるか決めれば良いかと。
とりあえず、書いてみてコードをアップしてください。
問題があればアドバイスしますので。
このあたりを見てもらうとして
http://dixq.net/g/04_07.html
マウスの座標が範囲に入っていて、かつ、クリックされたら
画像を表示でどうでしょうか。
いろいろ書き方はありそうですが、if文でどちらの画像を表示させるか決めれば良いかと。
とりあえず、書いてみてコードをアップしてください。
問題があればアドバイスしますので。