C言語何でも質問掲示板


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

規約と使い方

 
   サンプルでわからない ....   
     ・[19905] 管理人 
     ・[19917] kk 
   ファイル分割について   
     ・[19873] ROL 
     ・[19874] 管理人 
     ・[19875] 管理人 
     ・[19878] ROL 
     ・[19880] 管理人 
     ・[19881] ROL 
     ・[19882] ROL 
     ・[19894] 管理人 
     ・[19898] ROL 
     ・[19900] 御津凪 
     ・[19909] 管理人 
   オススメの本は?   
     ・[19761] 管理人 
     ・[19763] lbfuvab 
     ・[19817] バグ 
     ・[19825] box 
     ・[19841] kazuoni 
     ・[19876] まさ 
     ・[19877] まさ 
   英文の英単語を反転さ ....   
     ・[19861] kazuoni 
     ・[19870] 管理人 
   質問させてください。   
     ・[19833] box 
     ・[19834] 管理人 
     ・[19835] kazuoni 
     ・[19842] アジノ 
     ・[19844] 管理人 
     ・[19848] アジノ 
     ・[19850] box 
     ・[19852] 管理人 
     ・[19862] アジノ 
   課題が出てるのですが ....   
     ・[19831] nayo 
     ・[19836] 管理人 
     ・[19837] kazuoni 
     ・[19838] ランド 
     ・[19839] 管理人 
     ・[19840] box 
     ・[19843] kazuoni 
     ・[19845] 管理人 
     ・[19846] 管理人 
     ・[19858] kokoro 
   質問なんですが…   
     ・[19773] 管理人 
     ・[19830] rion 
   龍の館12章moif(t%60= ....   
     ・[19791] こめかみ 
     ・[19792] こめかみ 
     ・[19793] こめかみ 
     ・[19796] 管理人 
     ・[19798] 御津凪 
     ・[19803] こめかみ 
     ・[19806] こめかみ 
     ・[19809] 管理人 
     ・[19810] こめかみ 
     ・[19811] こめかみ 
     ・[19821] YuO 
   累乗の自作関数につい ....   
     ・[19769] 管理人 
     ・[19770] 管理人 
     ・[19772] kazuoni 
     ・[19776] 管理人 
     ・[19777] 管理人 
     ・[19778] ヨハネ 
     ・[19779] ヨハネ 
     ・[19780] ヨハネ 
     ・[19781] ヨハネ 
     ・[19782] 管理人 
     ・[19783] box 
     ・[19784] フリオ 
     ・[19785] ヨハネ 
     ・[19786] ヨセフ 
     ・[19787] box 
     ・[19788] box 
     ・[19789] ヨセフ 
     ・[19794] box 
     ・[19795] 管理人 
     ・[19797] 管理人 
     ・[19799] box 
     ・[19800] ヨセフ 
     ・[19801] ヨセフ 
     ・[19802] 管理人 
     ・[19804] ヨセフ 
     ・[19805] 管理人 
     ・[19807] 管理人 
     ・[19808] 管理人 
     ・[19812] ヨセフ 
     ・[19813] box 
     ・[19814] 管理人 
     ・[19815] box 
     ・[19816] ヨセフ 
     ・[19819] ヨセフ 
   PocoをMinGWでコンパイ ....   
     ・[19762] lbfuvab 
     ・[19818] jyun 
   ウインドウモードに変 ....   
     ・[19775] 管理人 
   ビルド後に現れるウィ ....   
     ・[19667] array 
     ・[19668] Haru 
     ・[19669] ランド 
     ・[19673] こめかみ 
     ・[19675] こめかみ 
     ・[19676] 管理人 
     ・[19677] こめかみ 
     ・[19679] 管理人 
     ・[19687] こめかみ 
     ・[19689] こめかみ 
     ・[19692] バグ 
     ・[19695] 管理人 
     ・[19707] こめかみ 
     ・[19718] こめかみ 
     ・[19720] こめかみ 
     ・[19722] こめかみ 
     ・[19766] こめかみ 
     ・[19767] こめかみ 
     ・[19771] 管理人 
   ■ アンケートにご協 ....   
     ・[19644] 管理人 
     ・[19653] 木霊 
     ・[19654] 木霊 
     ・[19655] 管理人 
     ・[19726] 木霊 
     ・[19759] 管理人 
   てくてくピクミンの実 ....   
     ・[19656] 管理人 
     ・[19657] 管理人 
     ・[19658] 管理人 
     ・[19660] ROL 
     ・[19674] レッツ 
     ・[19678] 管理人 
     ・[19684] ROL 
     ・[19688] ROL 
     ・[19691] 管理人 
     ・[19693] 管理人 
     ・[19709] ROL 
     ・[19712] 管理人 
     ・[19723] ROL 
     ・[19725] 管理人 
     ・[19728] ROL 
     ・[19755] 管理人 
     ・[19757] ROL 
     ・[19758] 管理人 
   宿題で困っています・ ....   
     ・[19715] 管理人 
     ・[19716] array 
     ・[19717] kazuoni 
     ・[19719] 管理人 
     ・[19721] box 
     ・[19724] array 
     ・[19737] KEV 
     ・[19739] KEV 
     ・[19743] box 
     ・[19746] 管理人 
     ・[19756] KEV 
   コンパイルができちゃ ....   
     ・[19729] EVIL 
     ・[19730] box 
     ・[19731] キッド・J・ヨセフ 
     ・[19732] ヨハネ 
     ・[19733] box 
     ・[19734] ヨハネ 
     ・[19735] box 
     ・[19736] Hermit 
     ・[19738] ヨハネ 
     ・[19740] box 
     ・[19741] ヨハネ 
     ・[19742] ヨハネ 
     ・[19744] box 
     ・[19745] ヨハネ 
     ・[19747] ヨハネ 
     ・[19748] 通りすがり 
     ・[19749] ヨハネ 
     ・[19750] box 
     ・[19751] ヨハネ 
     ・[19752] ヨハネ 
     ・[19753] box 
     ・[19754] ヨセフ 
   3D上での当たり判定 ....   
     ・[19690] array 
     ・[19711] KEV 
     ・[19713] array 
   ゲームを製作する際の ....   
     ・[19701] Mist 
     ・[19702] 管理人 
     ・[19703] バグ 
     ・[19704] めいらる 
     ・[19705] 御津凪 
     ・[19706] 翡翠 
     ・[19708] 翡翠 
   API等の技術情報を公開 ....   
     ・[19291] すく 
     ・[19293] Mist 
     ・[19294] ibis 
     ・[19299] たかぎ 
     ・[19382] BIOS 
     ・[19384] BCI-3e 
     ・[19386] tkmakwins15 
     ・[19398] finnissy 
     ・[19414] 管理人 
     ・[19500] BIOS 
     ・[19538] バグ 
     ・[19680] ゆーずぃ 
     ・[19686] array 
   画像の回転   
     ・[19368] 管理人 
     ・[19373] kaiten 
     ・[19377] array 
     ・[19407] 管理人 
     ・[19417] Justy 
     ・[19597] kaiten 
     ・[19606] Justy 
     ・[19681] kaiten 
   C言語 13の実行につ ....   
     ・[19647] たか 
     ・[19648] yacou 
     ・[19649] たか 
     ・[19652] yacou 
     ・[19659] たか 
   龍神館8章について   
     ・[19596] バグ 
     ・[19604] 管理人 
     ・[19637] こめかみ 
     ・[19640] 管理人 
     ・[19641] こめかみ 
   CPU使用率がかなり高く ....   
     ・[19624] バグ 
     ・[19626] めいらる 
     ・[19627] Mist 
     ・[19629] バグ 
     ・[19639] kirbest 
   アンケートについて   
     ・[19542] 組木紙織 
     ・[19548] たかぎ 
     ・[19549] 管理人 
     ・[19550] 管理人 
     ・[19553] 組木紙織 
     ・[19556] BCI-3e 
     ・[19558] 管理人 
     ・[19559] 管理人 
     ・[19563] kazuoni 
     ・[19564] 管理人 
     ・[19565] たかぎ 
     ・[19586] YuO 
     ・[19588] 管理人 
     ・[19600] kazuoni 
     ・[19601] たかぎ 
     ・[19603] バグ 
     ・[19609] 管理人 
     ・[19614] 雷 
     ・[19617] 管理人 
     ・[19630] KEV 
     ・[19636] 管理人 
   夏休みの宿題(他)   
     ・[19338] array 
     ・[19339] 管理人 
     ・[19342] 管理人 
     ・[19363] さ 
     ・[19365] 管理人 
     ・[19375] たかぎ 
     ・[19390] やそ 
     ・[19391] たかぎ 
     ・[19401] もも 
     ・[19402] BCI-3e 
     ・[19403] 通りすがり 
     ・[19405] BCI-3e 
     ・[19410] 管理人 
     ・[19420] たかぎ 
     ・[19424] BCI-3e 
     ・[19427] 管理人 
     ・[19628] <kor 
     ・[19635] 管理人 
   14章の弾幕について。   
     ・[19269] 管理人 
     ・[19306] <kor 
     ・[19307] array 
     ・[19308] 管理人 
     ・[19309] 管理人 
     ・[19450] <kor 
     ・[19452] array 
     ・[19457] 管理人 
     ・[19506] <kor 
     ・[19509] 管理人 
     ・[19511] array 
     ・[19593] <kor 
     ・[19611] 管理人 
     ・[19615] 管理人 
     ・[19625] <kor 
     ・[19631] 管理人 
     ・[19632] めいらる 
     ・[19634] 管理人 
   アニメーションについ ....   
     ・[19608] ROL 
     ・[19610] 管理人 
     ・[19616] ROL 
     ・[19618] 管理人 
     ・[19619] ROL 
     ・[19620] 管理人 
     ・[19622] ROL 
     ・[19633] 管理人 

Name: kk  ..ぴよぴよ(144ポイント)   Date: 2008/08/07(木) 13:21   No:19902       
Title: サンプルでわからないところが・・    
こんにちは、最近このHPを見てCプロでGAMEを作ろうと思っているのですが、
http://dixq.net/g/#40のサンプルでつまっています。
(32節から飛んだので33節からはまだよんでいません)
このサンプルでわからないことが2つあるのですが

@
このサンプルのメイン関数は
int WINAPI WinMain
からですよね。
メイン関数のどこにもGetHitKeyStateAll_2関数の呼び出しをしてるとこが見あたらないのですが、
どうしてGetHitKeyStateAll_2関数がはたらくのでしょうか?

A
GetHitKeyStateAll_2関数の中のKeyStateBuf[Enterの番号]の中の値が増えると
どうしてメイン関数の中のkey[KEY_INPUT_RETURN]の中の値が増えるのでしょうか?
(どうしてDrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_RETURN]);
 が働くのかがわかりません)


少しわかりにくい書き方になってしまいましたが教えていただければ幸いです。


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


Name: 管理人 [URL]  ..伝説のハッカー(683,247ポイント)   Date: 2008/08/07(木) 13:31   No:19905     
Title: Re:サンプルでわからないところが・・    
自作関数・ポインタの辺りの理解が既におありだという前提でお話します。

1、
についてですが、よくご覧頂ければ見つけられると思います。
どうしても、見つからない時は関数名を検索してみて下さい。

2、
ポインタを渡さないで、関数に変数を渡すと、そこで値を変更しても
値の中身は変更されませんね。
しかし、引数は今配列の先頭アドレスです。
受け取りの役をしているのはポインタですね。
ポインタにメイン関数で使っている変数のアドレスをいれ、
その中身を関数先で変更すると、中身は変更されますよね?
もしこの辺の理解があやふやでしたら、入門サイトにかいてある程度でいいので
一度復習し直してみてはいかがでしょうか。


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

Name: kk  ..ぴよぴよ(93ポイント)   Date: 2008/08/07(木) 17:49   No:19917 解決!     
Title: Re:サンプルでわからないところが・・    
1ありがとうございます。すこし勘違いしていました

2ポインタのあたりの理解が不十分のようなので少し勉強しますね。
 ありがとうございました


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



Name: ROL  ..中級者(13,997ポイント)   Date: 2008/08/06(水) 23:23   No:19872       
Title: ファイル分割について    
今晩は。ROLです。DXライブラリ本家にスレを立てさせていただいたのですが、
こちらの話がたくさんでそうなので、本家に迷惑かと思ってスレッド作成しました。
マルチだからダメ〜と言われればそれまでですが、私的にものすごく気が引けるので^^;
本家のスレッド↓
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=952
先日のココのスレッド↓
http://dixq.net/board/

いろんなサイトを見て回りましたがファイル分割をどうすればいいか、わかりません。
もちろん一番初めにSDG館・龍神録館のファイル分割の説明は読みました。
ですが、実際ゲームではどのように使われているのか全く理解ができません。
構造体・計算部・描画などの処理をメインの.ccpからはずして見やすくするのが
ファイル分割と言うことは、理解できたのですが;
見よう見真似で自分のコードにも試しましたがエラーがいっぱいで;
やり方もいまいちわかっていません。
管理人様のサンプルも理解できませんでした;

どなたか助けていただけませんでしょうか。よろしくお願いします。


管理人様のサンプルです↓

---- main.cpp ----

#include <stdio.h>

#define MAX 3

extern void input();

int a;

int main(void) {
a=1;
input();
printf("main関数で最後にaは%d、MAXは%d\n",a,MAX);
return 0;
}

-------------------

---- main2.cpp ----

#include <stdio.h>

#define MAX 3

extern int a;

void input(){
printf("input関数内で最初にaは%d、MAXは%d\n",a,MAX);
a=3;
}

-------------------

実行結果

input関数内で最初にaは1、MAXは3
main関数で最後にaは3、MAXは3

-------------------

 

追伸
龍神録のパッケージですか・・・・・・・
パッケージと言うものがいまいちわかりませんがゲームの表紙みたい
なものなのでしょうかね?龍神録はプレイさせていただきましたが
今までやってきたゲームの中で一番難しいです。ちゃんとプレイしないと
イメージつかめないから描けないんですよね^^;
迷惑でなければ、製作した絵をメール添付で遅らせてください><⁾₎


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


Name: ROL  ..中級者(14,000ポイント)   Date: 2008/08/06(水) 23:30   No:19873     
Title: Re:ファイル分割について    
あと、キャラクターがゴールに向かう計算を入れたとたんに
ありえないスピードで枠やキャラクターが動きます。
これは、キー入力の取得時間を取らないからなのでしょうか?
また、スピードの制御とかできるものなのでしょうか?


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

Name: 管理人 [URL]  ..伝説のハッカー(681,604ポイント)   Date: 2008/08/06(水) 23:31   No:19874     
Title: Re:ファイル分割について    
なんか、誘導してしまったようですみませんm(_ _)m

一応ここは相互リンクすればマルチOKという事になっています。
DXライブラリの掲示板にも特に取り決めがないので、いいとは思いますが、
一応両方に相互リンクしておくのがベストかと思います。

で、とりあえず、何がわかりませんか?
上のサンプル、そしてSTGのサンプル、龍神録のサンプルでわからなければ、
分割したいソースコードを送ってor投稿して下さい。

分割してお渡しします。

ただ、その前に出来るだけ一つ一つご自分でやってみて下さい。
なるべくローカル変数を利用しつつ、
グローバル変数を使わなければ成らない場合はextern宣言でつかえるようにする。
関数についてもそうです。
前と重複しますが、インクルードと定義は両方でしなければなりません。
少しずつやっていけばエラーが出たらそこが悪いわけですから、
にっちもさっちも行かなくなることは無いと思いますが、どうでしょうか?

>迷惑でなければ、製作した絵をメール添付で遅らせてください><⁾₎

おぉ、是非♪
名前クリックしてもらえたらメルアド出ますb


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

Name: 管理人 [URL]  ..伝説のハッカー(681,882ポイント)   Date: 2008/08/06(水) 23:36   No:19875     
Title: Re:ファイル分割について    
ちなみに、そのサンプルはこれを分割したものです。


#include <stdio.h>

#define MAX 3
int a;

void input(){
printf("input関数内で最初にaは%d、MAXは%d\n",a,MAX);
a=3;
}

int main(void) {
a=1;
input();
printf("main関数で最後にaは%d、MAXは%d\n",a,MAX);
return 0;
}
 
 
・他のファイルで宣言したものを使うときにはextern宣言をする
・インクルードと定義はそのファイルごとにする

を考えて見比べてみるとわかると思うのですが、どうでしょう?


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

Name: ROL  ..中級者(14,651ポイント)   Date: 2008/08/07(木) 00:15   No:19878     
Title: Re:ファイル分割について    
んっとですね・・・・・コレならなんとかわかるかな;
上記の分割していないソースの部分の↓

void input(){
printf("input関数内で最初にaは%d、MAXは%d\n",a,MAX);
a=3;
}


コレをマルマル全部、main2.ccpに移して
int a;
を宣言して使用されるプログラムの一番初めにextern宣言する。
main.ccpは上のmain2.ccpに切り取られた部分を書かないで変わりに
externを宣言すると言う考えでいいのでしょうか^^;

ですがmain.ccpの、void input();の前にextern宣言するのがいまいち
わかりません。コレがif文だった場合とかどうなるんでしょう?^^;

>・インクルードと定義はそのファイルごとにする
これはmain2.ccpに使われている変数を両方で示すと言うことですか?
今回の場合int aのような変数の部分かな?また、インクドールの意味がわかりません;
なんせ、管理人様のゲーム館でしか勉強してきませんでしたから;
関数の意味や構造体の使い方などは他のサイトさんを見に行ったりしていましたが
インクドールの説明は特に関係無いのかなと思ってました。勉強してきた方がよさそうですね^^;



>>迷惑でなければ、製作した絵をメール添付で遅らせてください><⁾₎
>おぉ、是非♪
>名前クリックしてもらえたらメルアド出ますb
ちょっと安心しました。まだまだ修行中の身なのでお気に召されるかどうか
わかりませんが。とりあえず、ラフ絵を1枚、カラーが1枚の計2枚を^^
なぜ2枚かと言うと、フリーのペイントソフトだと特殊効果(光源、影)機能
などが無いからです。また、ペンタブをもってないので;
ソフトは1万ぐらいのでいいのですが、ペンタブ、半端なく高いんですよね^^;
今から構想練って、ネーム書き始めてみます。


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

Name: 管理人 [URL]  ..伝説のハッカー(682,078ポイント)   Date: 2008/08/07(木) 00:29   No:19880     
Title: Re:ファイル分割について    
>コレがif文だった場合とかどうなるんでしょう?^^;

if文をextern宣言するってことですか?
extern宣言出来るのは変数か関数です。
ファイル分割しないとき、他の関数の中のif文を参照できるでしょうか?
分割してない時に出来ないことは分割しても出来ないです。

今のトコROLさんがどの程度理解されているのかわからないので、アドバイスがあいまいですが、
関数の自作とかは出来ますか?
まずはそれが出来ないと分割は難しいかと思います。
とりあえずウェブにある入門サイトを一通りお読みになる事をお勧めします。

>ペンタブ

高いですよね〜・・・。
わたしも3900円のペンタブ持ってるんですが、
ケチって逆に使い物になりません・・orz
絵を描くときは基本いつもマウスです;
お金が出来たら3万位出していいの欲しいですね〜・・。


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

Name: ROL  ..上級者(15,042ポイント)   Date: 2008/08/07(木) 00:55   No:19881     
Title: Re:ファイル分割について    
自作関数ですか・・・・・・;;;;;;;;;;;;
つまり、if文で作った式など関数の中に入れて(自作関数)
それを呼び出すと言う形に取れたのですがあっているのでしょうか?
とにかくがんばって今のを仕上げながら入門サイトで勉強します。
勉強し終わったらまた、質問させていただきます。

>>ペンタブ

>高いですよね〜・・・。
>わたしも3900円のペンタブ持ってるんですが、
>ケチって逆に使い物になりません・・orz

そんなに安い物があったニャンて^^;
私が買おうとしているのは2万程度だったと思いますが
その前にアルバイトの件で恐喝しなければ^^
そしたらペンタブ即買いに行きます(半分冗談;)
でも、管理人様が絵を描かれるとは、驚きです。
絵を書く方が友達にいらっしゃるように言われていたものですから;
やっぱり道具はいい物をそろえなければ!ですね|*゜∀`*)ノ笑


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

Name: ROL  ..上級者(15,251ポイント)   Date: 2008/08/07(木) 01:10   No:19882     
Title: Re:ファイル分割について    
関数を自分で作る意味がわかりました。
サンプルなどでよく出てくるメイン関数は
void main(){}
と書くんですよね^^
で、voidは無を表すので何も値を持たないと言う関数の型。
mainと言うのは関数の名前。
なので計算などを{}の中に書き込めば
main();
とすればいつでも呼び出すことができる。
と言う考えに至りましたがどうでしょう?


今日はこれ以上勉強しても頭に入りそうも無いので寝ます。
ありがとうございました。お先です。おやすみなさ〜い^^


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

Name: 管理人 [URL]  ..伝説のハッカー(682,615ポイント)   Date: 2008/08/07(木) 04:43   No:19894     
Title: Re:ファイル分割について    
絵師が書いてくれてるのはアイシャとリリアの立ち絵だけです・・。
後の絵は私がちまちまと。

>関数

mainはint関数が正しいです。で、最後はreturn 0と。

>main();
>とすればいつでも呼び出すことができる。

まぁメイン関数を呼ぶ事はないでしょうけど、
自作関数ならそういう感じで呼びますね。
引数と返り値についても抑えておくとgoodです。


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

Name: ROL  ..上級者(16,015ポイント)   Date: 2008/08/07(木) 12:20   No:19898     
Title: Re:ファイル分割について    
コレであってるのでしょうか?
昨日、3時間ほど寝てから勉強を再開しました^^;

まず、計算の自作関数を作るなら当然int型になる。
その後に関数名(){}で自作関数の基本が完成。
その次に値の自作関数の中に呼ばなければならないと思います。
その部分が詳しく載っていても型がちがったり、よく意味がわかりません;
でも、ポインタが関係していると言うことだけは、わかりました。

あと、関数を試しにコンパイルしてみると、定義されていない識別子です。と出るのは
引き渡していないから当然なのですが、ローカル関数の定義が正しくありせん。
と表示されています。それの理由がまったく;

何度も解答させてしまい、申し訳ないのですがよろしくお願いします。


P.S
龍神館のファイルを見ながらキャラの基本を書いています。
ですが、バックが見えないのが難点ですね;あの杖?はいったい
どうやってくっついているんでしょう;(背中に)また、横顔は
今まで見てきた絵の中でアイシャに一番近い描き方の絵の横顔を
参考にしました。
リリアの絵が全くなかったのでプレイでたどり着くしか無いんですかね;
普通レベルでも、2面のボスが倒せるぐらいです。ムツカシイ:^^:
>絵師が書いてくれてるのはアイシャとリリアの立ち絵だけです・・。
管理人様がビット絵を描いたんですね。私はビット絵苦手です。
どうしてもラインを減らしたりする作業がうまく行かないで別のキャラに〜〜


名前の件、ご迷惑をおかけしているみたいで、申し訳ないです><
そのせいで他の方からの解答が無いのかな〜と思います^^;
それでますます管理人様に負荷をかけてますね↴
そのうち皆さんも理解されるのでは無いかと思います。辛抱あるのみですね^^b


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

Name: 御津凪  ..ぴよぴよ(482ポイント)   Date: 2008/08/07(木) 12:54   No:19900     
Title: Re:ファイル分割について    
突然ですが割り込んで返答してみます。

> まず、計算の自作関数を作るなら当然int型になる。
必ずしもそうではありません。

> その後に関数名(){}で自作関数の基本が完成。
> その次に値の自作関数の中に呼ばなければならないと思います。
> その部分が詳しく載っていても型がちがったり、よく意味がわかりません;

自作関数は自分で機能を作るものなので、
関数に渡す引数や関数から返される値は自由に決められます。(double等)
たとえば、
double mul(double a,double b){return a * b;}



とか。
(a と b を掛け算した結果を返す自作関数です)

> でも、ポインタが関係していると言うことだけは、わかりました。
関数ポインタというものがありますが、
ここでは意識する必要は無いと思います。

> あと、関数を試しにコンパイルしてみると、定義されていない識別子です。と出るのは
> 引き渡していないから当然なのですが、ローカル関数の定義が正しくありせん。
> と表示されています。それの理由がまったく;
ソースを提示しないとなんともいえませんが、
「定義されていない識別子」というのは、型を指定するところに関係の無い名前を使っていたり、
抜けていた場合に出ます。
例として下記に書いておきます。
int a; // グローバル宣言

int get_a(){return a;} // OK
a get_a(){return a;} // エラー。(aは変数の名前で型ではない)
get_a(){return a;} // エラー。(aは変数の名前で型ではない)
// もし、単に処理を分ける場合は
// ↓のように関数を書くとよい。
void myfunc(){
// ココに処理を書く
}


こんな感じでよろしいでしょうか。


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

Name: 管理人 [URL]  ..伝説のハッカー(682,866ポイント)   Date: 2008/08/07(木) 13:47   No:19909     
Title: Re:ファイル分割について    
どこで勉強しています?

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

この辺で参考になるサイト山ほど出てきますね。
私はこの一番上のサイトで勉強しました。

>計算の自作関数を作るなら当然int型になる。
No。
「計算の」という意味がよくわからないですが、関数の型ってどういう意味かを勉強すれば疑問も晴れるはず。
答えを先に言ってしまえば返り値の型なんですね。

>その次に値の自作関数の中に呼ばなければならないと思います。
値の自作関数の中って何でしょう?

>ポインタが関係していると言うことだけは、わかりました。
関係しないことも多いです。
まぁ関数ポインタとかって視点なら関係ありますが。

>定義されていない識別子です。と出るのは引き渡していないから当然なのですが
引き渡しってなんでしょう?
変数の引数のことですか?
単に関数のスペル間違いではないですか?

>ローカル関数の定義が正しくありせん
書き方が違うか、カッコの対応がおかしいのでしょう。
いずれにしてもコードを見ないことにははっきり言えません。


>杖
どうやってくっついてるんでしょうね・・。

>リリアの絵が全くなかったので
龍神録の公式HPの絵ではだめですか?

>管理人様がビット絵を描いたんですね。
ドット絵もそうですが、必要な画像は立ち絵なんて全体のほんの一部ですからね・・。
背景とかエフェクトとか作らないといけない画像は他にも山ほど・・。
私の技量ではあの程度が限界です;


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



Name: まさ  ..ぴよぴよ(32ポイント)   Date: 2008/08/06(水) 01:42   No:19760       
Title: オススメの本は?    
大学の授業で少しだくC言語を習いました。
内容は、名前・年齢・趣味などの簡単なデータベースを作る程度のものでした。
専攻が情報系ではないので、プログラミングの授業はもう無いようですので
趣味でプログラミングをやろうと思っています。
目標はピクロスやマインスイーパなどを作ることです。
そこで、初心者にオススメのプログラミングの本を教えて欲しいです。
学校の授業では「『新版 明解C言語 入門編』著者:柴田望洋」を使いました。
予算は3500円ぐらいまでが好ましいですが、5000円までならなんとかいけます。


ちなみにOSは、「Microsoft Windows XP Professional Service Pack 2」です。



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


Name: 管理人 [URL]  ..伝説のハッカー(676,480ポイント)   Date: 2008/08/06(水) 02:21   No:19761     
Title: Re:オススメの本は?    
その授業の先生わかってますね〜。その本とてもいいですよ。
私は入門編は読んでませんが、実践編は愛読しました。
ですので、次はその本の実践編を読んでみてはいかがでしょうか。
特に急に難しくなるわけでもなく、今までいい加減に理解していたような事もよく理解できます。

柴田さんはウェブでも大活躍ですしね〜、この人の本はオススメです。


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

Name: lbfuvab  ..かけだし(1,692ポイント)   Date: 2008/08/06(水) 02:57   No:19763     
Title: Re:オススメの本は?    
私も入門編持ってますよ。(^O^)/
猫Cで挫折した私でも分かりました。


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

Name: バグ  ..ハッカー(103,924ポイント)   Date: 2008/08/06(水) 15:58   No:19817     
Title: Re:オススメの本は?    
確かに「猫でもわかる〜」シリーズは、全くの初心者には相当難しいですよね。

「俺は猫以下か!?」

と凹みそうになります(笑)

どういった環境で開発するかにもよりますが、「ビジュアルラーニングC言語入門」が非常に分かり易いです。ただ出版社であるエクスメディアが倒産したので、新品での入手は難しいかもしれません(^_^;)

それから、DXライブラリを使用するならば「14歳からはじめるC言語ゲームプログラミング」も悪くないです。あくまでもゲームプログラミングの入門書であって、C言語の入門書とは言い難いですけど…

DXライブラリを使用せず、WIN32APIのみを使用したゲームプログラミングしたいのならば、「Windowsゲームプログラミング」がオススメです。Windowsプログラムの仕組みが分かりやすく解説されてあります。但し、これは入門書ではありません。ある程度C++の知識を有していることを前提に解説されていますのでご注意ください。


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

Name: box  ..ハッカー(122,011ポイント)   Date: 2008/08/06(水) 17:03   No:19825     
Title: Re:オススメの本は?    
文法をある程度理解できたら、同じく柴田氏の
「新版 C言語によるアルゴリズムとデータ構造」あたりを
読んでみるのもよいかもしれません。


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

Name: kazuoni  ..上級者(21,563ポイント)   Date: 2008/08/06(水) 21:43   No:19841     
Title: Re:オススメの本は?    
やはり柴田氏はすごいですね。
自分は昨日、今日2日間で秘伝C言語問答 ポインタ編をやりました。

基礎確認として明解C言語 入門編、次に実践編をいきたいと思いますw

ここまでいったら新版 C言語によるアルゴリズムとデータ構造でいいですかね?これ早くやってみたいんですけどw今日立ち読みしたらめちゃめちゃ詳しく書いてあって、ついつい50ページぐらい読んでしまいました^^;


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

Name: まさ  ..ぴよぴよ(223ポイント)   Date: 2008/08/06(水) 23:53   No:19876 解決!     
Title: 感謝です!    
たくさんの回答ありがとうございました。
今持っている本の実践編が管理人のキューさんのお墨付きだということが分かって良かったです。
同じ著者の「新版 C言語によるアルゴリズムとデータ構造」も余裕ができたら購入しようかと思います。

とりあえずの目標は「猫レベル」に到達することでいきたいと思います。

また質問することがあると思いますので、そのときはよろしくお願いします。


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

Name: まさ  ..ぴよぴよ(253ポイント)   Date: 2008/08/07(木) 00:14   No:19877     
Title: 感謝です!2    
少しだけ追加の質問があるのですが、新しく質問をするべきですか?

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



Name: りんご  ..ぴよぴよ(472ポイント)   Date: 2008/08/06(水) 22:52   No:19860       
Title: 英文の英単語を反転させる方法    
入力した英文を単語ごとに区切ってその順番を逆転させるプログラムを作れという課題が出ているのですが、
さっぱりわからないし、明日までなので困っています!
どなたか助けて下さい(>_<)


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


Name: kazuoni  ..上級者(22,152ポイント)   Date: 2008/08/06(水) 22:58   No:19861     
Title: Re:お願いします!    
まずいまいち問題の意味がわかりません。。
例えば
入力:My name is kazuoni .

としたら

出力:. kazuoni is name My

こういうことですか?


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

Name: 管理人 [URL]  ..伝説のハッカー(681,244ポイント)   Date: 2008/08/06(水) 23:17   No:19870     
Title: Re:お願いします!    
例によって締め切り間近という事なので、答えを作ってみました。
細かい仕様がよくわからなかったので勝手に決めました。
単語はコンマ、ピリオド、スペース、タブによって区切られ、
文章の最初にある場合、最後にある場合、重複している場合読み飛ばします。


#include<stdio.h>

#define STR_MAX 256

int input_str(int strnum[], char str[]){
int i,n,c,flag;
n=1;
flag=1;
for(i=0;i<STR_MAX-1;i++){
c=getchar();
if(c==' ' || c==',' || c=='.' || c=='\t'){
if(flag==0){
str[i]=0;
strnum[n]=i+1;
flag=1;
n++;
continue;
}
else{
i--;
continue;
}
}
else if(c=='\n' || c==EOF){
str[i]=0;
if(flag==1)
n--;
break;
}
flag=0;
str[i]=(char)c;
}
if(i==STR_MAX-1)str[i]=0;
return n;
}

void conv_str(int n, int strnum[], char str[], char str2[]){
int i,j;
j=0;
n--;
for(i=0;i<STR_MAX-1;i++){
str2[i]=str[strnum[n]+(j++)];
if(str2[i]==0){
str2[i]=' ';
n--;
j=0;
if(n<0)
break;
}
}
str2[i]=0;
}

int main(void){
int i,j,n;
int strnum[STR_MAX/2]={0,};
char str[STR_MAX],str2[STR_MAX];

n=input_str(strnum,str);

for(i=0;i<n;i++)
printf("[%2d]:%s\n",i+1,&str[strnum[i]]);

conv_str(n,strnum,str,str2);

printf("%s\n",str2);
return 0;
}

実行例1

I can speak English
[ 1]:I
[ 2]:can
[ 3]:speak
[ 4]:English
English speak can I

実行例2

.. , I can,.. .speak., , En.glish... , , , ,,,
[ 1]:I
[ 2]:can
[ 3]:speak
[ 4]:En
[ 5]:glish
glish En speak can I
 
 
こういうことであってますか?

今集中講義か何かでしょうか?

丸投げは規約違反なので、このままでは管理人自ら違反を助長してしまうので、
是非、忙しくなくなった時でいいので、注釈を書いて投稿してみて下さい。
わからない箇所があれば調べるか、聞いて下さい。


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



Name: アジノ  ..ぴよぴよ(139ポイント)   Date: 2008/08/06(水) 21:03   No:19832       
Title: 質問させてください。    
forループ文などでキーボードから入力されたデータの列和や行和を表示するプログラムを作ったのですが、何故列和と行和が同じループ内で処理できるのかと問われて困っています。
列和と行和が同じループ内で処理できるのは何故なのでしょうか?

初歩的な質問かもしれませんがどなたか教えてくださると嬉しいです。


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


Name: box  ..ハッカー(122,029ポイント)   Date: 2008/08/06(水) 21:10   No:19833     
Title: Re:質問させてください。    
作ったものを見ないことには、誰も何も答えられません。

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

Name: 管理人 [URL]  ..伝説のハッカー(679,512ポイント)   Date: 2008/08/06(水) 21:13   No:19834     
Title: Re:質問させてください。    
入力されたデータの列和や行和といわれても、どのようなデータ構造になっているのか
こちらにはわかりませんが
二次元配列のようなものなら、アドレスが連続している事を用いたり、
配列要素番号を1次元要素数ごとに処理すれば可能でしょう。

例えば以下のような場合



横のトータルと

0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

縦のトータルを計算したい時は
0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15


#include <stdio.h>

int main(void) {
int i,arr[16];
int gyou=0,retu=0;
for(int i=0;i<16;i++)arr[i]=i;

for(i=0;i<4;i++){
gyou+=arr[i];
retu+=arr[i*4];
}

printf("行合計=%d,列合計=%d",gyou,retu);
return 0;
}

実行結果

行合計=6,列合計=24


こんな感じで計算出来ますよね?
こういうことでしょうか?


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

Name: kazuoni  ..上級者(21,265ポイント)   Date: 2008/08/06(水) 21:22   No:19835     
Title: Re:質問させてください。    
まず・・・どんなコードかみたいですね。行、列があるということは二次配列ですか?書き方によって変わってくるとおもうので。。

int x[4][4],i,j,sum1=0,sum2=0;

for(i=0,i<4,i++)
for(j=0,j<4,j++)
x[i][j]=i;

/*行和*/
for(i=0,i<4,i++)
sum1=sum1+x[i][0]

/*列和*/
for(i=0,i<4,i++)
sum2=sum1+x[0][i]


こんな感じですか?
なぜかと聞かれると・・・行和は列を定数、行をインクリメントするので・・・
みたいな感じになってしまうのですが・・・図を描くとてっとり早いのですが。(行×列)


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

Name: アジノ  ..ぴよぴよ(215ポイント)   Date: 2008/08/06(水) 21:43   No:19842     
Title: Re:質問させてください。    
言葉足らずで申し訳ありませんでした・・・。
ただ私の作ったプログラムは素人故わかりにくく長すぎるので、上で管理人様が書いてくださったプログラムが私の言った「入力されたデータの列和や行和を表示するプログラム」だとお考えください。
kazuoni様もわかりやすいプログラムありがとうございます。
(ちなみに作成したプログラムは二次配列でした。)

列和と行和を求めるループは for(i=0;i<4;i++){〜} の部分ですよね?
列和と行和を求める式2つはこのループ内に入っています。
「この2つ(列和と行和の式)は何故同じループ内で処理出来るのか」と言うのが私の疑問です。

列和と行和に限らず、同じループ内で2つの処理出来る事に疑問を持ったことがなかったので理由を聞かれてすごく戸惑いました。
どうか教えてくださると嬉しいです。


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

Name: 管理人 [URL]  ..伝説のハッカー(680,153ポイント)   Date: 2008/08/06(水) 21:51   No:19844     
Title: Re:質問させてください。    
私の説明ではわからなかったでしょうか?
ループ文や配列についてはわかりますか?
私が提示したサンプルはまさに列の和と行の和を計算するプログラムなので、
これがわかれば疑問も解けるはずですが、
どの辺がわかりませんか?


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

Name: アジノ  ..ぴよぴよ(304ポイント)   Date: 2008/08/06(水) 22:05   No:19848     
Title: Re:質問させてください。    
>ループ文や配列についてはわかりますか?
一通り習ったのでだいたい理解はできていると思いたいです。

>私の説明ではわからなかったでしょうか?
とてもわかりやすいと思いました。
ですが言葉にして説明する、文章に書くとなるとどうもうまくいきません。
私の語彙が拙い所為だと思うのですが・・・。


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

Name: box  ..ハッカー(122,296ポイント)   Date: 2008/08/06(水) 22:17   No:19850     
Title: Re:質問させてください。    
管理人さんが提示されたコードの当該ループでは、
変数iを0から3まで変化させていますね。

そして、
変数gyouの計算では、変数iの値をそのまま添字として使い、
行方向(横方向)[0]〜[3]の値を順次加えています。

また、変数retuの計算では、変数iの値を4倍して(当該行列が4列だからです)添字として使い、
列方向(縦方向)[0], [4], [8], [12]の値を順次加えています。


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

Name: 管理人 [URL]  ..伝説のハッカー(680,420ポイント)   Date: 2008/08/06(水) 22:17   No:19852     
Title: Re:質問させてください。    
ちょっと問題を解いてもらった方がいいかもしれません。



このトータルと
0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

このトータル
0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

 
 
を計算して出力するプログラムを作って下さい。

また、この表の大きさNxNはキーボード入力で指定出来るように拡張して下さい。
その表の上限は10x10とします。

そうすれば解ると思います。


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

Name: アジノ  ..ぴよぴよ(513ポイント)   Date: 2008/08/06(水) 23:03   No:19862     
Title: Re:質問させてください。    
ご丁寧に例題まで出していただいてありがとうございます。
解いてみようと思いましたが
>また、この表の大きさNxNはキーボード入力で指定出来るように拡張して下さい。
>その表の上限は10x10とします。
この部分ですら理解できなかった自分はかなりの勉強不足だと思いました。
自分がわからないわからないと言っていかに今まで人任せだったか思い知らされた気がします。

上で理解はできていると言った私はとても惨めですね。申し訳ありません。
出直してきます。
皆様ありがとうございます。


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



Name: kokoro  ..かけだし(1,923ポイント)   Date: 2008/08/06(水) 20:19   No:19829       
Title: 課題が出てるのですが分からなくて・・・    
[1] 授業単元:C言語
[2] 問題文
★下記の仕様を満たすプログラムをC言語で作成する。
【仕様】図形の面積学習簡易プログラム

▼「三角形の面積」「平行四辺形の面積」「台形の面積」を求める問題を
ランダムに出題する。オリジナル関数を作って処理すること。
▼例えば「三角形の面積」の場合、「底辺が4、高さが7の三角形の面積は?」
と出題する。与えるべき数値(簡単なため数値は1〜9でよい)は全てランダムに表示する。▼回答を入力させ、正解の場合は「よくできました」と表示し、不正解の場合は
「まちがいです」という文を表示する。
▼「続けますか?」と表示し、「はい」なら出題する。「いいえ」ならばこれまでの正解率を計算する。正解率に応じて80%以上ならA、70〜79%ならB、60〜69%ならC、59%以下ならDと表示する。
[3] 環境
  OS: Windows xp
 
 if文、for文,関数プロトタイプ宣言、戻り値
 引数はやりました。標準ライブラリ関数と配列はやってないです・・・


正解率の出し方が分からないので誰か教えてください。

うまくプログラムがかけないのですが、アドバイスをお願いします。

とりあえず作って見ました。ソースは添付してあります。


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


Name: nayo  ..入門者(3,018ポイント)   Date: 2008/08/06(水) 20:48   No:19831     
Title: Re:課題が出てるのですが分からなくて・・・    
正解率なら
(正解数/出題数)*100でいいのではないでしょうか

それぞれ変数を用意して
正解数は初期値を0として”よくできました。”と表示しているところで+1
出題数は初期値を0とするなら正解率計算前に、1なら続けるを選択後に+1
するなどすればいいかと思います

また数値を入力する部分のループが抜けられないのですがいいのでしょうか
まだ途中だから後で修正するのかと思いますが…

これはあまり気にしなくてもいいですが
個人的に正解率は続けるか選択前に表示してほしいような


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

Name: 管理人 [URL]  ..伝説のハッカー(680,067ポイント)   Date: 2008/08/06(水) 21:31   No:19836     
Title: Re:課題が出てるのですが分からなくて・・・    
ちょっと添削してみました。


double (*func[3])(void)={sankakukei,heikou,daikei};
int n,rnd,num1,ans;
char res;
srand(time(NULL));
for(n=0; n<10; n++){
//ここで出題数を数えなければならない
ans =func[rand()%3]();
//無限ループになっている。
for(;;){
printf("解答\n");
//%fが間違い。回答はdouble型で受け取る必要があるのでは?
scanf("%f",&num1);
}
if(ans == num1)//正解数をここで数えなければならない
printf("よくできました。\n");
else
printf("間違いです。\n");
//このままでは無限ループ
for(;;){
printf("続けますか?はい=1,いいえ=2\n");
//前回scanfで入力した時の改行コードが自動で入るのでこれではだめ
scanf("%c",&res);
//文字コードの1と数字の1は違う
if(res == 1)
continue;
else//ループから抜けないといけない。
printf("正解率は\n");
//xに正解率をいれなければならない。
//ここはループの外でなければならない

if(x >= 80)
printf("Aです。\n");
else if(x >= 70 && x < 80)
printf("Bです。\n");
else if(x < 60)//60〜70がない
printf("Cです。\n");
}
}
return 0;
}


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

Name: kazuoni  ..上級者(21,390ポイント)   Date: 2008/08/06(水) 21:33   No:19837     
Title: Re:課題が出てるのですが分からなくて・・・    
正解率は
>(正解数/出題数)*100
でいいと思います。

double (*func[3])(void)={sankakukei,heikou,daikei};

...
ans =func[rand()%3]();


乱数を0〜2でだして
if()

else if()
else()
を利用するなり、switchを利用するなりして、問題を出すのを分岐したほうが簡単なきがするのですが・・・


ans =func[rand()%3]();

はエラーはでないのでしょうか?



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

Name: ランド  ..入門者(3,640ポイント)   Date: 2008/08/06(水) 21:35   No:19838     
Title: Re:課題が出てるのですが分からなくて・・・    
なんだか気になったので色々試してみました。

int main(void){
int par;
int Q=10,A=5; //10問中5問正解した

par = (A/Q)*100; //50%のはず
printf("%d%\n",par);

par = (A/A)*100;
printf("%d%\n",par); //100%

par = A*100/Q; //50%
printf("%d%\n",par);
}

実行結果
0%
100%
50%

最後の計算式は普段私が使っている式なのですが、わかりにくくなるのが目に見えてますね・・・
par,Q,Aをそれぞれdouble型にして、%dを%fにしたところ正しい計算結果が得られましたが、
50.0000%などのように表示されてしまいます。


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

Name: 管理人 [URL]  ..伝説のハッカー(680,097ポイント)   Date: 2008/08/06(水) 21:37   No:19839     
Title: Re:課題が出てるのですが分からなくて・・・    
>kazuoniさん

正しく関数ポインタが使われていると思いますよ。


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

Name: box  ..ハッカー(122,128ポイント)   Date: 2008/08/06(水) 21:42   No:19840     
Title: Re:課題が出てるのですが分からなくて・・・    
ansとnum1の型はintでいいのでしょうか? func関数の戻り値はdouble型になっていますよ。
仮に双方をdouble型にした場合、両者が等しいかどうかを == で
検査するのはちょっと危険です。

浮動小数点数の計算にはなにがしかの誤差を伴います。
例えば、ご自分では28.0という値のつもりでいても、
実際には27.9999999だったり28.0000001だったりするかもしれません。
そうすると、ご自分では正解のつもりが不正解とみなされてしまうことになります。
というわけで、あらかじめ許容範囲を決めておいて、
その範囲内ならば等しいとみなす、という処理が必要になろうかと思います。


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

Name: kazuoni  ..上級者(21,617ポイント)   Date: 2008/08/06(水) 21:50   No:19843     
Title: Re:課題が出てるのですが分からなくて・・・    
>管理人さん
ほほ〜こんな風に使えるのですね。
なんか関数名と()が離れ離れになってるように見えてかなり違和感がありました。。
すみません。本題からそれました|ミサッ


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

Name: 管理人 [URL]  ..伝説のハッカー(680,455ポイント)   Date: 2008/08/06(水) 21:55   No:19845     
Title: Re:課題が出てるのですが分からなくて・・・    
boxさんの仰るとおり、double型は一筋縄では比較出来ないので、
double型を比較する為の関数を作ってみました。
比較したい変数を二つ最初に引数としてわたし、第三引数にその許容誤差値を渡します。


//0なら一致、-1なら不一致
int judge(double a, double b, double gosa){
double c;
c = a-b;//差をとる
if(c<0)//負の値なら
c*=-1;//正に
if(c<gosa)//誤差範囲なら
return 0;//一致
else//それ以外なら
return -1;//不一致
}
 
 
0が返ってきたら一致、-1なら不一致です。
gosaは適当に0.00001とか渡せばいいと思います。
この辺は最初に決まりを作ればいいかと思います。


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

Name: 管理人 [URL]  ..伝説のハッカー(680,588ポイント)   Date: 2008/08/06(水) 22:00   No:19846     
Title: Re:課題が出てるのですが分からなくて・・・    
追記

double sankakukei(void){//三角形
int a,h;
printf("底辺が%d,高さが%dの三角形の面積は?\n",a=(rand()%3)+1,h=(rand()%3)+1);
return a*h/2.0;
}
 
この+1が必要ではないでしょうか。


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

Name: kokoro  ..かけだし(1,949ポイント)   Date: 2008/08/06(水) 22:42   No:19858     
Title: Re:課題が出てるのですが分からなくて・・・    
みなさんありがとうございます^^

試してみます(^_^)v


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



Name: rion  ..ぴよぴよ(75ポイント)   Date: 2008/08/06(水) 04:39   No:19765       
Title: 質問なんですが…    
このページを見て、vc++とdxlibを使ってゲームを作っている者ですが、完成したプログラムはどうすれば第三者が利用できる形で配布できるのでしょうか?
ご返答よろしくお願いします。


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


Name: 管理人 [URL]  ..伝説のハッカー(676,900ポイント)   Date: 2008/08/06(水) 09:28   No:19773     
Title: Re:質問なんですが…    
どのようなフォルダ構成になっているのかよくわからないですが、
DebugフォルダかReleaseフォルダの中にコンパイルして出来た実行ファイルがありますので
それを一つ上のフォルダに移動させて実行させてみて下さい。
するとどうすればいいか解ると思います。

実行ファイルとデータフォルダを一緒に配布すればOKです。
その時
http://dixq.net/g/#t5
この辺の事を注意して下さい。

DXライブラリを用いている場合はアーカイブでデータフォルダを一つのファイルに出来ます。
詳しくは本家のHPをご覧下さい。

ランタイムライブラリの設定でDLLを含む設定になっていたら
これを含まない設定にしておいて下さい。
プロジェクトのプロパティから>構成プロパティ>C/C++>コード生成で
ランタイムライブラリの設定が出来ます。


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

Name: rion  ..ぴよぴよ(98ポイント)   Date: 2008/08/06(水) 20:21   No:19830 解決!     
Title: Re:質問なんですが…    
試してみます。
ご返答ありがとうございました。


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



Name: こめかみ  ..入門者(4,814ポイント)   Date: 2008/08/06(水) 14:35   No:19790       
Title: 龍の館12章moif(t%60==00)ってなんですか?    
if(t%60==0)
じゃダメなんでしょうか。


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


Name: こめかみ  ..入門者(4,824ポイント)   Date: 2008/08/06(水) 14:36   No:19791     
Title: Re:龍の館12章moif(t%60==00)ってなんですか?    
タイトル間違えましたすいません。


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

Name: こめかみ  ..入門者(4,849ポイント)   Date: 2008/08/06(水) 14:38   No:19792     
Title: Re:龍の館12章moif(t%60==00)ってなんですか?    
ちょっと間違えて投稿しました今質問を整理してます。
ご迷惑おかけします。


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

Name: こめかみ  ..入門者(4,866ポイント)   Date: 2008/08/06(水) 14:44   No:19793     
Title: Re:龍の館12章moif(t%60==00)ってなんですか?    
enemy_act_pattern.cppの中の関数 enemy_pattern10に出て来る
if(t%60==00)というのはなんでしょうか。
またこういう微妙な記号の表現を検索する方法などございましたらご教授よろしくお願いします。




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

Name: 管理人 [URL]  ..伝説のハッカー(677,562ポイント)   Date: 2008/08/06(水) 14:54   No:19796     
Title: Re:龍の館12章moif(t%60==00)ってなんですか?    
すみません、タイプミスです。
「0」でいいです。


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

Name: 御津凪  ..ぴよぴよ(102ポイント)   Date: 2008/08/06(水) 14:58   No:19798     
Title: Re:龍の館12章moif(t%60==00)ってなんですか?    
先頭の0は、8進数を表してますよね。
式としては合っているわけですが。


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

Name: こめかみ  ..初心者(5,240ポイント)   Date: 2008/08/06(水) 15:06   No:19803     
Title: Re:龍の館12章moif(t%60==00)ってなんですか?    
12章のミスの報告です。

//移動パターン1

//下がってきて停滞して左下に行く
void enemy_pattern1(int i){
int t=enemy[i].cnt;
if(t==0)
enemy[i].vy=3;//下がってくる
if(t==40)
enemy[i].vy=0;//止まる
if(t==40+enemy[i].wait){//登録された停滞時間だけして
enemy[i].vx=-1;//止まる
enemy[i].vy=2;//上がっていく
enemy[i].muki=0;//左向きセット
}
}

二つ目の"止まる"は"左へ"では?
おなじく、
//移動パターン2

//下がってきて停滞して右下に行く
void enemy_pattern2(int i){
int t=enemy[i].cnt;
if(t==0)
enemy[i].vy=3;//下がってくる
if(t==40)
enemy[i].vy=0;//止まる
if(t==40+enemy[i].wait){//登録された停滞時間だけして
enemy[i].vx=1;//上がっていく
enemy[i].vy=2;//止まる
enemy[i].muki=2;//右向きセット
}
}

二つ目の"止まる"は"下がってくる"で、
"上がっていくの"止まる"は"右へ"です。

そして、移動パターン1〜3,移動パターン7〜9
の、
"//登録された停滞時間だけして"
は、"//登録された時間だけ停滞して"です。

enemy_enter関数が以前の前章のようにずれています。

"enemy[i].wait =enemy_order[t].wait;//色"
これも例の如く
enemy[i].wait =enemy_order[t].wait;//停滞時間ですよね。

enemy_act関数内のコメントが例の如く
" //敵が画面外に外れたら消す"
危険が危ないですね。

以上です。





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

Name: こめかみ  ..初心者(5,294ポイント)   Date: 2008/08/06(水) 15:11   No:19806 解決!     
Title: Re:龍の館12章moif(t%60==00)ってなんですか?    
ミスだったんですかw
コンパイルは成功したので意味があるのかと思いました。
教科書には無かったですけどね。




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

Name: 管理人 [URL]  ..伝説のハッカー(678,837ポイント)   Date: 2008/08/06(水) 15:16   No:19809     
Title: Re:龍の館12章moif(t%60==00)ってなんですか?    
ご報告ありがとうございます。

>コンパイルは成功したので

御津凪さんが仰ったとおり、意味が変わりますが、
そういう表記があるのです。
0x00という表記をご覧になったことがあるかもしれませんが、
それの8進数版です。


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

Name: こめかみ  ..初心者(5,319ポイント)   Date: 2008/08/06(水) 15:17   No:19810     
Title: Re:龍の館12章moif(t%60==00)ってなんですか?    
お礼言い忘れました。
管理人さん、御津凪さんありがとうがざいました。


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

Name: こめかみ  ..初心者(5,345ポイント)   Date: 2008/08/06(水) 15:19   No:19811     
Title: Re:龍の館12章moif(t%60==00)ってなんですか?    
8進数教科書に載ってますね。
索引に00が無かっただけでした。


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

Name: YuO  ..上級者(22,628ポイント)   Date: 2008/08/06(水) 16:39   No:19821     
Title: Re:龍の館12章moif(t%60==00)ってなんですか?    
> 0x00という表記をご覧になったことがあるかもしれませんが、
> それの8進数版です。
余談ですが,C/C++における
0
という表記は,8進数で記述された数値0として扱われます。
# だからどうした,という内容ですが。

ISO/IEC 9899:1999 6.4.4.1 Integer constants
> octal-constant:
> 0
> octal-constant octal-digit
ISO/IEC 14882:2003 2.13.1 Integer literals
> octal-literal:
> 0
> octal-literal octal-digit


他の言語だと,Javaは10進数表記で,
http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10.1
> DecimalNumeral:
> 0
> NonZeroDigit Digits(opt)
> OctalNumeral:
> 0 OctalDigits

C#には8進数表記が存在しません。
ISO/IEC 23270:2003 Integer literals (引用が最新版 <2006> からではないことに注意)
> integer-literal::
> decimal-integer-literal
> hexadecimal-integer-literal


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



Name: ヨハネ  ..ぴよぴよ(744ポイント)   Date: 2008/08/06(水) 08:50   No:19768       
Title: 累乗の自作関数について    
/*
2つの自然数をa, bを入力すると、aのb乗とbのa乗を計算するプログラムを作成したいのですが、出来そうで出来ません。
for分のあたりが自信ないです。
どういう風に考察すればいいのかがわかりません。
誰か教えてください。
*/

#include <stdio.h>

/* fpower関数の定義 */
void fpower(int num1, int num2, int *pA)
{
int i,j;
for(i=0;i<j;i++);
num1=pA
}

int main(void)
{
int a, b, ans1, ans2;

printf("2つの自然数を入力してください。");
scanf("%d %d", &a, &b);

fpower(a, b, &ans1);
fpower(b, a, &ans2);

printf("%dの%d乗は %d です。\n", a, b, ans1);
printf("%dの%d乗は %d です。\n", b, a, ans2);

return 0;
}



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


Name: 管理人 [URL]  ..伝説のハッカー(676,484ポイント)   Date: 2008/08/06(水) 09:00   No:19769     
Title: Re:またもや詰まりました。    
fpower関数の中の
・jに何も初期値が入ってないので、b乗したいならjにbを入れなければ成らない
・ansの初期値は0乗が1であることを考えて初期値をセットする
・ループ文の中は単なる代入では掛け算していけないから、*=で計算すること
・値を入れたいのは*pAなのだから*pAが式の左にくるはず
・ポインタを使うのならpAではなく*pA

という事に気をつければ見えてくるのではないでしょうか。


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

Name: 管理人 [URL]  ..伝説のハッカー(676,621ポイント)   Date: 2008/08/06(水) 09:15   No:19770     
Title: Re:またもや詰まりました。    
また、「考察」とは言わないです。

考察という言葉は報告書やレポートや論文で使いますけど、
解りやすく言うと、何かに関する原因や結果の関係を述べたり、
実験で得られたデータなどから自分の考えを述べたりすることだと思います。
う〜ん、しかし考察って何といわれるとはっきりと示すのは難しいですねぇ。

とりあえず単に課題について考えたりする事には使わないと思います。

それとソースコードはプレタグで囲んでください。
詳しくは規約をご覧下さい。


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

Name: kazuoni  ..上級者(21,017ポイント)   Date: 2008/08/06(水) 09:24   No:19772     
Title: Re:またもや詰まりました。    
今回はべき乗関数を使用すると簡単な気がします。

double pow(double x, double y);

これはxのy乗を計算し、pow関数は、xのy乗の値を返します。

for文では何がしたいのかがはっきりわかりませんが。。

自分でべき乗関数を作り・・・なんてお題だったらまったくこの回答は無意味ですけど・・・w
それだったら管理人さんの回答がベストですね。
fpowerの戻り値を利用すればポインタを使用しなくても済みますが・・・これも自分でポインタを用いたべき乗関数を作り・・・なんてお題だったらこの回答も無意味ですけど・・・ww


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

Name: 管理人 [URL]  ..伝説のハッカー(677,113ポイント)   Date: 2008/08/06(水) 09:43   No:19776     
Title: Re:またもや詰まりました。    

void fpower(int num1, int num2, int *pA) {
int i,j;
int ans;
//jの値をセット
//ansの初期値をセット
for(i=0;i<j;i++){
//ansにnum1をかける
}
*pA=ans;
}

 
こんな感じでどうでしょう。注釈部分を作ればOKです。


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

Name: 管理人 [URL]  ..伝説のハッカー(677,145ポイント)   Date: 2008/08/06(水) 09:48   No:19777     
Title: Re:またもや詰まりました。    
トピの題名を変更しました。
トピの名前は閲覧者がこのトピを見なくても
内容をだいたい把握出来るような名前にして下さい。


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

Name: ヨハネ  ..ぴよぴよ(763ポイント)   Date: 2008/08/06(水) 10:22   No:19778     
Title: Re:またもや詰まりました。    
すみません。
考えていたら、寝てました。


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

Name: ヨハネ  ..ぴよぴよ(786ポイント)   Date: 2008/08/06(水) 10:43   No:19779     
Title: Re:またもや詰まりました。    
intとvoubleに互換性があるとエラーが出てしまいます。

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

Name: ヨハネ  ..ぴよぴよ(914ポイント)   Date: 2008/08/06(水) 10:51   No:19780     
Title: Re:またもや詰まりました。    
なんだか複雑すぎてわからなくなってきました。
ごめんんなさい、もう少し簡単に説明してもらえますか?
iとjをどう使うと出来るのでしょうか?


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

Name: ヨハネ  ..ぴよぴよ(965ポイント)   Date: 2008/08/06(水) 10:59   No:19781     
Title: Re:またもや詰まりました。    
いっぱい質問して、すみません。
【pre】を文頭と文末につけると良いって事ですよね?
int.....とあったら
pre
int......
/pre
と書くって事ですよね?


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

Name: 管理人 [URL]  ..伝説のハッカー(677,285ポイント)   Date: 2008/08/06(水) 11:11   No:19782     
Title: Re:またもや詰まりました。    
>intとvoubleに互換性があるとエラーが出てしまいます。

doubleのことですか?
互換性がある?
mainで宣言している型と引数の型があっていますか?

後、複雑すぎてわからないと書いていらっしゃいますが、
私の書いた注釈をその意味の通りに置き換えていけば完成します。
どの辺がわからないですか?

例えば
>//jの値をセット
の部分なら今何回ループさせたいのかを考えてその回数をセットしましょう。

プレタグは
<pre>を最初にに、</pre>を最後に書いて下さい。
なお<>は半角です。



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

Name: box  ..ハッカー(120,884ポイント)   Date: 2008/08/06(水) 11:19   No:19783     
Title: Re:またもや詰まりました。    
例えば、2の10乗(=1024)を
手で計算する場合、どんな風に行ないますか?


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

Name: フリオ  ..プログラマー(25,185ポイント)   Date: 2008/08/06(水) 12:11   No:19784     
Title: Re:またもや詰まりました。    
 
 問題の条件が、"2つの自然数a、b"なので、負の数や、小数点は考慮しなくてもいいし、
"*pa"もとりあえず"int"のままでいいんじゃないでしょうか。
 


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

Name: ヨハネ  ..かけだし(1,033ポイント)   Date: 2008/08/06(水) 14:05   No:19785     
Title: Re:またもや詰まりました。    
//jの値をセットは、j=(num)になるということでしょうか?
2の10乗(=1024)を 手で計算する場合は、2進数を使うのですか?


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

Name: ヨセフ  ..ぴよぴよ(111ポイント)   Date: 2008/08/06(水) 14:22   No:19786     
Title: Re:またもや詰まりました。    
/jが負なら正に変換というのは、j*j=jにするということですか?
負と負をかけてみたのですが、違いますか?


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

Name: box  ..ハッカー(120,940ポイント)   Date: 2008/08/06(水) 14:25   No:19787     
Title: Re:またもや詰まりました。    
> 2の10乗(=1024)を 手で計算する場合は、2進数を使うのですか?

別に2進数でも10進数でもよいのですが、
どういう手順で計算しますか? ということです。
手計算による手順を忠実にコード化すれば、
それがプログラムとなります。


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

Name: box  ..ハッカー(120,940ポイント)   Date: 2008/08/06(水) 14:28   No:19788     
Title: Re:またもや詰まりました。    
> /jが負なら正に変換というのは、j*j=jにするということですか?
> 負と負をかけてみたのですが、違いますか?

最初のご自身の投稿に書かれているとおり、a, bはともに自然数のはずです。
ゼロや負数のことは考えなくていいのです。


Name: ヨセフ  ..ぴよぴよ(185ポイント)   Date: 2008/08/06(水) 14:34   No:19789     
Title: Re:またもや詰まりました。    
これってかなり難易度高い問題じゃないですか?
頭の中がぐちゃぐちゃしてきました。
すごい複雑なプログラムになっているのですが・・・どうなんでしょう?


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

Name: box  ..ハッカー(120,960ポイント)   Date: 2008/08/06(水) 14:46   No:19794     
Title: Re:またもや詰まりました。    
> すごい複雑なプログラムになっているのですが・・・どうなんでしょう?

全貌を開示してみる、というお考えはありますか?


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

Name: 管理人 [URL]  ..伝説のハッカー(677,559ポイント)   Date: 2008/08/06(水) 14:47   No:19795     
Title: Re:またもや詰まりました。    
起きてすぐに回答したせいか「2つの自然数をa, b」この辺を読み飛ばしていたようです^^;
すみません。0や負は要らないですね。
だったらなおさら簡単です。
少し修正しました。

>すごい複雑なプログラムになっているのですが・

私の注釈はどうなりました?


void fpower(int num1, int num2, int *pA) {
int i,j;
int ans;
//jの値をセット
//ansの初期値をセット
for(i=0;i<j;i++){
//ansにnum1をかける
}
*pA=ans;
}
 
 
たった3行書けばいいだけですが、どの辺がわかりませんか?
何の値をセットするかは既に言いました。


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

Name: 管理人 [URL]  ..伝説のハッカー(677,597ポイント)   Date: 2008/08/06(水) 14:57   No:19797     
Title: Re:またもや詰まりました。    
現在は必要ないようですが、今後の為に。

>/jが負なら正に変換というのは、j*j=jにするということですか?
>負と負をかけてみたのですが、違いますか?

「jが負なら正に変換する」という処理は


if(j<0)
j=-j;
 
 
でかけますよね?


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

Name: box  ..ハッカー(121,092ポイント)   Date: 2008/08/06(水) 14:59   No:19799     
Title: Re:またもや詰まりました。    
iもjも不要です。引数num1とnum2をそのまま使えばよいです。
また、結果をポインター渡しするのであれば、ansも不要です。

まあ、あってもいいのですけれど、書かなくてすむコードは
なるべく書かない、という考えに立っています。

# コードを書くからバグが入る。バグをなくす最良の方法は、コードを書かないこと。


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

Name: ヨセフ  ..ぴよぴよ(273ポイント)   Date: 2008/08/06(水) 15:00   No:19800     
Title: Re:またもや詰まりました。    
朝から有難うございます。
注釈ってなんですか?
<pre>
void fpower(int num1, int num2, int *pA)
{
 int i,j;
int ans;
j=0;
//ansの初期値をセット
for(i=0;i<j;i++){
 ans*num1;
}
*pA=ans;
}

おそらくここまではあってると思います。
どうでしょうか?


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

Name: ヨセフ  ..ぴよぴよ(314ポイント)   Date: 2008/08/06(水) 15:03   No:19801     
Title: Re:またもや詰まりました。    
なるほど!!!イフ文を使うとよいんですか。
参考になりました。有難うございます。


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

Name: 管理人 [URL]  ..伝説のハッカー(677,967ポイント)   Date: 2008/08/06(水) 15:05   No:19802     
Title: Re:またもや詰まりました。    
最初既にiとjでfor文がかかれていたので、
なるべく既にかいておられる文が使える形にした方が理解しやすいと考えたためです。
あと、*pAに掛け算するときは、アスタリスクが重なってよくわからなくなる危険性を考えた為です。

上級者にとってはバグなどのことを考慮する必要があると思うのですが、
初心者にはまずわかりやすさを重視すべきじゃないかと思いました。



注釈というのは「//」で読み飛ばしてある行のことです。
また、「ans*num1;」は代入になっていません。
今何の値を代入したいのでしょう?何に代入したいのでしょう?


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

Name: ヨセフ  ..ぴよぴよ(470ポイント)   Date: 2008/08/06(水) 15:10   No:19804     
Title: Re:またもや詰まりました。    
すみません、//ansの初期値をセットはどうすればいいのかわかりません。
ans*num1;はans<=num1;にすると良いですか?
初心者の中でも全然出来ない私にとってすごくためになります。


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

Name: 管理人 [URL]  ..伝説のハッカー(678,311ポイント)   Date: 2008/08/06(水) 15:10   No:19805     
Title: Re:またもや詰まりました。    
ここのfor文はboxさんが仰っているように
「例えば、2の10乗(=1024)を手で計算する場合、どんな風に行ないますか?」
をまず考えてから解いた方が得策です。

あと、手計算を2進数でする人は(コードにすごく慣れている人以外)あまりいませんよね。
2を10回かけるには普段どうしますか?

手計算出来たら次にプログラムで書くとどうなるか考えるわけです。


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

Name: 管理人 [URL]  ..伝説のハッカー(678,675ポイント)   Date: 2008/08/06(水) 15:13   No:19807     
Title: Re:またもや詰まりました。    
>・ansの初期値は0乗が1であることを考えて初期値をセットする

この辺を考えてみてわからないでしょうか?

2の1乗は2ですよね?
2を1回かけたら2になるわけです。

2の2乗は4ですよね?
2を2回かけたら4になるわけです。

4の1乗は4ですよね?
4を1回かけたら4になるわけです。

そうして考えるとその元になるかけられる数は何かわかってきませんか?


※↑すみません、誤表記があったので修正しました。※


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

Name: 管理人 [URL]  ..伝説のハッカー(678,721ポイント)   Date: 2008/08/06(水) 15:14   No:19808     
Title: Re:またもや詰まりました。    
>ans*num1;はans<=num1;にすると良いですか?

違います。
「代入」ってわかりますか?
int a;
が用意してあるとして、「aに2を代入する」って出来ますか?


後、名前を統一して下さい。
ヨハネさんとヨセフさん。


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

Name: ヨセフ  ..ぴよぴよ(534ポイント)   Date: 2008/08/06(水) 15:31   No:19812     
Title: Re:またもや詰まりました。    
やってみました。
次々と2をかけていくと言う事ですね!!!!
ずばりans=1って事ですか?
aに2を代入するということは・・・a=2ですか?


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

Name: box  ..ハッカー(121,783ポイント)   Date: 2008/08/06(水) 15:36   No:19813     
Title: Re:またもや詰まりました。    
【例】3の5乗=243 を求めるの巻

よ〜し、3の5乗を計算するぞ!
ふむふむ、fpowerという関数で計算するのね。
引数が3つあって、なになに、num1とnum2と*pAというのか。
今回の場合、num1には3が、num2には5が入っているのね。
そして、結果を*pAに入れてあげればよいわけだ。

いったん、num1をiに入れておき、答えのためにansという変数も
用意してみよう。
そうすると、「何とかの何乗」の「何とか」(つまり掛ける数)がiで、
「何乗」(つまり掛ける回数)がnum2に入っているのね。

ansの初期値はどうしようかな〜?
掛け算した結果がどんどん入っていくのだから、ゼロだとまずいよね。
ゼロに何を掛けてもゼロのままだからね。じゃあ、1にしてみようか。

掛ける回数(num2)の分だけ繰り返さないといけないから、for文でループを作ることにしよう。
num2回まわるループの書き方は、っと。
ループを制御する変数jでも用意して、こんな風に書いてみようかな。

for (j = 0; j < num2; j++) {
}

これで、num2回まわるループができたね。
ループの中で、ansにiを掛け算しないとだめなんだ。
ansにiを掛ける式は、ans * i だね。
でも、これだけじゃダメだ。掛け算した結果をどこかにしまわないと。
おっと、そのためにansを用意していたんだった。
じゃあ、

ans = ans * i;

と書けばいいのかな。これで、掛け算した結果が新しいansになるね。

さてと、ループの中で掛け算を所定の回数(num2)だけ繰り返したから、
ループを終了したときのansには「num1のnum2乗」が入っているはずだね。
今回の例でいうと、3の5乗、つまり243だ。
この値を、関数の最後の引数pAが指している場所(*pA)に入れてあげれば、完成だ!


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

Name: 管理人 [URL]  ..伝説のハッカー(679,272ポイント)   Date: 2008/08/06(水) 15:44   No:19814     
Title: Re:またもや詰まりました。    


そうです。
もうお解かりになったでしょうし、
ちょっとこれからしばらく掲示板が見れないので、
先ほどの答えを言いますと、以下のようになります。
上の各色が下の各色に対応しています。
私は既にお書きになっていた文を使おうとしたのでこうなりましたが、
上にboxさんがお書きになっている方法でももちろん出来ます。
余力があれば両方やってみて下さい。

void fpower(int num1, int num2, int *pA) {
int i,j;
int ans;
//jの値をセット
//ansの初期値をセット
for(i=0;i<j;i++){
//ansにnum1をかける
}
*pA=ans;
}


void fpower(int num1, int num2, int *pA) {
int i,j;
int ans;
j=num2;
ans=1;
for(i=0;i<j;i++){
ans = ans * num1;
}
*pA=ans;
}

 


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

Name: box  ..ハッカー(121,866ポイント)   Date: 2008/08/06(水) 15:53   No:19815     
Title: Re:またもや詰まりました。    

ついでだから別解も書いておこっ〜と。

void fpower(int a, int b, int *p)
{
for (*p = 1; b--;) {
*p *= a;
}
}

a, bが自然数でない場合や、結果がオーバーフローする場合のことは
全く考慮していないので、適当にアレンジしてください。



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

Name: ヨセフ  ..ぴよぴよ(564ポイント)   Date: 2008/08/06(水) 15:57   No:19816     
Title: Re:またもや詰まりました。    
朝から有難うございました。
今後とも宜しくお願いします。


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

Name: ヨセフ  ..ぴよぴよ(629ポイント)   Date: 2008/08/06(水) 16:05   No:19819 解決!     
Title: Re:またもや詰まりました。    
詳しい説明を会話的に書いてくださりたすかりました。
参考にさせてもらいました。
メモしました。
今後とも宜しくお願いします。


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



Name: jyun  ..ぴよぴよ(301ポイント)   Date: 2008/08/05(火) 17:11   No:19697       
Title: PocoをMinGWでコンパイルしたいです。    
PocoをMinGWで作成したプログラムから利用するため、
コンパイルしたいのですが、IDEしか経験が無いため途方にくれています。
環境はWindowsXPにMinGWをインストールした環境を用意していますが、
Makeコマンドを実行すると
process_begin: CreateProcess(NULL, uname, ...) failed.
'C:/poco/build/script/projname' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
process_begin: CreateProcess(NULL, cat C:/poco/components, ...) failed.
process_begin: CreateProcess(NULL, cat C:/poco/libversion, ...) failed.
"** Creating dependency info for" src/pcre_xclass.c
mkdir -p C:/poco//.dep/MinGW/ia32
・・・
とエラーが続々出てしまいます。
C++は超初心者ですので、何が悪いのかすら理解できません。
何とかコンパイルして既存プログラムからリンクしたいので、よろしくお願いします。


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


Name: lbfuvab  ..かけだし(1,657ポイント)   Date: 2008/08/06(水) 02:55   No:19762     
Title: Re:PocoをMinGWでコンパイルしたいです。    
えーと、MakeFileの内容は正しいですか?
なんとなくMakeで失敗してる気がします。


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

Name: jyun  ..ぴよぴよ(230ポイント)   Date: 2008/08/06(水) 16:01   No:19818 解決!     
Title: Re:PocoをMinGWでコンパイルしたいです。    
回答ありがとうございます。

どうやらPocoをWindowsで使うにはVCのみサポートみたいです。
Cygwinでは可能みたいでしたが、MinGWでは無理みたいですので、Pocoの使用は諦めます。
実はPocoのメールライブラリのみ使いたかったのですが、
ソースを追っかけてみて、難しいのはメールソース解析のみでしたので、頑張って自作してみます。


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



Name: akira  ..ぴよぴよ(294ポイント)   Date: 2008/08/06(水) 04:10   No:19764       
Title: ウインドウモードに変更について    
#include "DxLib.h"

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



if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了



WaitKey() ; // キーの入力待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}

→の部分に
ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
をコピー&ペーストしてきちんと実行したのですが、
ウインド画面になりません。visual studioで実行しました。
なにが原因なのでしょうか??


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


Name: 管理人 [URL]  ..伝説のハッカー(676,977ポイント)   Date: 2008/08/06(水) 09:32   No:19775     
Title: Re:ウインドウモードに変更について    
ウィンドウ画面にならないということはフルスクリーンにはなるんですね?
DxLib_Initの返り値は-1ではないんですね?

一度何か画像を表示してみたりしてみて下さい。


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



Name: こめかみ  ..初心者(5,182ポイント)   Date: 2008/08/05(火) 12:38   No:19665       
Title: ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。

竜神録プログラミングの館の10章まではデバッグの末、自力で解決できたのですが。
11章ではビルド自体は成功するのでどうすればいいのかわかりません。

ソースコードはあまりコピペに頼らないで書いてます。
館からダウンロードした11章のプロジェクトは正常にビルドされて起動するので、
ソースの問題だとは思うのですが、
せっかく苦労して噛み砕いてきたソースですしどこが間違えてるのか知りたいです。
こういう時どうやって調べればいいのでしょうか。


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


Name: array  ..中級者(10,969ポイント)   Date: 2008/08/05(火) 13:02   No:19667     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
>ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。

というのは反応がなくなりフリーズ状態になっているのでしょうか、反応がなくなっている状態ならPCが原因な気がしますが。

>竜神録プログラミングの館の10章まではデバッグの末、自力で解決できたのですが。
>11章ではビルド自体は成功するのでどうすればいいのかわかりません。

しかし、↑という事なので、プログラムは動作してる気配なのですかね。ただ画像が描画されないだけなら、画像ファイルへのパスが間違っているかもしれませんし、指定の画像がその位置になかったりするのかもしれませんよ。
・・・と簡単な事しかアドバイスできなくてすみません><


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

Name: Haru  ..中級者(10,119ポイント)   Date: 2008/08/05(火) 13:02   No:19668     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
とりあえずソースを貼ってみてはいかがでしょう?
それと、エラーメッセージが出ているのならば一緒に投稿すれば、
答えてくれる方がいるかもしれません。


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

Name: ランド  ..入門者(3,432ポイント)   Date: 2008/08/05(火) 13:10   No:19669     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
ビルトは成功するとのことなので、エラーメッセージが存在しないのかもしれませんね。
DXライブラリを使っているのであれば、Debugフォルダに実行の際のLog.txtが作成されていると思うので、
それを見れ見れば読み込み失敗など何かわかるかもしれません。

また、どこかのループで脱出口が無いなどがフリーズの原因になりそうです。
私の至らぬ知識ではこのぐらいしか思いつきませんね・・・


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

Name: こめかみ  ..入門者(3,952ポイント)   Date: 2008/08/05(火) 13:35   No:19673     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
ついでにたまってた報告をしときます。
見つけ次第逐一報告するのと、
ある程度まとめて報告するのではどちらがいいのでしょうか。

9章

char.cpp内の移動範囲を決めるif文ですが
if(!(x<10 || x>FIELD_MAX_X-10 || y<5 || y>FIELD_MAX_Y-5))
そのままビルドすると自機の移動範囲が大きく左にずれています。

define.hの
#define FIELD_X
#define FIELD_Y

から察するに

if(!(x<FIELD_X || x>FIELD_MAX_X+FIELD_X || y<FIELD_Y || y>FIELD_MAX_Y+FIELD_Y))
こんな感じがいいのではないでしょうか。見た目いい感じです。
四聖龍神録も起動して見比べてみようとしたんですが同時に起動でき無かったような・・・
そもそも見比べようとしたっけか。


10章

graph.cpp内で例のずれです

void graph_board(){
DrawGraph( 0, 0,img_board[10],FALSE);
DrawGraph( 0, 16,img_board[11],FALSE);
DrawGraph( 0,464,img_board[12],FALSE);
DrawGraph(416, 0,img_board[20],FALSE);
}
タブキーが曲者みたいですね。


10章と11章共通

enemy_act関数内の注釈
" //敵が画面外に外れたら消す"

これ、頭痛が痛いとか、馬から落馬するとかそういうのを連想しました。
考えすぎかもしれないけど、

" //敵が画面から外れたら消す"
" //敵が画面外に出たら消す"
などのほうがスマートだと思います。


11章

enemy_pattern0関数内の注釈
"//登録された停滞時間だけして"
これは、
"//登録された時間だけ停滞して"
じゃないですか?

もうひとつ
enemy_enter()関数内の注釈がずれてます。
if((i=enemy_num_serch())!=-1){

enemy[i].flag =1;//フラグ
enemy[i].cnt =0;//カウンタ
enemy[i].pattern=enemy_order[t].pattern;//移動パターン
enemy[i].muki =1;//向き
enemy[i].knd =enemy_order[t].knd;//敵の種類
enemy[i].x =enemy_order[t].x;//座標
enemy[i].y =enemy_order[t].y;
enemy[i].sp =enemy_order[t].sp;//スピード
enemy[i].bltime =enemy_order[t].bltime;//弾の発射時間
enemy[i].blknd =enemy_order[t].blknd;//弾幕の種類
enemy[i].blknd2 =enemy_order[t].blknd2;//弾の種類
enemy[i].col =enemy_order[t].col;//色
enemy[i].wait =enemy_order[t].wait;//色
enemy[i].hp =enemy_order[t].hp;//体力
enemy[i].hp_max =enemy[i].hp;//体力最大値
enemy[i].vx =0;//水平成分の速度
enemy[i].vy =0;//鉛直成分の速度
enemy[i].ang =0;//角度
for(j=0;j<6;j++)
enemy[i].item_n[j]=enemy_order[t].item_n[j];//落とすアイテム
}

タブキーマジック。まだまだ出てきそうですね。

そしてこの注釈の内容にもひとつ
enemy[i].col =enemy_order[t].col;//色
enemy[i].wait =enemy_order[t].wait;//色
停滞時間が正しいのかな?

以上です。


1,230ポイント を落としてしまった。

Name: こめかみ  ..入門者(4,016ポイント)   Date: 2008/08/05(火) 13:49   No:19675     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
おや短い時間にこんなにレスありがとうございます。

arrayさん
>というのは反応がなくなりフリーズ状態になっているのでしょうか
そのとおりです。タスクバーで右クリックして無理やり終了させています。

Haruさん
>とりあえずソースを貼ってみてはいかがでしょう?
結構な量ですがプロジェクトをアップすればいいのでしょうか。

ランドさん
>ビルトは成功するとのことなので、エラーメッセージが存在しないのかもしれませんね。
そうなんですよ、ただ私の目に見えてないだけかも。
Log.txtってこれですか?Debugフォルダの外にありますけど。


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

Name: 管理人 [URL]  ..伝説のハッカー(673,410ポイント)   Date: 2008/08/05(火) 13:54   No:19676     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
ブレイクポイントで処理がどうなっているか確認してみて下さい。
また警告として「初期化されていない値が使われています」みたいなものは出ていませんか?

どこかで無限ループに陥っているのでしょうか、それとも処理は帰って来ており、
ScreenFlipはされているのでしょうか?
↑まずここを確認してみてはどうでしょう。

固まってしまうということなので、恐らくパスの間違いとかじゃなく、
無限ループに陥り、メッセージ処理がされていないのだと思います。
ですのでブレイクポイントを用いてどこで無限ループになっているかご確認下さい。

また後の章になってくると細かい修正点が増えてくる為全ての変更点は書いていません。
サンプルプロジェクトのファイルと見比べていただけたらと思います。

最悪どうしてもわからなければこちらに送っていただけたら解決させます。


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

Name: こめかみ  ..入門者(4,067ポイント)   Date: 2008/08/05(火) 14:19   No:19677     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
むぅ、ついに来たかブレイクポイント。
ブレイクポイントが鍵のようですね、よくわかんないのでこの機会に習得しちゃいます。
目指せ自力解決\(^o^)/


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

Name: 管理人 [URL]  ..伝説のハッカー(674,100ポイント)   Date: 2008/08/05(火) 14:23   No:19679     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
ミスの点ご報告ありがとうございます

>ブレイクポイント

難しくないですよ^^;
単に処理を止めたい行の横をクリックしたらいいだけです。
赤い丸ポチが表示されますから、そこまで処理が来たら止まって矢印が表示されるはずです。

「Debug」にして実行するとその行で使われている変数の中身が確認できます。


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

Name: こめかみ  ..入門者(3,994ポイント)   Date: 2008/08/05(火) 15:52   No:19687     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
ブレイクポイントについて

現段階でプログラムの流れを止めることや
ヒットカウントの検出などはなんとなく理解できましたが、
変数の中身というのがわかりません、どうやって表示させるのでしょうか。


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

Name: こめかみ  ..入門者(4,011ポイント)   Date: 2008/08/05(火) 16:04   No:19689     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
雷が鳴ってるのでちょっとPC切ります。
最近停電が多いなー。


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

Name: バグ  ..ハッカー(103,544ポイント)   Date: 2008/08/05(火) 16:17   No:19692     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
ブレイクポイントを設定し、プログラムが停止したら、中身を確認したい変数をダブルクリックして選択状態にして、画面上部のツールバーにあるデバッグの中にあるクイックウォッチをクリックすると中身の確認ができます。
常に確認したい場合はウォッチ式の追加をクリックすればいいですよ。


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

Name: 管理人 [URL]  ..伝説のハッカー(674,527ポイント)   Date: 2008/08/05(火) 16:44   No:19695     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
ご報告頂いた件について

>9章

表記はそれであっていると思います。
こちらで確認したところ、特に座標のズレはみられませんでした。

キャラクタがいる座標は表示する座標ではありません。
キャラクタがいる座標はフィールド上の座標なので、
もしキャラが0,0にいるときは、表示される位置はFIELD_X,FIELD_Yとなります。

後の件は修正しました。


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

Name: こめかみ  ..入門者(3,913ポイント)   Date: 2008/08/05(火) 18:31   No:19707     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
バグさん
>常に確認したい場合はウォッチ式の追加をクリックすればいいですよ。
ありがとうございました。確認したい変数を追加していく要領ですね。

管理人さん
>こちらで確認したところ、特に座標のズレはみられませんでした。
アレ?えーと、もう一回やってみます。
さっきは確かに
自機が、左の壁にめり込んで右に透明な壁があったんですけど。


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

Name: こめかみ  ..入門者(4,089ポイント)   Date: 2008/08/05(火) 19:44   No:19718     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
ブレイクポイントで調べたところ
FileRead_open関数のところで


FileRead_open CXX0017: エラーです: シンボル "FileRead_open" が見つかりません

、とでました。

これはDXライブラリの関数です。

#include "../../../include/DxLib.h"
、はインクルードしてあるし、
DxLib.hにはちゃんと定義も宣言もありました。

そもそもいじってないし。
同じヘッダの別のプロジェクトはちゃんと動いています。
何故こうなるのでしょうか。
アドバイスよろしくお願いします。


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

Name: こめかみ  ..入門者(4,115ポイント)   Date: 2008/08/05(火) 19:58   No:19720     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
あ。関数はみれないんですかもしかして。
見れるのは変数だけでしたか。


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

Name: こめかみ  ..入門者(4,151ポイント)   Date: 2008/08/05(火) 20:10   No:19722     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
すいませんちょっと混乱してます、落ち着いたらまた質問に来ます。
失礼しました。


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

Name: こめかみ  ..入門者(4,283ポイント)   Date: 2008/08/06(水) 06:24   No:19766 解決!     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
うまくいきました!

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


GLOBAL enemy_order_t enemy_order[ENEMY_ORDER_MAX];//敵の出現情報

ここを

GLOBAL enemy_order_t enemy_order[ENEMY_MAX];//敵の出現情報

と宣言ミスしていたのが原因でした。


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

Name: こめかみ  ..入門者(4,806ポイント)   Date: 2008/08/06(水) 06:52   No:19767     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
管理人さんへ
10章でもうひとつ気づいたのでミスか微妙ですが一応

struct.hの
typedef struct{

int flag,cnt,pattern,muki,knd,hp,hp_max,item_n[6],img;
//フラグ、カウンタ、移動パターン、向き、敵の種類、HP最大値、落とすアイテム
double x,y,vx,vy,sp,ang;
//座標、速度x成分、速度y成分、スピード、角度
int bltime,blknd,blknd2,col,state,wtime,wait;
//弾幕開始時間、弾幕の種類、弾の種類、色、状態、待機時間、停滞時間
}enemy_t;


今までずっと行の上にかかれてたコメントが突然下になっています。
あと、落とすアイテムの後の画像の注釈が足りないような。

9章の件確認しました、
最初に見たアレはなんだったんだろ。

余談ですが。
if(!(x<10 || x>FIELD_MAX_X-10 || y<5 || y>FIELD_MAX_Y-5)){//計算結果移動可能範囲内なら

ch.x=x , ch.y=y;//実際に移動させる
}else if(x<10){
ch.x=x+FIELD_MAX_X-1;//反対端(右端)に移動させる
}else if(x>FIELD_MAX_X-10){
ch.x=x-FIELD_MAX_X+1;//反対端(左端)に移動させる
}

だけで地礼殿の左右ワープが実現できました、
動画で見ただけで体験版やってないのですが。

狙い通りにゲームが動くとうれしいですねー。


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

Name: 管理人 [URL]  ..伝説のハッカー(676,681ポイント)   Date: 2008/08/06(水) 09:20   No:19771     
Title: Re:ビルド後に現れるウィンドウが一度も描画されずに固まってしまいます。    
>10章

統一すべきですね。

>地霊殿

そうですね。
もし実装するならそこにアニメーションを付け加える事と
移動ボタンで移動できるようにすればいいですね。


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



Name: 管理人 [URL]  ..伝説のハッカー(672,588ポイント)   Date: 2008/08/04(月) 22:39   No:19643       
Title: ■ アンケートにご協力下さい ■    
C言語何でも質問サイト及び掲示板についてのアンケート回答者様を募集しております。

以下にアンケートを設置しております。
皆様ご協力よろしくお願いいたします。

http://dixq.net/board/ank/enq.cgi

アンケート集計結果はリンク先右上の「投票結果」からご覧頂けます。

(前トピでは皆様お世話になりました。ありがとうございました。)


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


Name: 管理人 [URL]  ..伝説のハッカー(672,619ポイント)   Date: 2008/08/04(月) 22:55   No:19644     
Title: Re:■ アンケートにご協力下さい ■    
更新履歴
8月4日22時54分
17番目の選択項目が選択されていないという理由で投稿出来ないバグを修正しましたm(_ _;)m


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

Name: 木霊  ..中級者(11,980ポイント)   Date: 2008/08/05(火) 01:10   No:19653     
Title: Re:■ アンケートにご協力下さい ■    
報告です

その他欄に全角文字が入力できません(コピペなら可能)


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

Name: 木霊  ..中級者(12,005ポイント)   Date: 2008/08/05(火) 01:12   No:19654     
Title: Re:■ アンケートにご協力下さい ■    
すみません

今、もう一度試したら出来ました・・・
なんででしょう?


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

Name: 管理人 [URL]  ..伝説のハッカー(672,650ポイント)   Date: 2008/08/05(火) 01:16   No:19655     
Title: Re:■ アンケートにご協力下さい ■    
むむ・・。
よくわかりませんが、もし再現性があるようなら修正を試みてみますm(_ _)m


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

Name: 木霊  ..中級者(12,096ポイント)   Date: 2008/08/05(火) 21:11   No:19726     
Title: Re:■ アンケートにご協力下さい ■    
日を改めて数回、「IEを終了した後、もう一度アンケートのその他欄に入力できるか」を
繰り返したんですが、再現されませんでした
つい先日IEをバージョンアップさせたので、その影響かもしれません
ご迷惑おかけしました


誰もツッコまないみたいですが・・・

「一日の平均プログラム時間は?」の24時間以上というのはさすがに無理です(笑)



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

Name: 管理人 [URL]  ..伝説のハッカー(676,348ポイント)   Date: 2008/08/06(水) 00:48   No:19759     
Title: Re:■ アンケートにご協力下さい ■    
なるほど、ご報告ありがとうございます。
安心しました。

24時間の項目はわざとですw
まぁ意味があって設置してるんですけどね。


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



Name: ROL  ..初心者(8,590ポイント)   Date: 2008/08/05(火) 00:22   No:19645       
Title: てくてくピクミンの実装について    
がんばってテクテクピクミンを作っているのですが問題が発生してしまったので
お助けください。

ソースは以下の通りです。見にくくてゴメンナサイ><


#include "DxLib.h"
typedef struct{
int x,y,img,idou_flag,idou;
}sentakuwaku;//枠の構造体
typedef struct{
int x,y,img,walking_flag,muki;
}ch_1;//キャラクターの構造体

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

int backgamen;

int ch_imag[16];//キャラクターの画像保存用
int imag[2][2];//選択枠の画像保存用
sentakuwaku waku[2];
ch_1 ch1;
char Key[256];

if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 )
return -1; //ウィンドウ化と初期化処理
//キャラクターの宣言
ch1.x=0;
ch1.y=0;
ch1.muki=3;
ch1.walking_flag=0;


//枠の宣言
waku[0].x=0;
waku[0].y=0;
waku[0].idou_flag=0;
waku[0].idou=4;
waku[1].x=0;
waku[1].y=0;
waku[1].idou_flag=0;
waku[1].idou=4;
SetDrawScreen( DX_SCREEN_BACK ) ;
LoadDivGraph( "abcd.png" , 2 , 2 , 1 , 32 , 32 , imag[0] ) ;
//画像を分割してimage配列に保存
LoadDivGraph( "abcd.png" , 2 , 2 , 1 , 32 , 32 , imag[1] ) ;
//画像を分割してimage配列に保存
LoadDivGraph( "char.png" , 16 , 4 , 4 , 32 , 32 , ch_imag ) ;
backgamen=LoadGraph( "000.bmp" ); //バック画面

int kaeru=0;//2つの枠を入れ替えるために使う。
int kaeru_flag;
int iro1=0;//枠の色を変えるために使う
int iro2=0;
while(!ProcessMessage() && !ClearDrawScreen() &&
!GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){


//枠移動のキー入力取得。選択枠の入れ替え。

if(waku[kaeru].x%32==0 && waku[kaeru].y%32==0){//座標がで割り切れたら入力可能
waku[kaeru].idou_flag=1; //枠の移動フラグを立てる。
if ( Key[ KEY_INPUT_UP]==1 ) //上ボタンが押されたら
waku[kaeru].idou=0; //上向きフラグを立てる
else if( Key[ KEY_INPUT_LEFT ]==1 ) //左ボタンが押されたら
waku[kaeru].idou=1; //左向きフラグを立てる
else if( Key[ KEY_INPUT_DOWN ]==1 ) //下ボタンが押されたら
waku[kaeru].idou=2; //下向きフラグを立てる
else if( Key[ KEY_INPUT_RIGHT]==1 ) //右ボタンが押されたら
waku[kaeru].idou=3; //右向きフラグを立てる
else if( Key[ KEY_INPUT_A]==1){ //Aキーが押されると
waku[kaeru].idou_flag=0;
//[kaeru]の値交換のために
kaeru_flag=1;
iro1=1;
}
else if( Key[ KEY_INPUT_S]==1){ //Sキーが押されると
waku[kaeru].idou_flag=0;
//[kaeru]の値交換のために
kaeru_flag=2;
iro1=0;
iro2=0;}
else if( Key[ KEY_INPUT_D]==1){//Dキーが押されると
if(iro1==1)iro2=1;
else iro2=0;
waku[kaeru].idou_flag=0;
}
else waku[kaeru].idou_flag=0;
//何もキーが押されなければ動かないフラグを立てる
}

//キャラクターの移動入力
if ( Key[ KEY_INPUT_RETURN]==1){
ch1.muki=2;
ch1.y++;
waku[kaeru].idou_flag=0;}
else ch1.walking_flag=0;




//枠移動のX、Y値の増減
if(waku[kaeru].idou_flag==1){
if(waku[kaeru].idou==0)
waku[kaeru].y--;
else if(waku[kaeru].idou==1)
waku[kaeru].x--;
else if(waku[kaeru].idou==2)
waku[kaeru].y++;
else if(waku[kaeru].idou==3)
waku[kaeru].x++;
}

//枠の入れ替え
if(kaeru_flag==1){
if(kaeru==0)
kaeru=1;
}
if(kaeru_flag==2){
if(kaeru==1)
kaeru=0;
}
DrawGraph(0,0,backgamen,FALSE);
if(iro1==0)waku[0].img=imag[0][iro1]; //画像をセット
if(iro1==1)waku[0].img=imag[0][iro1];
if(iro2==0)waku[1].img=imag[0][iro2]; //画像をセット
if(iro2==1)waku[1].img=imag[0][iro2];
ch1.img=ch_imag[(ch1.x%32+ch1.y%32)/8 + ch1.muki*4]; //画像をセット
DrawGraph( ch1.x , ch1.y , ch1.img , TRUE ) ;//画像を描画

DrawGraph( waku[0].x , waku[0].y , waku[0].img , TRUE ) ;//画像を描画
DrawGraph( waku[1].x , waku[1].y , waku[1].img , TRUE ) ;//画像を描画
ScreenFlip();
}
DxLib_End();
return 0;
}

今、できているのはキー入力を取得し選択できる枠を切り替えるです。
Aキーが押されたら1つ枠の色が変わりもうひとつの枠が動かせます。
Sキーが押されたらキャンセル。
Dキーが押されたら両方とも色が変わり、決定を意味します。
次にキャラクターを移動させようと思ったのですが・・・・・・ココが問題みたいで;
テクテク歩かないんです。たぶん、歩き終わる前にフラグに0が入ってるんだと思います。
また、バック画面と枠、キャラクターを表示すると枠の移動速度がおどくなっちゃいました。
どのようにところが間違っているのか、またはどんな考え方をすればいいのかを教えてください。


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


Name: 管理人 [URL]  ..伝説のハッカー(672,791ポイント)   Date: 2008/08/05(火) 02:08   No:19656     
Title: Re:入力状態について    
う〜ん、インデントを綺麗にしないと何がどうなってるのか見てわかり辛いです;

てくてくピクピンを一度プレイしてみないとイメージが掴めないのでどうにかプレイしてみたいのですが、
何か類似FLASHとかフリゲとかないでしょうか?もしくは詳しくゲームシステムを解説したサイトとか・・。

オマケのゲームだということのようなのでググっても中々見つからないですね・・。

後この辺
http://www.nintendo.co.jp/ngc/gpvj/pworld/carde/index.html
の画像を見て勝手に解釈してみます。


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

Name: 管理人 [URL]  ..伝説のハッカー(673,246ポイント)   Date: 2008/08/05(火) 02:50   No:19657     
Title: Re:入力状態について    
ちょっとルールがよくわからないなりにサンプル作ってみましたが、
こんな奴ですか?

黄色パックのゲームと思われるシステムを勝手に考えて実装してみました。

コードはゲームの館の24章をちょちょいといじっただけです。

http://dixq.net/code/tekuteku.cpp

実行結果





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

Name: 管理人 [URL]  ..伝説のハッカー(673,080ポイント)   Date: 2008/08/05(火) 04:30   No:19658     
Title: Re:入力状態について    
またまたルールがよくわからないので・・・

今度は青パックのゲームシステムではないかと予測される勝手に考えたゲームです。



普通に十字キーを押せばその方向に歩きます。
左シフトを押しながら十字キーを押せば選択セルが移動します。
Zキーを押せば選択セルのいる位置のセルが回転します。

そうして、自分がいける道を作っていきます。

サンプルコード置いておきます。
なんか作ってる間にビットシフトとか使ってしまったので、難しいかもしれません・・。
まぁこんな事も出来るよ、程度にご覧下さい。

http://dixq.net/code/tekuteku2.cpp

壁の画像はこちらの画像をプロジェクトフォルダに入れて下さい。
abcd.pngはこんな画像なのかなと勝手に想像しました。

http://dixq.net/img/kabe.png

壁をどのように判定しているかですが、以下のようにしています。


左・上・右・下 をそれぞれ
0・1・2・3 と対応付けます。

4方向をあらわすのに4つのビットを使います。
左がオンの時は1ビット目をオンにします。

具体的には、 例えば左側が通行可能だった時は
2^0を足します。すると
0000

0001
になりますね。
この1ビット目がたっているかどうかで左が通行可能かどうかをあらわしています。



この例でいくと、0と2の方向が通行可能です。
それなら上に加えて2^2を足します。すると
0001

0101
になりますね。
2^0というのは1<<0に等しく
2^2というのは1<<2に等しいということはOKでしょうか?

こうしてできた0101という信号は左と右が通行可能であるという事を示しています。
後はこれを使っていけるかどうかを判断したり通らせたり回転させたりすればいいわけです。

回転はどうやってるかというと
例えば

1010 は 0101 になれば回転したことになりますね。他の例では
0110 は 1100 となればいいわけです。

つまり一番左のビットを右にループさせ、みんな一つずつ左にずらせばいいわけです。
0101は左右が通行可能だったのに対し、1010は上下が通行可能になっていますね。

わかりやすいように処理は効率化して無い部分が多いですし、
用意した配列の範囲外をさしてもエラーにならないなど、まだまだ改善すべき点はあるので、
まぁもし参考にされる場合もほどほどにどうぞm(_ _)m



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

Name: ROL  ..中級者(10,342ポイント)   Date: 2008/08/05(火) 11:23   No:19660     
Title: Re:入力状態について    
ごめんなさい、お返事おっくれました。今日は朝から弁護士さんと相談が;;;;
と、雑談はさておき、またわしの説明不足で何度も解答させてしまいました^^;
ルールは簡単なのですが、以外に説明しているサイトさんは少ないようで。
まず、青いのと作ろうかと思っています。理由はただ単に、敵キャラと自分のキャラの
当たり判定をやってみたいと思ったからです。


始めに入れ替えたいマスを選択。次に、もうひとつ、入れ替えたい枠を選択。
この二つの枠を入れ替えます。そして、マスの上を自機と敵機が道通りに進みます。
敵が自機に当たれば負け。自機がゴールに進めば勝ちです。
道は管理人様の考えてくださったゲームの通り2方向にしか進めません
あと、敵、味方、ゴールの道は入れ替えられません。
マスの移動できるかできないかの判定はこのようにすれば言いかと思うのですが;

int can_or_cannot(int x,int y,int muki){//進めるかを判定する
switch(muki){
case 0:/* 上*/
if((hantei[y/32][x/32]&1)!=0){
return 1;
}
else{
return 0;
}
break;
case 1:/* 下*/
if((hantei[y/32][x/32]&2)!=0){
return 1;
}
else{
return 0;
}
break;
case 2:/* 左*/
if((hantei[y/32][x/32]&4)!=0){
return 1;
}
else{
return 0;
}
break;
case 3:/* 右*/
if((hantei[y/32][x/32]&8)!=0){
return 1;
}
else{
return 0;
}
break;
}
}

これで、いいんですよね?
また、枠の入れ替えは
hantei[1x[1y]
hantei[2x][2y]
とでもしておいて
a=hantei[1x][1y];
hantei[1x][1y]=hantei[2x][2y];
hantei[2x][2y]=a;
こんな感じでいいのでしょうか?枠1と2の座標を入れ替える。
RPGなどのマスなのでこれでOKかと。あと、画像は1枚に仕上
げようかと思っています。ステージ全体を1枚ですよ。
でないと、入れ替えしたときの画像の処理が分けわからなくなりそうなので。

abcdの画像は、ためしに1枚を表示して見ました。
バックが真っ黒だと寂しいですから^^;

あと、青パックのサンプルで意味がわからないところがあったので
教えてください。

if ( Key[ KEY_INPUT_UP ] > 0 )ch[i].muki=0; //上ボタンが押されたら

これは、キーが押されたら1そうでなかったら0を不等式で表していますよね?

ゲーム館は

>if ( Key[ KEY_INPUT_UP]==1 ) //上ボタンが押されたら

になっていました。なぜ、違うのでしょう?たぶんココがテクテク歩いてくれない
問題部分だと私は感じたのですが、よく意味がわからなかったです。


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

Name: レッツ  ..ぴよぴよ(164ポイント)   Date: 2008/08/05(火) 13:46   No:19674     
Title: 無題    
すげぇ・・
サンプルを作ってあげたというレベルじゃないですね。親切すぎませんか??
私も興味あったので、サンプルコード頂きました。
そしてそれに対して何も突っ込まずにスルーしてるROLさんもすげぇ・・。


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

Name: 管理人 [URL]  ..伝説のハッカー(673,970ポイント)   Date: 2008/08/05(火) 14:21   No:19678     
Title: Re:無題    
>>ROLさん

弁護士?!どうかしたんですか??

>マスの移動できるかできないかの判定はこのようにすれば言いかと思うのですが;

自分のいるマスがどっち向きが通行可能かは判定しなくていいのですか?
そちらに向いているということは、自分のいる位置においてその向きは通行可能なのだとは思いますが、
自分のマスと他のマスを交換した時にそれだと壁をすり抜ける事になりそうなのですがどうでしょうか?

なので私は自分がいるマスと次進むマスの通行可能・不可能状態を確認してから進んでいます。

あと確認したいのが、キャラはいけるところまで自動で進むのでしょうか?
つまりキャラなどは十字キーで制御できないと?
敵やキャラが進んでいる間はマスの交換は出来るのでしょうか?

>if ( Key[ KEY_INPUT_UP ] > 0 )ch[i].muki=0; //上ボタンが押されたら
>これは、キーが押されたら1そうでなかったら0を不等式で表していますよね?

http://dixq.net/g/#40のGetHitKeyStateAll_2関数を利用した為です。
Keyには押した時間の長さ(フレーム数)が入りますから、0より大きければ押されている事になります。
たった今押されたかどうかは1であるかどうかを判定すればいいです。
ゲームの館で使用しているのはDXライブラリ標準でついてくる関数であり、
キーが押されているか押されて無いかしかわからない関数ですが、
私の自作関数ならどれだけ押されているか解るという事です。


>>レッツさん
ご覧頂きありがとうございます。
またROLさんは論理積による判定文を書かれているところを拝見すると、
私のわかりにくいサンプルコードを熟読していただけたのではないかと思います。
いやはやこの前Cを始めたと仰る方がこんなに早くビットシフトで管理するプログラムを
理解されるとは驚きましたm(_ _)m


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

Name: ROL  ..中級者(11,754ポイント)   Date: 2008/08/05(火) 15:29   No:19684     
Title: Re:無題    
いえいえ、ビットシフトは中学生のときに情報の先生が丁寧に教えてくれたんです。
授業でちょこっとプログラムに触れて、そこでビット管理の事がわからなくて悔しくて^^;
もちろん、管理人様のコードがなければ全く考えもしなかったことなのですが;

キャラの動きは自動なので進めるかどうかので、判定が必用ですよね。困りました・・・・・
上下左右どこにも進めないのであれば歩かないフラグを立てればいいのでしょうが。
座標の増減するまえに条件分岐すればいいのかな?
たとえば、始めにXを増やそうとする。しかしXを増にすると壁があって進めない。
なら、自分の座標÷32+1==2 なら進める。と分岐にこのような条件をつければ
何とかなるのかな?試行錯誤して見ます。管理人様のをコピペするのもいいかもですね^^

移動の件ですが、
キャラ移動は、入れ替えた後に自動で1マス進むだけです。
自分の思い通り自機を動かせたら面白く無いですからね。
ゴールまでの計算は座標を使いやろうかと思っています。
ゴール座標から自機座標を引く。その結果が+だったら座標を増やし
−だったら座標を減らす。if文で分岐してXを優先。その時に進めるかを判定する。
ゴール進む方向、X・Y座標の両方が通れなければ逆方向に進むってかんじですかね^^;
あるいは進む方向をあらかじめ計算しておいて矢印を描画するって言うのもありかもです。


キーの入力状態の件ですが、
今回私が使った
( Key[ KEY_INPUT_UP]==1 ) //上ボタンが押されたら
だと押されたどうかはわかっても押された時間がわからないので
最小の4分の1コマ分しか進まなかったのですね。でも、いまいち原理がわかっていません。
x座標が++になるのですから当然32ビット進む=1ます歩くという考えになると思うのです;
入力状態の時間がわかればメニュー画面などの選択スピードなども管理できると思うのですが
今回の場合入力状態の時間取得と歩かない理由との関係が全く見えていない状態です。
x++ならX=32ですよね?



>すげぇ・・
>サンプルを作ってあげたというレベルじゃないですね。親切すぎませんか??
>私も興味あったので、サンプルコード頂きました。
>そしてそれに対して何も突っ込まずにスルーしてるROLさんもすげぇ・・。
たしかに、親切ですよね、管理人様は><
自分の考えてる事で頭がいっぱいでお礼を忘れていました。
今回はサンプルまで作っていただきありがとうございました。本当に助かりました。


弁護士の話ですが、
アルバイトを始めたのはいい物の店長の言動が過度でして。
友達に聞くと相当数その店長の言動でやめているらしいのですよ、アルバイトが。
で、その言動をどうにかしてほしいと言ったら・・・・・クビ
しかも夏休みなので月のシフトが計84時間だったのが30時間に
計4万円ほどの仕事が減らされ1月前に言われた事になるので解雇予告手当てもナシ。
週1、3時間ほど働かせておいて解雇予告手当てすらケチるみたいなので弁護士と相談してました。
管理人様みたいな人が世の中に多ければ事件も事故も、犯罪も減るのにと思いますorz


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

Name: ROL  ..中級者(11,768ポイント)   Date: 2008/08/05(火) 16:01   No:19688     
Title: Re:無題    
あ、それから私のソースってものすごく見にくいんですよね;
管理人様のような見やすいコードを書くコツを教えていただけませんか?
自分でもこれ以上長くなると確実に訳わからなくなるのは目に見えているので^^;


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

Name: 管理人 [URL]  ..伝説のハッカー(674,224ポイント)   Date: 2008/08/05(火) 16:16   No:19691     
Title: Re:無題    
ちと改良しました。
1歩だけ進むというのを見逃していたのでそのまま歩けるだけ進んでいきます。

選択しているセルでZキーを押すと交換セル1が決定され、
選択セルが赤に変わり、それと交換したいセルを選んでもう一度Zキーを押すと交換されます。
キャラは歩けるようになると自動的に歩いていきます。

http://dixq.net/zip/tekuteku.zip


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

Name: 管理人 [URL]  ..伝説のハッカー(674,419ポイント)   Date: 2008/08/05(火) 16:24   No:19693     
Title: Re:無題    
>当然32ビット進む=1ます歩くという

32ピクセルですよね?

>x++ならX=32ですよね?

の意味とかがよくわからないのですが、
まぁ、32で割り切れない座標にいる時には入力を受け付けず、オートで歩くようにしておけば、
入力された時間とかは関係ないのでは?

>弁護士の話

うはぁ^^;
世の中いろんな人がいますしねぇ・・;
うまく解決されることをお祈りします^^;


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

Name: ROL  ..中級者(12,050ポイント)   Date: 2008/08/05(火) 18:34   No:19709     
Title: Re:無題    
ん〜〜〜〜32で割り切れない場所ですか;
あ、だからゲーム館のif文の始めに32で割り切れたら入力可能になっていたんですね^^;
そこはわかるのですが、オートで進む部分がいまいち;計算もやってみました。
ですがキーを押されている時にだけ計算、行動してしまいます。
32ピクセル進ませるにはどうすればいいのでしょうか?
計算の中に32ピクセル進ませる工夫が必要なのでしょうけど、全くアイディアが
浮かびません。と言うかなぜ1/4マスしか進まないのかがわからないんです。
なぜ1/4マスしか進まないのかの説明だけでも結構ですので教えてください。

あと、効果音の疑問なのですがどのように作られているのでしょう?
自作で作る場合何かツール的なものがあるのでしょうか?

何度もお手数かけるようでごめんなさい。

>うはぁ^^;
>世の中いろんな人がいますしねぇ・・;
>うまく解決されることをお祈りします^^;

ありがとうございます。また、新しいアルバイトを
探さなければなりませんね;ですが、弁護士が私に一言。
「これだけの法律の知識を短期間で?弁護士になりなさい(笑い)」
新しい能力が開花しただけでも恩に着るべきですかね^^;


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

Name: 管理人 [URL]  ..伝説のハッカー(675,179ポイント)   Date: 2008/08/05(火) 18:54   No:19712     
Title: Re:無題    
上に添付したプロジェクトはコンパイルしてみました?
そこでオートで進むサンプル作っておきましたが。

もし解決しない場合は、余計なファイルを除いたプロジェクトのフォルダを圧縮してどこかの
アップローダにあげてもらえませんか?
もしくは私にメールで送ってもらえませんか?

効果音は自作する場合何かの音楽ソフトを使うことになると思いますが、
高価なので、基本フリー素材を使えばいいと思います。
「効果音」でググレば沢山でてきます。


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

Name: ROL  ..中級者(12,532ポイント)   Date: 2008/08/05(火) 20:18   No:19723 解決!     
Title: Re:無題    
すみません、今回のスレで、理解・解決・勉強できました^^;
if文はあのような使い方ができるとは、いやはやすごい!
私が1ます歩かせられなかったのは、キー入力を押しているときだけ
計算させたからです。

座標が32で割り切れたらフラグを立てる→キー入力されればフラグを立てたまま座標計算
        ↓               ↓
キー入力がなければフラグを立てない
                        ↓
32で割り切れなければフラグを立てたままループを続ける

こうしないとキーが押されなくなったらフラグが立たないで止まる=1マス歩かない
つまりループなので、32で割り切れないところにいるとキー入力のif文を通過して
フラグが立ったまま処理が繰り返されて32で割り切れるまでループが続く。

言葉が下手でごめんなさい。
ですが、今回の事でループとif文を使えばいろいろな考えに応用できることが
わかりました。これから作って行くうえで困ることがあると思います。
そのときはまた、よろしくお願いします。

サンプルはじっくり読んで勉強させていただこうと思います。
実行しましたが、特に問題なく自分が考えている通り動きました。
やっぱり管理人様のコードは読みやすいです。本当にありがとうございました。


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

Name: 管理人 [URL]  ..伝説のハッカー(675,881ポイント)   Date: 2008/08/05(火) 20:42   No:19725     
Title: Re:無題    
>管理人様のような見やすいコードを書くコツを教えていただけませんか?

何をもって見やすいかは人それぞれでしょうけど、
とりあえずインデントはキレイにそろえた方がいいです。
ROLさんのソースコードは一番上に投稿されたような感じなのでしょうか?
エンターキーを押せば適切な場所にカーソルをセットしてくれますし、
特に何かする必要もないですが、
そこかから取って来たコードならインデントに合わせて範囲指定してタブを押すとか
インデントをあげるならシフト+タブを押すとかしてそろえましょう。

また、コレ位のコードの長さになってくると分割した方がよさそうです。


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

Name: ROL  ..中級者(12,719ポイント)   Date: 2008/08/05(火) 21:40   No:19728 解決!     
Title: Re:無題    
>ROLさんのソースコードは一番上に投稿されたような感じなのでしょうか?
今回、自分で初めから少しずつソースを増やしているので、途中で問題に気がついて
計算を無理やり突っ込んだりしてます。タブを使うと結構きれいになりそうですね^^;
今まで、それを知らなかったのでスペースキー連打してました。アタタタタ〜と北斗並みに;
どおりで効率が上がらないわけですね;

>また、コレ位のコードの長さになってくると分割した方がよさそうです。
これは、計算などを必用なときに呼び出すと言うことでしょうか?
それなら、また勉強しなければ!呼び出すのはポインタっていうんでしたっけ?
あれの説明を見るや否や即PCの電源を切りたくなるほど、私には難しく感じるんですよ〜^^;


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

Name: 管理人 [URL]  ..伝説のハッカー(676,182ポイント)   Date: 2008/08/05(火) 23:23   No:19755     
Title: Re:無題    
>スペースキー連打してました。アタタタタ〜と北斗並みに;

そ、それは・・^^;

>これは、計算などを必用なときに呼び出すと言うことでしょうか?

いや、違います。
今1つのファイルの中でプログラムを作っているので、
描画部も計算部も音楽部も全部同じファイルで計算しているため、
なが〜くなってしまっていますよね。
大きなソフトになってくると数万行とかになるので、
1つのファイルに書いてたんじゃわけがわからなくなります。

そこで、ファイルを分割してプログラムを書くわけです。
ちょっとだけですが、ややこしいので、まぁこれは後々でもいいかもしれませんね・・。
興味があれば龍神録の館にファイル分割したサンプルがあるのでご覧下さい。

>ポインタっていうんでしたっけ?
>あれの説明を見るや否や即PCの電源を切りたくなるほど、私には難しく感じるんですよ

あまり緊張して挑むほどのものでは無いですよ。
慣れたらとても便利です。

データはPCの中でどこにでもいいからバラバラあるわけではありません。
データは何かしら住所番号を持っています。
「○○県の○○市の○○町の○○マンションの○○号室のAさん」
と示せばAさんが示せますよね。
そんな感じでデータにも住所があります。
int a;
のaの住所は&aで表せます。
また、ポインタとは変数等のアドレスを入れる入れ物のことです。
ポインタを使うと、aという変数を持ち出して
a=20;
などと代入しなくても、今aの住所(アドレス)が12345だとすれば
「住所12345のデータを20に変更」
とすればaという変数を持ち出さなくても変更できるわけです。
それを踏まえて一つ例を。
以下はポインタの基本的な例です。



#include <stdio.h>

int main(void){
int a=10;
int *p;//ポインタ準備

p=&a;//ポインタにaのアドレスを入れる
*p=20;//aのアドレス先のデータに20を入れると

printf("%d",a);//aを使った代入文を書かなくても変更できる

return 0;
}

実行結果

20


 
確かに最初は「あれ?アスタリスクと取るとどうなるの?付けるとどうなるの?」って感じで
混乱するかもしれませんが、そこはサンプルを沢山見たり、
自分で沢山書いたりして慣れていってください。

ん〜これだけじゃポインタ使うと何が得なのかよくわかりませんねぇ。
例えば



#include <stdio.h>

void calc(int p){
p=2;
}

int main(void){
int i,a[3]={1,1,1};

for(i=0;i<3;i++){
calc(a[i]);
printf("%d\n",a[i]);
}

return 0;
}

実行結果

1
1
1


↑ポインタを使わないと変更できない。
↓ポインタを使うと変更できる。


#include <stdio.h>

void calc(int *p){
*p=2;
}

int main(void){
int i,a[3]={1,1,1};

for(i=0;i<3;i++){
calc(&a[i]);
printf("%d\n",a[i]);
}

return 0;
}

実行結果

2
2
2
 
 
とかって使い方が一番わかりやすいでしょうか。


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

Name: ROL  ..中級者(13,230ポイント)   Date: 2008/08/05(火) 23:54   No:19757 解決!     
Title: Re:無題    
なるほど。これは、使い方によってはとても便利ですね。
特に構造体の中にある物に新しい数字なんかを入れる場合これ無しにはむりでしょうね;
また、変数の中の数値入れにも使えそうです。
ポインタの活用方法と勉強はいろいろなソースを見れば理解できると思います。
がんばって習得したいと思います。

プログラムの分割ですが、プログラムがひとつの会社だとすると、
営業課・マーケティング課・会計課などのように小分けするって事ですね^^
>興味があれば龍神録の館にファイル分割したサンプルがあるのでご覧下さい。
ぜひとも活用させていただきます。理解できればいいですが、ちょっと心配です;

>>スペースキー連打してました。アタタタタ〜と北斗並みに;
>そ、それは・・^^;

苦労したんですよ、結構^^;


管理人様、
スレの始めに書かれている質問以外にも丁寧に答えてくださってありがとうございました。
また、サンプルも次々作ってくださって・・・・・・感謝感謝です><
私にできる事と言えば・・・・・・絵をかくことぐらいです。もし、何か手伝えることがあれば
いつでも言ってくださいね。絵ぐらい、管理人様にしてくださった事に比べれば小さな事ですが^^;


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

Name: 管理人 [URL]  ..伝説のハッカー(676,313ポイント)   Date: 2008/08/06(水) 00:09   No:19758     
Title: Re:無題    
>プログラムの分割

う〜んまぁそうですかね^^;
長すぎるんで、単にファイルの内容をわけるわけです。
その時定義やグローバル変数、関数の呼び出しとかがちょっとややこしいので、
まぁ今そこまでソースが長くないのなら余力があればでいいと思います。

ちなみにファイル分割を知らなかった頃の私が初めて作ったゲームは1ファイルに1万行でしたが・・。

>絵ぐらい、管理人様にしてくださった事に比べれば小さな事ですが^^;

おぉ!
実はうちのレミカルソフトの絵師は究極のサボリ魔なんで困ってます(_ _||)
今龍神録のパッケージ絵かいてもらってるんですがいつになることやら・・。


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



Name: ccc  ..ぴよぴよ(68ポイント)   Date: 2008/08/05(火) 19:28   No:19714       
Title: 宿題で困っています・・・    
データーを20個入力して平均値、最小値、最大値を求めるという問題を解こうとしたのですが、どうも分からないので教えていただけないでしょうか?
 
丸投げですいませんが、どうかお願いします。


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


Name: 管理人 [URL]  ..伝説のハッカー(675,280ポイント)   Date: 2008/08/05(火) 19:35   No:19715     
Title: Re:宿題で困っています・・・    
とりあえず、今どこまで出来ていますか?
cccさんはどの程度理解されていますか?
配列やif文による条件分岐、比較などは理解されていますか?
どこで躓いていますか?
少しでもいいので、今出来ているプログラムソースを投稿してみてください。
一緒に少しずつ考えて行きましょう。


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

Name: array  ..中級者(12,009ポイント)   Date: 2008/08/05(火) 19:38   No:19716     
Title: Re:宿題で困っています・・・    
既にやる気はなく丸投げで良いのか。分かるように促した方がいいのか迷ったので。

分かるように促していきたいと思います。

//書き方の流れです//

データ20は配列というのを使いintで宣言すれば良いです。他にも必要な最大値と最小値も一緒に宣言します

関数が用意されているのをご存じでしょうか。
入力するにはscanf();という関数を使えば便利だと思いますがご存知でしょうか。

20個入力が終わった後for()を使い合計と、その中でif()を使い最小値&最小値を求めます。

その後合計を20で割れば平均が求めれます。

最後に結果をprintf();で出力してあげれば良いはずです^^

//終了//


※printf()、scanf()、for()なんかは関数です。(多分)
※参考書を持っているなら、調べれば使い方も全部書いてありますし、持っていなくてもインターネットで簡単に解説してくれているサイトがあります。

丸投げで良いのなら例として回答を書いてみます^^

と書いてみたのですが、管理人さんは理解してもらう方針みたいなので頑張ってください^^


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

Name: kazuoni  ..上級者(20,759ポイント)   Date: 2008/08/05(火) 19:39   No:19717     
Title: Re:宿題で困っています・・・    
んん〜丸投げですね(笑)

まずどこまで考えて、何で躓いているのでしょうか?入力ですか?配列ですか?

どこまで考えたのかを教えていただけないと回答ができないのが現状です。。

できればここまで考えた!っというコードを載せてもらうといい回答が得られると思います。(コード掲載の際には規約をしっかり読んでくださいね^^<pre></pre>(<>は半角)等など)



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

Name: 管理人 [URL]  ..伝説のハッカー(675,720ポイント)   Date: 2008/08/05(火) 19:49   No:19719     
Title: Re:宿題で困っています・・・    
以下の7問の問題を解いてください。
どこまで解けますか?



1、
int型の変数を1つ入力してそのまま表示するだけのプログラムを書きなさい。

2、
int型の変数を2つ入力して大きいほうを表示するプログラムを書きなさい。

3、
int型の変数を2つ入力して平均を表示するプログラムを書きなさい。

4、
要素10個の配列を用意し、ループ文で10個値を入力させ、
その10個を表示するだけのプログラムを書きなさい。

5、
4からさらにその中で最大数を表示するプログラムを書きなさい。

6、
5からさらにその中で最小値を表示するプログラムを書きなさい。

7、
6からさらにその平均を表示するプログラムを書きなさい。


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

Name: box  ..ハッカー(120,068ポイント)   Date: 2008/08/05(火) 20:07   No:19721     
Title: Re:宿題で困っています・・・    
> ※printf()、scanf()、for()なんかは関数です。(多分)

forは関数ではありません。


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

Name: array  ..中級者(12,128ポイント)   Date: 2008/08/05(火) 20:20   No:19724     
Title: Re:宿題で困っています・・・    
やっぱり違うのがあったんですね。(苦笑)まぁはっきり関数だよ!と言える自信はなかったので・・・

って事でちゃんと調べてみました。

ついでに書き忘れていたifについても調べたところどちらも

if文、for文というだけで関数というのは間違いみたいですね。


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

Name: KEV  ..入門者(3,205ポイント)   Date: 2008/08/05(火) 22:29   No:19737     
Title: Re:宿題で困っています・・・    
この宿題、偶然にも今日仕事で同じことやってたよ…w

自社製品のセンサから100回のデータを取得して、
生データ、平均、エラー数、最大最小、標準偏差を求めて
自動検査するプログラムを作ってました。

学校の宿題の延長でも給料もらえるんですよ!
丸投げで終わらずにがんばってみましょー。

int i;      //繰り返し用i
int data[21];   //20個のデータを入れる場所
double average;  //平均したデータを入れる場所
int max, min;   //最大と最小のデータを入れる場所

使う変数はこんなもんでしょうか。
入力でつまづいてそうな気もしますが…。


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

Name: KEV  ..入門者(3,146ポイント)   Date: 2008/08/05(火) 22:34   No:19739     
Title: Re:宿題で困っています・・・    
averageが最初intだったんですが、
doubleに直しました。


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

Name: box  ..ハッカー(120,587ポイント)   Date: 2008/08/05(火) 22:52   No:19743     
Title: Re:宿題で困っています・・・    

> int data[21];   //20個のデータを入れる場所

20個のint型のデータを入れるのであれば、[21]にする必要性は
さほどありません。[20]で、必要かつ十分ではないかと思います。

まあ、for文などのループを構成するときにどうしても1〜20で回したい、
0〜19じゃイヤだ、気持ちが悪い、というのであれば別ですけれど。
その場合、なぜ21個分を確保したか、後々わかるようにコメントでも書いておくとよいのでしょう。


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

Name: 管理人 [URL]  ..伝説のハッカー(675,884ポイント)   Date: 2008/08/05(火) 22:58   No:19746     
Title: Re:宿題で困っています・・・    
文字列と混同してしまってるとか・・でしょうか?

しかしその仕事いいな〜w
まぁもちろんそれだけじゃないんでしょうけどね。


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

Name: KEV  ..入門者(3,252ポイント)   Date: 2008/08/05(火) 23:30   No:19756     
Title: Re:宿題で困っています・・・    
> [20]で、必要かつ十分ではないかと思います。
風呂に入りながら「あれ?int型って最後に\0入ったっけ…?」
と思いつつさっぱりして帰ってきたらorz
自分で今日書いてたのと混同してました。あぁ恥ずかしいw

けど間違いをきちんと指摘されるからこそ、
私みたいな未熟者でも掲示板に書き込もうと思えるので、感謝しています。


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



Name: キッド・J・ヨハネ  ..ぴよぴよ(106ポイント)   Date: 2008/08/05(火) 21:27   No:19727       
Title: コンパイルができちゃって、間違いがわからないです!    

/*
2つの数値を入力すると、この2数の相乗平均を計算するプログラムを作成したいのです。2つの数値 a, bについては、この2数の相乗平均は、ルート (a * b)となります。
━(実行例:ここから)
2つの数値を入力してください。20 50
この2数の相乗平均は 31.62 です。
━(実行例:ここまで)
コンパイルができるようになったのですが、【//】が欠いてあるあたりがうまくいかないです。
どうすれば動きますか?
よろしければ考察も教えていただけますか?
*/

#include <stdio.h>

/* geo_mean関数の宣言 */
double geo_mean(int *pT);

int main(void)
{
int num[2];
int i;
double ans;

printf("2つの数値を入力してください。");

scanf("%d %d", &num[0], &num[1]);

// ans = geo_mean(&num[i]);

printf("2数の相乗平均は %.2lf です。\n", ans);

return 0;
}

/* geo_mean関数の定義 */
double geo_mean(int *pT)
{
int i;
double multi_num;

// multi_num =(i*i) * *pT;

return sqrt(multi_num);
}


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


Name: EVIL  ..ぴよぴよ(55ポイント)   Date: 2008/08/05(火) 21:40   No:19729     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
// ans = geo_mean(&num[i]); がおかしくなるのは初期化されていないiを使っているためだと思いますが、
配列に入れるのではなく、a,bを宣言してそこに読み込んだ2つの数値を代入し、
ansにsqrt(a*b)を代入して表示するだけではだめなのでしょうか?


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

Name: box  ..ハッカー(120,170ポイント)   Date: 2008/08/05(火) 21:53   No:19730     
Title: Re:コンパイルができちゃって、間違いがわからないです!    

> // ans = geo_mean(&num[i]);

geo_mean関数に配列numを渡すのであれば、先頭要素へのポインタである
num(配列名と同じ)を指定してください。

> /* geo_mean関数の定義 */
> double geo_mean(int *pT)
> {
> int i;
> double multi_num;
>
> // multi_num =(i*i) * *pT;

変数 i は不要です。pT[0] と pT[1] を掛けて、積の平方根を
呼び出し元に返してください。


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

Name: キッド・J・ヨセフ  ..ぴよぴよ(43ポイント)   Date: 2008/08/05(火) 21:53   No:19731     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
ans = geo_mean(&num[i]);をどうやって直すとよいですか?
頭の整理がうまくできなくて住みません。


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

Name: ヨハネ  ..ぴよぴよ(49ポイント)   Date: 2008/08/05(火) 22:05   No:19732     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
皆さん、ありがとうございます。
少し変えてコンパイルしてみましたが、エラーがでて、上手く実行できませんでした。


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

Name: box  ..ハッカー(120,256ポイント)   Date: 2008/08/05(火) 22:08   No:19733     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
先に書きましたとおり、配列名は、当該配列の先頭要素へのポインターです。
今回の場合でいうと、geo_mean関数に配列numを渡したいのですから、

ans = geo_mean(num);

と書けばよいです。
ところで、相乗平均を求める2数はint型でよいのでしょうか?

# ヨハネさんって誰?
# キッド・J・ヨハネさん、キッド・J・ヨセフさん、ヨハネさんは同一人物?
# 一つの話題の中でコロコロ名前を変えられると混乱を来す。



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

Name: ヨハネ  ..ぴよぴよ(241ポイント)   Date: 2008/08/05(火) 22:15   No:19734     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
色々名前がかわってすいません。

#include <stdio.h>

/* geo_mean関数の宣言 */
double geo_mean(int *pT);

int main(void)
{
int num[2];
int i;
double ans;

printf("2つの数値を入力してください。");

scanf("%d %d", &num[0], &num[1]);

ans = geo_mean(num);

printf("2数の相乗平均は %.2lf です。\n", ans);

return 0;
}

/* geo_mean関数の定義 */
double geo_mean(int *pT)
{
int i;
double multi_num;

multi_num =pT[0]*pT[1];

return sqrt(multi_num);
}
これでコンパイルしてみたのですが、何か違いました。
私の解釈が間違っているのでしょうか?


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

Name: box  ..ハッカー(120,351ポイント)   Date: 2008/08/05(火) 22:21   No:19735     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
> これでコンパイルしてみたのですが、何か違いました。

何か違いました、では、状況が全く伝わってきません。
コンパイル・エラーが出たのでしたら、
エラーメッセージをそっくりそのままコピー&ペーストして見せてください。
質問は具体的にお願いします。


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

Name: Hermit  ..上級者(21,424ポイント)   Date: 2008/08/05(火) 22:24   No:19736     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
sqrt を使うには、
#include <math.h>
が必要です。


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

Name: ヨハネ  ..ぴよぴよ(277ポイント)   Date: 2008/08/05(火) 22:33   No:19738     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
上手く説明できなくてすみません。
かんたんに言うと、相乗平均の答えが違います。




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

Name: box  ..ハッカー(120,420ポイント)   Date: 2008/08/05(火) 22:43   No:19740     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
> 相乗平均の答えが違います。

具体的ではありません。
2数に何を与えたとき、本来どんな結果を得るはずが
どうなってしまったので、答えが違うと判断されたのかを
示してください。

Hermitさんからのご指摘は反映させましたか?


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

Name: ヨハネ  ..ぴよぴよ(304ポイント)   Date: 2008/08/05(火) 22:50   No:19741     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
すみません。
20と50を入力したときの答えが、31.62 となるはずなんですが、108311411.00となってしまいます。
近づいた感じはします。


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

Name: ヨハネ  ..ぴよぴよ(281ポイント)   Date: 2008/08/05(火) 22:51   No:19742     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
#include <math.h> のmathって何ですか?

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

Name: box  ..ハッカー(120,658ポイント)   Date: 2008/08/05(火) 22:54   No:19744     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
mathematics(数学)の略称です。
今回登場しているsqrt関数や、sin, cosなどの
数学関数を使うときにインクルードする必要があります。


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

Name: ヨハネ  ..ぴよぴよ(297ポイント)   Date: 2008/08/05(火) 22:56   No:19745     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
層なんですか!初めて知りました。
ありがとうございます。


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

Name: ヨハネ  ..ぴよぴよ(320ポイント)   Date: 2008/08/05(火) 23:00   No:19747     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
出来ました!!!!!!!
何かmathにかえたら出来ました。
本当にありがとうございます。


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

Name: 通りすがり  ..中級者(10,861ポイント)   Date: 2008/08/05(火) 23:05   No:19748     
Title: 無題    
日本の方ではないのかもしれませんので言葉の使い方間違いはまぁいいとして、
明らかなタイプミス位は見直してから投稿した方がいいと思いますよ。
何か思わぬ誤解を招く元になる可能性がありますので。

住みません→すみません
層なんですか→そうなんですか

等。


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

Name: ヨハネ  ..ぴよぴよ(340ポイント)   Date: 2008/08/05(火) 23:06   No:19749     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
mathに変えないでやろうとしてもむりですか?

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

Name: box  ..ハッカー(120,822ポイント)   Date: 2008/08/05(火) 23:07   No:19750     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
> mathにかえたら

stdio.h を math.h に変えたのでしょうか?
だとすると、printf関数のために stdio.h をインクルードしておく必要がありますので、
stdio.h
math.h
の両方をインクルードしてください。


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

Name: ヨハネ  ..ぴよぴよ(355ポイント)   Date: 2008/08/05(火) 23:09   No:19751     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
ちょっと焦っていたので、確認できていませんでした。
本当にすみませんでした。これからはタイプミスをなるべくなくせるように努力します。


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

Name: ヨハネ  ..ぴよぴよ(371ポイント)   Date: 2008/08/05(火) 23:11   No:19752     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
両方をインクルードするということは、おなじ<>内に書くのですか?

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

Name: box  ..ハッカー(120,845ポイント)   Date: 2008/08/05(火) 23:14   No:19753     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
#include <stdio.h>
#include <math.h>

のように、インクルードする分だけ、別々の行に書きます。


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

Name: ヨセフ  ..ぴよぴよ(58ポイント)   Date: 2008/08/05(火) 23:20   No:19754 解決!     
Title: Re:コンパイルができちゃって、間違いがわからないです!    
有難うございます。無事コンパイルできました。
今、色々な問題に挑戦しています。
また何かわからないことがあると思うので、その時は宜しくお願いします。


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



Name: 猫丸  ..ぴよぴよ(120ポイント)   Date: 2008/08/04(月) 22:37   No:19642       
Title: 3D上での当たり判定     
過去トピRINさんのスレを見ました。
URLなども見たのですが全くわかりません・・・
もし
(Play.Px , Play.Py , Play.Pz) と (Enm.Px , Enm.Py , Enm.Pz) にある箱同士が
あったった判定をとるにはどのようにして
if(A>B〜)みたいに書けばいいのでしょうか?

誤差などは出てしまっても構いません
よろしくお願いします。


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


Name: array  ..中級者(11,419ポイント)   Date: 2008/08/05(火) 16:13   No:19690     
Title: Re:3D上での当たり判定     
基本的にシューティングの当り判定を応用すれば良いと思います。なのでその情報以外に各PlayとEnmのサイズ(幅)とか他にも、自分で決めてあげる初期定義(?)の仕方によっても変わってくると思いますのですが。
※参考アドレス
http://dixq.net/g/#s11

これにZとの判定も追加してあげれば・・・できるんじゃ?
・・・ピタゴラスを使わなくても。簡単に立方体で考えることもできるんじゃないかな・・・

px,py,pz //プレイヤーの各大きさ(画像的な)
ex,ey,yz //敵の各大きさ

Play.P○//プレイヤーの現在位置(座標)
Enm.P○//敵の配置されてる位置

とすれば

if( (Play.Px+(px/2)) > (Enm.Px-(ex/2)) && (Play.Px-(px/2)) < (Enm.Px+(ex/2))
|| (Play.Py+(py/2)) > (Enm.Py-(ey/2)) && (Play.Py-(py/2)) < (Enm.Py+(ey/2))
|| (Play.Pz+(pz/2)) > (Enm.Pz-(ez/2)) && (Play.Pz-(pz/2)) < (Enm.Pz+(ez/2))
)
真ならぶつかっている。

3Dも基本的に変わらないのであれば上記な感じでしょうか?

プレイヤーが敵の当り範囲内に入り込んでないかを判断しているつもりです^^;


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

Name: KEV  ..入門者(2,960ポイント)   Date: 2008/08/05(火) 18:51   No:19711     
Title: Re:3D上での当たり判定     
結構興味があった話題なので過去ログやリンク先を眺めてみたんですが、
なかなかやり応えのありそうな分野ですね…。

今回言っている箱というのは
XYZ平面にそれぞれ平行に線を描いてあるので、
arrayさんが回答されている通りの考えで実装できると思います。
>Play.P○//プレイヤーの現在位置(座標)
>Enm.P○//敵の配置されてる位置
ってのはそれぞれの中心座標のことですよね?

けれど、たとえば箱が斜めに傾いてたりすると、
上記の式のままでは判定ができないので、
「斜めに向いた箱がすっぽりと納まるような、XYZ平面に平行な新しい箱」 ← ややこしい
があると考えて、新しい箱で上記の式を適用させるといった工夫が必要になってくるかと思います。
この辺で誤差ってのが出るんだと予想できます。

で、さらにさらに、(この辺から調べてても私には理解不能でした^^;)
正確な衝突判定をしようと思ったら
ベクトルの内積と外積を用いての判定があったり、
変位ベクトルってのを使った手法があったり色々と大変みたいです。
ここまでたどり着きたいなら相当勉強しないといけなさそうだ…。

つまり、複雑な衝突判定を実装していくとどんどんややこしくなっていくので、
まずは単純な球の衝突とか立方体の衝突とかを試してみて、
マスターしたら次のステップに進んでいくのはどうでしょうか。


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

Name: array  ..中級者(11,706ポイント)   Date: 2008/08/05(火) 19:25   No:19713     
Title: Re:3D上での当たり判定     
>Play.P○//プレイヤーの現在位置(座標)
>Enm.P○//敵の配置されてる位置


中心点で考えてます。

>けれど、たとえば箱が斜めに傾いてたりすると、
>上記の式のままでは判定ができないので、
>「斜めに向いた箱がすっぽりと納まるような、XYZ平面に平行な新しい箱」 ← ややこしい


なるほど言われてみれば傾いていた場合をまったく想定していませんでした。KEVさんの考えで一応判定はできると思いますが。確かに誤差は確実にでそうですね。しかもその状態が回転する事を考えると、またややこしくなる様な・・・無理っぽい・・・?

それで変位ベクトルというのを調べてみたら、理解する気にもなりませんでした^^;
スカラとかベクトルとかボケっとしないで授業聞いておけばよかったです。

つまりは、KEVさんの言うとおり華麗にステップアップしていくのが良いと思います^^


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



Name: 翡翠  ..入門者(2,841ポイント)   Date: 2008/08/05(火) 17:26   No:19699       
Title: ゲームを製作する際の画像の用意は    
ええと、質問というほどでもないので、雑談と言う形で

ゲームを作っている方に、ちょっと質問です
ゲームを作る際、画像を用意するのはいつですか?

具体的に言うと、
1.プログラミングをする前に、ゲームで使用する画像はあらかた用意しておく(フリー素材を使う場合もここだと思います)
2.プログラミングをする前に少し用意し、プログラミングの合間に足りないものを描いていく(人に頼む場合、大体の構想を話しておくとか?)
3.プログラミングをしている最中、必要になった時のみ描く(人に頼む場合「こういう画像を描いてくれ」と頼むような)
4.っていうか画像使わない

3と4の区別がかなり曖昧ですが(括弧の中も)、まあ割と適当に答えて下されば幸いです
あ、ちなみに私は2番あたりです


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


Name: Mist  ..上級者(19,979ポイント)   Date: 2008/08/05(火) 17:41   No:19701     
Title: Re:ゲームを製作する際の画像の用意は    
私は3.5ぐらいでしょうか。
絵を書く技術はない人なのでなるべく画像を使わない方向で進めて行き、必要最低限のもののみ
フリーで落としてくるか、自分で書くかしています。
学生時代は友達に頼んでいたけど、お互い仕事で離れてしまうとなかなか頼みにくくって。


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

Name: 管理人 [URL]  ..伝説のハッカー(674,943ポイント)   Date: 2008/08/05(火) 17:43   No:19702     
Title: Re:ゲームを製作する際の画像の用意は    
その時によって変わると思います。

私の場合はですが、
例えば人に立ち絵を描いてもらうときなんかは、先にペイントでささっと1分で書ける位の画像を作っておきます。
で、ここに入る絵を描いてくれと頼みます。
画像サイズだけ合う画像用意しておけばプログラムはかけますしね。

設計書みたいなものをきちんと書いてから製作を開始するなら全ての素材を用意してから製作できるかもしれませんが、
趣味で一人で作っている場合にはそれは無いですよね。
だから私は基本必要になったら、書いていく繰り返しです。
ただ弾幕の弾のような画像は最初にそろえておかないと、見た目がどうなるかわからないので、
先に用意しておきます。
村人のキャラ絵などは別に詳細は後でもいいので、とりあえずプログラム先に書きます。

後、先に見栄えがするとやる気に繋がりそうな時は先に絵を書きます。
例えばまだSTGに背景をあわせたこと無い時に、背景を書いて、あわせてみるとすごく感動し、やる気がでました。

素材の絵はプログラムが出来てからきちんとそろえた方がいい場合と、
絵をきちんとそろえてからじゃないとプログラムがかけない場合がありますし、様々なんじゃないでしょうか。

ただ、普段の基本スタイルとしては私は製作しつつ必要になったら絵を描いていくスタンスです。
なのでやはり2〜3の中間でしょうかねぇ。


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

Name: バグ  ..ハッカー(103,567ポイント)   Date: 2008/08/05(火) 17:45   No:19703     
Title: Re:ゲームを製作する際の画像の用意は    
コンソールアプリならグラフィックは不要です(笑)

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

Name: めいらる  ..ぴよぴよ(530ポイント)   Date: 2008/08/05(火) 17:57   No:19704     
Title: Re:ゲームを製作する際の画像の用意は    
3ですね〜(・∀・)
いる時になったら作る!!いきあたりばったりです/(^o^)\


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

Name: 御津凪  ..ぴよぴよ(42ポイント)   Date: 2008/08/05(火) 18:25   No:19705     
Title: Re:ゲームを製作する際の画像の用意は    
初めて投稿します。

私はゲームとして作る場合は一人で作るスタンスがあるので、私も3ですね。
一人で作る場合、作っている最中にあれやこれやとアイデアが浮かんできて、
そのたびに素材を探したり、頼むのは大変です。
なので自分で描いて用意するという(笑

ちなみに、会社(ゲーム会社に勤めています)では発注として2と3ですね。
忙しい時は3(自分で仮として用意)が圧倒的ですが。


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

Name: 翡翠  ..入門者(3,297ポイント)   Date: 2008/08/05(火) 18:29   No:19706     
Title: Re:ゲームを製作する際の画像の用意は    
おおっ、こんな短時間に四名の方が回答してくださるとは!

>Mistさん
絵は私もあまり描けません。勉強中なんです
フリーを使うのもありなんですが、著作権とかややこしいことが苦手なので……

>管理人さん
確かに、綺麗な弾幕を作ろうとしたら画像が必須ですよね。まあ、私はまだSTGは作ったことがありませんけれど(というか、本格的なゲームを作ったことがない)
私は、常に絵によってやる気が向上しますね
絵をいつ用意するかは、作るゲームの場合によりますか……
どうも、参考になります!

>バグさん
グラフィック不要だと、プログラムに打ち込めそうですね
手軽に作るのなら、それも一つの方法ですよね

>めいらるさん
私も、最初に2番と書きましたが、プログラムを書いてるうちに『あ、この画像がいる』とか言って、その時に描き始めることがよくあります


どうも、最初にあらかた用意しておくっていう方はいないようですね
やっぱり、プログラムを書いてる内に、必要な画像が出てくるからでしょうね


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

Name: 翡翠  ..入門者(3,441ポイント)   Date: 2008/08/05(火) 18:33   No:19708     
Title: Re:ゲームを製作する際の画像の用意は    
おっと、書いてる間に新しい投稿が

>御津凪さん
プログラムを書いていくと、どうしても描いてなかった必要な画像っていうのが出てきますよね
会社でも、プログラムと画像は並列進行なんですね
管理人さんが仰っているように、プログラムを書くときは、画像サイズのみ合わせておけば、後に描かれた画像を使うこともできますしね


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



Name: BIOS  ..ぴよぴよ(16ポイント)   Date: 2008/07/31(木) 19:09   No:19289       
Title: API等の技術情報を公開しあいませんか?    
API等の技術情報について、議論したり、情報を公開しあいませんか?
 Windowsのタイマー、メモリ設定、BIOSの設定、ウィンドフロー制御等、一般での書籍では、公開されていませんね?現場のSEやプログラマーの方々も、その技術情報入手に四苦八苦して、おられます。皆さんで、公開しあって、このスレから、市場で勝負できるプログラム開発をやってみませんか?


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


Name: すく  ..かけだし(1,113ポイント)   Date: 2008/07/31(木) 19:20   No:19291     
Title: Re:API等の技術情報を公開しあいませんか?    
いくつあるかは興味ありますね。
調べるときに見るサイトにのってるだけでも凄い量ですし。


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

Name: Mist  ..上級者(18,479ポイント)   Date: 2008/07/31(木) 19:33   No:19293     
Title: Re:API等の技術情報を公開しあいませんか?    
> 公開されていませんね?
そういった情報こそがお金になるからね。
職業プログラマーやってる人間からするとメシの種がなくなるわけだし、その情報を手に入れるために時間、労力、お金を消耗しているわけでして…。
おいそれと公開した日には失業しちゃいかねません(~-~;


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

Name: ibis  ..中級者(12,269ポイント)   Date: 2008/07/31(木) 20:02   No:19294     
Title: Re:API等の技術情報を公開しあいませんか?    
WindowsAPIやDirectXなどは英語版のMSDN Libraryにいろいろと載ってますが。
まぁ理解できるかはともかくとしてね。
それに規模が大きすぎて、探してる項目を見つけるのにも苦労しますけど。

理解できるところからまとめていけば、何かの役に立ちそうではありますが。

>市場で勝負できるプログラム開発
売る気ですかw
いやいや、冗談です。
「ある程度普及させられる」という程度の意味ですよね。


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

Name: たかぎ [URL]  ..熟練のプログラマー(51,752ポイント)   Date: 2008/07/31(木) 21:59   No:19299     
Title: Re:API等の技術情報を公開しあいませんか?    
趣旨は悪くないですが、マルチポストはダメですね。
http://www2.realint.com/cgi-bin/tarticles.cgi?pointc+32014

あと、情報というのは呼吸のようなもので、吐いた分だけしか吸えません。
まずはご自身から情報を出すのが筋です。


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

Name: BIOS  ..かけだし(1,076ポイント)   Date: 2008/08/02(土) 14:01   No:19382     
Title: 簡易I/Oポートプログラム    
コレを実現できる回路図は、示せませんが、I/OコントロールのAPIを入手しましたので、此処に記述します。
ご確認下さい。

<list0908.h>
#define ID_tim 100
#define ID_txt 199
#define ID_0 200
#define ID_1 201
<list0908.cpp>
#include <windows.h>
#include <conio.h>
#include "list0908.h"
BOOL CALLBACK dlgProc(HWND,UINT,WPARAM,LPARAM);
char *itob(int);
int WINAPI WinMain(HINSTANCE hi,HINSTANCE,LPSTR,int)
{
DialogBox(hi,"DLG0",HWND_DESKTOP,(DLGPROC)dlgProc);
return 0;
}
BOOL CALLBACK dlgProc(HWND hWnd,UNIT message,WPARAM wParam,LPARAM lParam)
{
switch(message){
case WM_INITDIALOG:
SetTimer(hWnd,ID_tim,100,NULL);//ポートを読み込むタイミング
return 0;
case WM_COMMAND:
switch(wPAram){
case ID_0:
_outp(0x61,_inp(0x61)|0x03);//ビープボートを操作する
return 0;
case ID_1: //ビープボートを操作する
_outp(0x61,_inp(0x61)|0xfc);
return TRUE;
case IDCANCEL: //リソースでWS_SYSMENUを設定すると
KILLTIMER(hWnd,ID_tim);
EndDialog(hWnd,FALSE); //閉じるボタンのクッリクで
return TRUE;        //IDCANCELが送られる  
}
break;
case WM_TIMER:{
char tmsg[100];           //ポートの状態を読み込み表示する
wsprintf(tmsg,"system port B (0x61) = %s",
(LPSTR)itob(_inp(0x61)));
SetDlgItemText(hWnd,ID_txt,tmsg);
return TRUE;
}
}
return FALSE;
}
char * itob(int i) //iの値を2進数の文字列に変換
{
int j,m=0x80;
static char buf[20];
for(j=0;j<8;j++){
if(i & m)
buf[j]='1';
else
buf[j]='0';
m=m>>1;
}
buf[8]=0;
return buf;
}

<list0908.rc>
#include <windows.h>
#include "list0908.h"

DLG0 DIALOG DISCARDABLE 50,50,150,60
STYLE DS MODALFRAME |WS_POPUP|WS_VISIBLE|WS_CAPTION|WS_SYSMENU
CAPTION "I/O操作の実験(wbeep3)"
BEGIN
CTEXT "_", ID_txt,10,10,130,10
PUSHBUTTON "BEEP ON", ID_0,20,30,40,12
PUSHBUTTON "BEEP OFF", ID_0,80,30,40,12
END


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

Name: BCI-3e  ..中級者(11,675ポイント)   Date: 2008/08/02(土) 14:57   No:19384     
Title: Re:簡易I/Oポートプログラム    
みなさん、この掲示板の根本を忘れていませんか?
BIOSさん、書き込みの前に利用規約を読みましょう。それがわからなければあなたは
この掲示板を使うことができません。ここは初心者のための掲示板です。
詳しい事を語り合いたければ自分で掲示板を作るなり、他の掲示板の力を借りるなり
いくらでも手段はあります。過去ログは読まれたんでしょうか?この掲示板の管理人
様は大学生であり、ゲームの製作者であり、C言語を教えてくれる講師である方です。
その人の結晶をあなたの知識を増やすためにだけに利用するのは私は許せません。

第一、プログラマーが必死になって作った事が無料で公開されること自体がおかしいのです。
早く言ってしまえば、BIOSさんは無料で知識を得たいわけですよね?それはあきらめたほうがいいです。
なぜなら、その情報にはそれ相応の価値があり、それに見合った代償が発生するわけですから。
その代償がお金であったり、プログラム開発の会社に就職する事であったり、いろいろあるわけです。

管理人様がこの事を許すのであれば私が口出しできる立場ではありませんが、掲示板荒らしは
好ましく無いです。他のスレッドを見て見て自分がここにいることがふさわしいかどうかお考え
ください。

マルチはいけませんが、少し過剰になりすぎですよ;
今は夏休み。かわいい小学生なんかが見に来たりしているわけですから^^
管理人様の仕事をできるだけ増やさないよう努力してくださいね。
あまり過剰なスレは消されると思いますが、節度を守ってください。お二人とも^^


追伸
管理人様へ
先日は名前の件で迷惑をかけてしまいすみませんでした。
学校のパソコンはクッキー機能仕様禁止だったのですがこの掲示板に書き込むのは
私一人だったのでついつい。今後気おつけます。
関係の無い皆様には迷惑かもしれませんが、この場を借りて謝罪させていただきます。
申し訳ございませんでした。


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

Name: tkmakwins15 [URL]  ..比類無きプログラマー(84,246ポイント)   Date: 2008/08/02(土) 17:08   No:19386     
Title: Re:簡易I/Oポートプログラム    
市場に出せるプログラム開発って…

それをするのであれば、新たに掲示板を作って、本気でメンバー集めて、拠点を作るべきでは?
ここで、というのは無理がありそうな気がします。


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

Name: finnissy  ..ぴよぴよ(669ポイント)   Date: 2008/08/02(土) 22:22   No:19398     
Title: Re:簡易I/Oポートプログラム    
貴重な情報を皆で提供して共有すると言う提案は、ボクは大いに賛成です。
ただここで人を集めて、そういった情報のやり取りをするのは無理があると思うので、
新しく掲示板などを作ったらいかかでしょうか?
ついでにPukiWiki等を連動させて運営すれば人もそれなりに集まると思います。
ある程度準備が整ったら、色々な掲示板に一声かけて回ったらどうですか?


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

Name: 管理人 [URL]  ..伝説のハッカー(659,444ポイント)   Date: 2008/08/03(日) 00:58   No:19414     
Title: Re:簡易I/Oポートプログラム    
>BCI-3eさん

ありがとうございます。
BCI-3eさんのこの掲示板を初め、HPの事を思っていただけるお心大変感謝いたします。
ただ、私は細かい規則が嫌いで、また、熟練者同士の高度な話し合いや、
たんなる日常生活のどうでもいい雑談、初心者同士の交流など、
何でも有意義にこの場を使っていただきたいなと思っています。
ここの掲示板の雰囲気やシステムをこれからも守っていくつもりですし、
私もその義務を果たすつもりですが、出来る限りの事は自由にしていただきたいなと思っています。

また、マルチの件は、相互リンクを貼ればしても良いという規約になっているので、
それをしていただければOKだと思っています。

そして何か他のサイトを設立する為にトピが使われるとしても、出来るだけバックアップできたらなと思っています。

もちろんご意見の提案も下さると光栄です。
これは許可するべきではないのではないかとか、
これはもっと自由にするべきではないのかとかご意見もお気軽にお聞かせ願えればと思います。

よりよい掲示板になるよう、皆様のお声を元に努めていこうと思っています。
とりあえずこのトピに関しては特に禁止する事も無いと思っています。
せっかくのご提案に反する結果となる回答お許し下さい。
BCI-3eさんのお気持ちには大変感謝致します。

>追伸の件

了解しました。
こちらこそ何か気を悪くさせるような誤解をしてしまい申し訳ありませんでした。
今後ともお気軽にこの掲示板を使っていただけると幸いですと管理人が言っていたと
お伝え下さいm(_ _)m


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

Name: BIOS  ..ぴよぴよ(432ポイント)   Date: 2008/08/03(日) 18:21   No:19500     
Title: とにかく、今は・・・・・・・・・    
 BIOSです。今は、いがみ合っている場合じゃ有りません。問題を起こした私に問題ありますが、ワープロのATOKとか、Windowsのautoexec.bat.orgとかの技術情報は、大手のソフトハウス独占状態じゃないですか?
 我々が、ソフトを作るときは、そういう、技術情報ナシで開発する故に、どうしても、市場に流通するソフトに建ち打ち出来ません。これって、不公平じゃないですか?
 新規のIT企業が、市場に参入でき難い一因でもあります。確かに、製作者にとって、権利侵害を意味しますが、大手が、ソフト開発の利益を独占する今の状況を少しでも、打破出来ればと思い、スレを立ち上げました。
 これは、今昨今の格差問題の一因でもあります。今の勝ち組といわれている方々は、その殆どが、金融売買での
利益です。それは、自分(勝ち組同士)達での金融情報(企業情報)を独占して、不当に利益を吊り上げる、インサイダーじゃないですか?このトピのジャンルのITもそういう独占情報(技術情報)を皆さんで、共有し、彼らとの経済格差を少しでも、縮める意味が、込められています。私は、格差をこの角度から切り込もうかと思います。


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

Name: バグ  ..ハッカー(102,199ポイント)   Date: 2008/08/03(日) 21:53   No:19538     
Title: Re:API等の技術情報を公開しあいませんか?    
あなたの言われる事は屁理屈であり、子供が駄々をこねているのと変わりません。
やりたい事があるならば、リスクを背負うべきです。それさえ拒否して人任せにしている現状では、あなたの言う事には全く説得力がありません。
やりたいなら止めませんが、それはここでやるべきではなく、あなたが自身で立ち上げたサイトなり会社なりでやるべきです。今のままでは荒らしと大差ありません。


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

Name: ゆーずぃ  ..ぴよぴよ(166ポイント)   Date: 2008/08/05(火) 14:29   No:19680     
Title: 初心者ではありますが…    
私は皆様の話には到底ついてはいけないド初心者ではありますが、このスレが立った事はとても素晴らしいことだと思います。
こちらのサイトは主に(あくまでも主に、ですが)私のような迷える初心者が集まり、そして皆様の力をお借りして解決へと導いて頂ける場所だと思っております。
常に大学院レベルの難しい議論をしているわけではなく、
最先端に携わる技術者が集って日本の技術について協議しているわけでもなく
初心者に、初心者が分かりやすいような易しい単語を使ってご教授頂いているわけです。
その様な易しいサイトにこのようなスレが立ったということは、その先生となっている上級者(又は、神。笑)の皆様のお力を見抜き、評価していらっしゃるということではないのでしょうか?
また、それだけこちらのサイトには博学・博識な方が集っているというなによりの証明ではないのでしょうか?

BIOSさんが間違っているか間違っていないかというのは一概には言えないとは思いますが、一人の愛用者としてなんだか嬉しくなりました。
最後になりますが、場違いなことを言っているかもしれません。ですが、このサイトを下に見ているというようなことでは決してありません。もし誤解を生じた方がいらっしゃいましたら、申し訳ありませんでした><;


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

Name: array  ..中級者(10,976ポイント)   Date: 2008/08/05(火) 15:37   No:19686     
Title: Re:初心者ではありますが…    
 私も話にはついていけないのですが、このスレが立った時から興味を持ち眺めていました、BIOSさんは皆さんのアドバイスについて『いがみ合っている場合じゃ有りません』と片づけ自分の意見だけを坦々と一方的に言ってるのが気になります。とりあえず、サイトを立ち上げる気はあるのか、発起人はどの程度知識を持っているのかを説明するべきだと思います。

 それに発起人はそれなりに皆の意見を纏めつつ引っ張っていく必要があると思うのですが、そういった部分が感じられないので、バグさんが注意を促しているのだと思います。

 管理人さんもサイトを立ち上げるためにトピを立てたのならバックアップをすると言っているので問題はないと思うのですが・・・


 なんにしろマルチの件で規約を守らず投稿されてるのも問題だと思います。

そんなんでは「このスレから、市場で勝負できるプログラム開発をやってみませんか?
」というのもすごく胡散臭く感じられます^^;


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



Name: kaiten  ..ぴよぴよ(924ポイント)   Date: 2008/08/02(土) 09:31   No:19366       
Title: 画像の回転    
画像を回転させようと思ってDrawRotaGraphを使っているのですが、
細かいものだと劣化がひどいので何か手はないのか考えています。
レーザー作成の話に出ていたSetDrawMode(DX_DRAWMODE_BILINEAR)を使ってみたのですが
誤魔化しきれないので他の方法があれば教えていただきたいです。

環境はDXライブラリ+BCCでやってます。


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


Name: 管理人 [URL]  ..伝説のハッカー(658,595ポイント)   Date: 2008/08/02(土) 09:37   No:19368     
Title: Re:画像の回転    
バイリニア法で表示すればかなり滑らかに成ると思うのですが、
それでも誤魔化せない画像ってどんな画像でしょう?
小さい画像を拡大しているのでしょうか?
その画像をこちらの掲示板に添付してもらえると解り易いかもしれません。

また、どの位拡大しているか、どういう用途でどのような使用方法かも教えてもらえるとあり難いです。


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

Name: kaiten  ..かけだし(1,008ポイント)   Date: 2008/08/02(土) 10:53   No:19373     
Title: Re:画像の回転    
添付ってこれで出来てますかね?

画像の扱いは弾です。
回転するようにしたら見苦しくなったので試しに1度ずらして表示してみたのですが、予想以上に汚くなってまして。
拡大はゲーム全体を1.25倍しています。


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

Name: array  ..初心者(6,914ポイント)   Date: 2008/08/02(土) 13:23   No:19377     
Title: Re:画像の回転    
色々試みたのですがうまくいかないですね・・・画像を拡大してトーレスして書き直したりもしてみたのですがその線のサイズだと難しいみたいですね。

他に良い方法あるのかな・・・


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

Name: 管理人 [URL]  ..伝説のハッカー(658,746ポイント)   Date: 2008/08/03(日) 00:38   No:19407     
Title: Re:画像の回転    
今日は出かけていたのでお返事できませんでしたm(_ _)m



ホントですね〜、うまくいきませんね・・。

その1ピクセルで出来てる線は細すぎるのかもしれません。
もう少し太く書いてみたらどうでしょうか?
それでも解決しない場合は本家の掲示板で聞いてみて下さい。


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

Name: Justy  ..ハッカー(213,793ポイント)   Date: 2008/08/03(日) 01:39   No:19417     
Title: Re:画像の回転    

>誤魔化しきれないので他の方法があれば教えていただきたいです

 たしかにキツそうな画像ですね。

 少しずつずらして何回も書いてみてはどうでしょうか?
 こんな感じで。



int blendMode, blendParam;
GetDrawBlendMode(&blendMode, &blendParam);

float x1 = 240.f, x2 = 640.f-x1, y = 200.f, offset=0.5f;
double scale = 1.25;

// 基本
SetDrawBlendMode(DX_BLENDMODE_ALPHA, 128);
DrawRotaGraphF(x1, y, scale, radAng, img, TRUE);

// 上下左右
SetDrawBlendMode(DX_BLENDMODE_ALPHA, 50);
DrawRotaGraphF(x1+offset, y, scale, radAng, img, TRUE);
DrawRotaGraphF(x1, y+offset, scale, radAng, img, TRUE);
DrawRotaGraphF(x1-offset, y, scale, radAng, img, TRUE);
DrawRotaGraphF(x1, y-offset, scale, radAng, img, TRUE);

// 斜め
SetDrawBlendMode(DX_BLENDMODE_ALPHA, 30);
DrawRotaGraphF(x1+offset, y+offset, scale, radAng, img, TRUE);
DrawRotaGraphF(x1+offset, y-offset, scale, radAng, img, TRUE);
DrawRotaGraphF(x1-offset, y+offset, scale, radAng, img, TRUE);
DrawRotaGraphF(x1-offset, y-offset, scale, radAng, img, TRUE);

// 比較対象
SetDrawBlendMode(blendMode, blendParam);
DrawRotaGraphF(x2, y, scale, radAng, img, TRUE);


 結構ボケてしまうのが難点ですが、右に表示したジャギジャギなのよりは遙かにマシかな、と。


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

Name: kaiten  ..かけだし(1,084ポイント)   Date: 2008/08/04(月) 09:40   No:19597     
Title: Re:画像の回転    
泊りがけで部活に行ってたので返答が遅れてしまいました(汗

>arrayさん、管理人さん
やはり画像を変えるのが上策ですか…自分で描いてないので描き手と相談してみます。

>Justyさん
わざわざありがとうございます。
ですが、変数offsetとDrawRotaGraphFの意味がよくわからないので教えていただけませんか。


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

Name: Justy  ..ハッカー(213,928ポイント)   Date: 2008/08/04(月) 13:04   No:19606     
Title: Re:画像の回転    
>変数offsetとDrawRotaGraphFの意味がよくわからないので教えていただけませんか
 offsetは位置を少しだけずらして DrawRotaGraphF()で描画する際の
「ずらす量」の調整の為に使っています。

 DrawRotaGraphF()は DrawRotaGraphの引数の座標を指定する部分が floatになったバージョンです。
 DrawRotaGraph()ではなくDrawRotaGraphFを使わないと1ピクセルよりも小さな単位で
位置を指定できないので・・・。


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

Name: kaiten  ..かけだし(1,175ポイント)   Date: 2008/08/05(火) 14:34   No:19681 解決!     
Title: Re:画像の回転    
>Justyさん
確かに、左の方が右に表示されるものよりマシになりますね。
どうしてもこのような画像で回転しなければならないときは使わせてもらおうと思います。
ありがとうございました。


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



Name: yacou  ..ぴよぴよ(147ポイント)   Date: 2008/08/05(火) 00:35   No:19646       
Title: C言語 13の実行について    
はじめまして。
C言語歴2年しかない夜光といいます。
質問は、C言語〜ゲームプログラミングの館〜での『13. 裏画面処理をして画像を動かす』なのですが、
ソースをそのままコピーして実行をするとエラーが大量発生してしまい先に進めなく困ってしまっています。
これ以前の分はすべて実行できています。
また、内容をダブルクリックをすると『システムでは、指定されたファイルが見つかりません』とのエラーが左下に表示されます。

OS:WindowsXP SP3
開発:Microsoft Visual C++ 2008 Express Edition

1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount は既に MSVCRTD.lib(MSVCR90D.dll) で定義されています。
1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit は既に MSVCRTD.lib(MSVCR90D.dll) で定義されています。
〜略〜
1>LINK : warning LNK4098: defaultlib 'MSVCRTD' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
1>LINK : warning LNK4098: defaultlib 'LIBCMTD' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
1>libjpeg_d.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jtransform_execute_transformation が関数 _main で参照されました。
1>libjpeg_d.lib(jpegtran.obj) : error LNK2019: 未解決の外部シンボル _jcopy_markers_execute が関数 _main で参照されました。
〜略〜
1>080804DrawPicture - エラー 39、警告 2


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


Name: たか  ..かけだし(2,443ポイント)   Date: 2008/08/05(火) 00:38   No:19647     
Title: Re:C言語 13の実行について    
プロジェクトの設定はされたのでしょうか?

DXライブラリ本家さんのページで詳しい解説をしているのでリンクを貼っておきます。
http://homepage2.nifty.com/natupaji/DxLib/dxuse_vc2008express.html


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

Name: yacou  ..ぴよぴよ(310ポイント)   Date: 2008/08/05(火) 00:46   No:19648     
Title: たかさんへ    
ありがとうございます!
毎回しなければならなかったんですね(汗
さっそく設定しなおしてみると、

1>LINK : warning LNK4098: defaultlib 'LIBCMTD' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。

と警告が1つ発生して実行はできたのですが画像が一切表示されませんでした;
もう少し見直してみます;


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

Name: たか  ..かけだし(2,473ポイント)   Date: 2008/08/05(火) 00:52   No:19649     
Title: C言語 13の実行について    
念のためですが、ファイル構成はどうなっているのでしょうか?
画像が表示できないことには何もできないので・・。


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

Name: yacou  ..ぴよぴよ(630ポイント)   Date: 2008/08/05(火) 01:08   No:19652 解決!     
Title: Re:C言語 13の実行について    
ありがとうございますm(__)m
すみません、自己解決してしまいました;
どうも[Debug]フォルダに入れたのが間違いだったようです。
C言語でtxtの出力等は[Debug]の中に入れていたと思っていたのですが間違いだったようです。
回答してくださりありがとうございました。

夜光


[080804DrawPicture]
-080804DrawPicture.ncb
-080804DrawPicture.sln
-080804DrawPicture.suo
-080804DrawPicture.vcproj
-080804DrawPicture.vcproj.FMV-CE70G7.Owner.user
-Log.txt
-SetDrawScreen.CPP
-[Debug]
-080804DrawPicture.exe
-080804DrawPicture.exe.embed.manifest
-080804DrawPicture.exe.embed.manifest.res
-080804DrawPicture.exe.intermediate.manifest
-080804DrawPicture.ilk
-080804DrawPicture.pdb
-BuildLog.htm
-char.png ←これを1つ上の階に移動させました。
-mt.dep
-SetDrawScreen.obj
-vc90.idb
-vc90.pdb


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

Name: たか  ..かけだし(2,473ポイント)   Date: 2008/08/05(火) 05:42   No:19659     
Title: Re:C言語 13の実行について    
そうでしたか、これからもがんばってください!!



Name: こめかみ  ..入門者(4,855ポイント)   Date: 2008/08/04(月) 09:05   No:19594       
Title: 龍神館8章について    
報告にあがりました。


一つは誤字です。
GetHitPadStateAll()関数の解説の下から三行目

"この関数に使われている条件演算子の使い方がわからない方"が"そちらを調べて下さい。"

これは、

"この関数に使われている条件演算子の使い方がわからない方"は"そちらを調べて下さい。"
このほうがよくないですか?


一つは提案です。
8章の

--define.hを変更--

//フィールドの広さ
#define FIELD_MAX_X 384
#define FIELD_MAX_Y 448
//フィールドの左上の座標
#define FIELD_X 32
#define FIELD_Y 16
//パッドキーの最大数
#define PAD_MAX 16

#include "struct.h"


の記述ですが
7章の

--define.hを変更--

#include "struct.h"

#define FIELD_MAX_X 384
#define FIELD_MAX_Y 448

#define FIELD_X 32
#define FIELD_Y 16


から何の説明も無しに #include "struct.h" の位置が変わっていたので少し混乱しました。
7章の時点で

--define.hを変更--

//フィールドの広さ
#define FIELD_MAX_X 384
#define FIELD_MAX_Y 448
//フィールドの左上の座標
#define FIELD_X 32
#define FIELD_Y 16

#include "struct.h"


このように #include "struct.h" の位置は下のほうでいいんじゃないでしょうか。



以上ですー。
あ、あとこれは質問なんですが、
void GetHitPadStateAll()関数内の" mul "って変数は何の英単語の略なんですか?
ちょっと想像が及ばなかったです。マルチとか?


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


Name: バグ  ..ハッカー(103,203ポイント)   Date: 2008/08/04(月) 09:13   No:19596     
Title: Re:龍神館8章について    
多分ですけれど…

Multiplication(乗算)ではないでしょうか?


Name: 管理人 [URL]  ..伝説のハッカー(669,256ポイント)   Date: 2008/08/04(月) 12:59   No:19604     
Title: Re:龍神館8章について    
ご報告ありがとうございます。

struct.hの位置は

defineしてからじゃないと宣言できない部分もある為、必要があれば段々下がっていくと思うのですが、
最初から一番下とか統一した方がよかったですかね。

なお、mulはバグさんの仰るとおりで、乗算です。

加算 addition
減算 subtraction
乗算 multiplication
除算 division

はその頭文字をよく使うのではないかと思います。


本来ではあの計算部分はビットシフトを使うのですが、
わかりやすさ重視の為、2の掛け算にしています。


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

Name: こめかみ  ..入門者(4,963ポイント)   Date: 2008/08/04(月) 18:56   No:19637     
Title: Re:龍神館8章について    
バグさんに管理人さんありがとうございます。
multiplicationですか、あー、なんか物凄く基本ですね。経験不足でご迷惑おかけします。

>必要があれば段々下がっていくと思うのですが、
そういんものなんですか。ちょっと説明が欲しいと思いました。

本題である誤字の件なんですが、理解していただけましたでしょうか。
今見てきたらまだ直ってなかったので。
誤字・・・ですよね?


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

Name: 管理人 [URL]  ..伝説のハッカー(672,585ポイント)   Date: 2008/08/04(月) 21:35   No:19640     
Title: Re:龍神館8章について    
すみません、昼間〜夜は大学にいるので、直せないのです。
家に帰り次第直します。


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

Name: こめかみ  ..入門者(4,982ポイント)   Date: 2008/08/04(月) 22:20   No:19641     
Title: Re:龍神館8章について    
それは失礼しました、ゆっくり頑張って下さい。

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



Name: kirbest  ..かけだし(1,158ポイント)   Date: 2008/08/04(月) 16:56   No:19623       
Title: CPU使用率がかなり高くなってしまう    
今自分の作っているゲームをテストプレイしていて気が付いたのですが、
CPUの使用率が90%近くになってしまっているのです。
フルスクリーンモードならたとえ100%でもよくても、
ウィンドウモードでちょっと息抜きにできるようなものを作っているので・・・

現在はテスト用に画像は一切使っておらず、
DrawLine、DrawCircle、DrawFormatStringなどで表示しており
SetDrawAreaも結構多様しています。

計算処理は無駄にループしている部分がないかなど調べましたが大丈夫なようで、
while( GetNowCount() - fps_time < 34 ){ Sleep(0); }をいれて、FPSが30になるようにもしています。

CPU使用率を低くする方法はあるのでしょうか?
それともこれくらいは普通なのでしょうか?


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


Name: バグ  ..ハッカー(103,518ポイント)   Date: 2008/08/04(月) 17:23   No:19624     
Title: Re:CPU使用率がかなり高くなってしまう    
ん?FPS30にする為に調整するならば…

while( GetNowCount() - fps_time < 34 ){ Sleep(34 - GetNowCount() - fps_time); };

こうじゃないですか?


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

Name: めいらる  ..ぴよぴよ(458ポイント)   Date: 2008/08/04(月) 17:30   No:19626     
Title: Re:CPU使用率がかなり高くなってしまう    
私の作っているゲームも常時CPUを80%食ってますね…(・∀・)弾を8000発出したりとか激しい処理をしない限り80%から変化しないので気にしないようにしてますがww
ちなみにゲームプログラミングの館のFPS計算処理そのままを使ってます(・∀・)


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

Name: Mist  ..上級者(19,276ポイント)   Date: 2008/08/04(月) 17:40   No:19627     
Title: Re:CPU使用率がかなり高くなってしまう    
> CPUの使用率が90%近くになってしまっているのです。
実行前がどれだけだったかにもよるかと思います。
環境にもよってきますが実行中で10〜20%程度の増加であれば、アプリの問題では無いと思う。

> while( GetNowCount() - fps_time < 34 ){ Sleep(0); }
提示された中ででは、ここが一番無駄にループしていると思う。


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

Name: バグ  ..ハッカー(103,613ポイント)   Date: 2008/08/04(月) 17:56   No:19629     
Title: Re:CPU使用率がかなり高くなってしまう    
うわ、勘違いしてた(苦笑)

while( GetNowCount() - fps_time < 34 ){ Sleep(34 - GetNowCount() - fps_time); };

↑こうじゃなくて、↓のように修正してください。

if (GetNowCount() - fps_time < 34) Sleep(34 - GetNowCount() - fps_time);


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

Name: kirbest  ..かけだし(1,218ポイント)   Date: 2008/08/04(月) 19:38   No:19639 解決!     
Title: Re:CPU使用率がかなり高くなってしまう    
>バグさん
そういえばそれで十分でしたね・・・
ありがとうございます

>Mistさん
調べてみましたが起動前は最高でも20%ほどでした。
やはりアプリの問題みたいです。


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



Name: 管理人 [URL]  ..伝説のハッカー(660,691ポイント)   Date: 2008/08/03(日) 04:35   No:19430       
Title: アンケートについて    
この掲示板についてのアンケートを取ってみようと思います。

ここに来ている人はどれ位の年齢層が多いのか、普段何をしている人が多いのか、
どういう動機でここに来たのか・・・。

など普段気になることもあるかと思います。
そこで以下のようなアンケートフォームを作りました。

↓まだ回答されませんようお願いします
http://dixq.net/board/ank/enq.cgi
(テスト回答はOKです。その代わりデータは消えます。テスト回答するとき、最後のコメント欄に「テスト」とお書き下さい。)

きっちりと項目が完成してからアンケートを募集しようと思います。

上記リンク先の項目以外で追加したらいいと思われる質問などもしあればご意見下さい。
またおかしな文章があればその訂正などもお願いします。

よろしくお願いします。


p.s.
ちなみに四聖龍神録Plusのアンケート回答結果はこんな感じになっています。
http://dixq.net/sr/ank/enq.cgi?mode=kekka


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


Name: 組木紙織  ..熟練のプログラマー(57,974ポイント)   Date: 2008/08/03(日) 21:59   No:19542     
Title: Re:アンケートについて    
年齢を聞いているのに職業を聞いていることになっているのが気になります。
退職者をどのような意味に考えているのも気になります。(その他でいいような気がします。)

c言語歴に不明の欄が必要かな。
一応その他はあるけども。その他ってだいたいが不明だとおもうので。

言語にVBとVB.netを分ける必要があるとおもいます。(話によると別の言語らしいので)
LispとかMLとかの関数型の言語は無視ですか?(別に無視でもいいと思うけど)
SQLって確かリレーショナルデータベースを扱う言語だと記憶しているので、
他の言語と毛色が違うと思います。


言語の欄の[基本的な処理]の意味が人によって違うと思うので、もう少し明確にした方がいいんじゃないでしょうか?

普段の投稿の欄で
回答、質問、雑談と分けているが、
そのうちの2つを善くする人を考慮していないです。

掲示板の印象では
冷たいと、他人行儀と、はよく似てるので、分けるなら意味を分かりやすくくふうした方がいいかと。


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

Name: たかぎ [URL]  ..熟練のプログラマー(53,052ポイント)   Date: 2008/08/03(日) 22:13   No:19548     
Title: Re:アンケートについて    
> 言語にVBとVB.netを分ける必要があるとおもいます。(話によると別の言語らしいので)

そこまで厳密にしなくてもいいような気がします。
厳密な話を言い出すと、PHP4とPHP5は別物だとか、Perlもバージョンによって随分違うぞとかいうことになってきます。
当然アセンブラもアーキテクチャの記入欄が必要になるでしょう。

> LispとかMLとかの関数型の言語は無視ですか?(別に無視でもいいと思うけど)

その他があるのでまあいいでしょう。

> SQLって確かリレーショナルデータベースを扱う言語だと記憶しているので、
> 他の言語と毛色が違うと思います。

用途は特化していますが、その意味ではActionScriptなんかもそうなのでいいんじゃないですか?

ところで、「C言語を使って普段何をされていますか?」で、カーネルやライブラリをやっている人はその他なんでしょうかね(アプリケーションではないので)。
開発ツールを作っている人とかも(アプリケーションといえばいえなくもない)。


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

Name: 管理人 [URL]  ..伝説のハッカー(667,530ポイント)   Date: 2008/08/03(日) 22:19   No:19549     
Title: Re:アンケートについて    
ありがとうございます。
年齢を聞いているからには10代20代という区分がいいのでしょうけど、
例えば10〜19歳の区分と40〜49歳の区分は大きく違うと思いますのであのような区分になりました。
(10〜19歳は小学、中学、高校、大学が全て含まれるので)
ただこの区分の名前に職業と言う名前にするのは少し違うかな・・と思い年齢としましたが、
何かいい名前がありますかね?

退職者は、その通り退職された方かどうかが知りたいわけですが、
その他にすると、仮に小学生以前の人が居たとして(あまりいるとは思えませんが)、その人も含まれますし、
フリーターなども含まれると思いますので期待する区分にならないと思いました。

言語については私が気になった言語(に属するもの)を書いただけなので、
そういう追加のご意見をお聞きしたくこのトピを立てさせていただきました。
もし必要だとお感じでしたら追加いたします。

>基本的な処理

そうですね、私も思ったのですが、ただどのようにしたら具体的になるでしょうか。
1行か2行でかけそうな文章で具体化することが中々困難なのであのように成ってしまいました。
もしご意見があればお聞かせ願えると幸いです。

言葉のニュアンスの件明確化しようと思います。


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

Name: 管理人 [URL]  ..伝説のハッカー(667,618ポイント)   Date: 2008/08/03(日) 22:21   No:19550     
Title: Re:アンケートについて    
>たかぎさん

ありがとうございます。

>「C言語を使って普段何をされていますか?」

の回答項目の件了解しました。追加いたします。
もし他にも追加したらいいというご意見ございましたらお聞かせ願えると幸いです。


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

Name: 組木紙織  ..熟練のプログラマー(58,650ポイント)   Date: 2008/08/03(日) 22:48   No:19553     
Title: Re:アンケートについて    
厳密に言うと小学生、中学生も留年があったり、社会に出てから高校生をするということも可能なので、
職業欄で○学生を聞く&一般的な学生区分での実年齢を聞く、
の2つで対応することができると思います。

退職者よりその他の方がいいと思ったのは、
就職→退職→就職の場合は社会人兼退職者だよなと思ったのが理由です。
私の認識では学生と幼児以外は全部社会人であると考えているので、

1:現在職に就いている
2:現在は無職で、過去職に就いたことがある
3:一度も職に就いたことがない

が一番単純な社会人の分類と思っています。
(高校生兼退職者などの扱いの問題もありますが)

#プログラミング言語を扱う職に就いたことがある経験も聞いておくのもよいかと

>> SQLって確かリレーショナルデータベースを扱う言語だと記憶しているので、
>> 他の言語と毛色が違うと思います。
>
>用途は特化していますが、その意味ではActionScriptなんかもそうなのでいいんじゃないですか?

知ってたのがSQLだけだったので、あのような言い方になってしまいました。
私の知識不足です。

>>基本的な処理
私の場合、入門書を読み終えて、内容を理解して扱えるレベルが基本的な処理ができるレベルだと思っています。




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

Name: BCI-3e  ..中級者(14,609ポイント)   Date: 2008/08/03(日) 23:16   No:19556     
Title: Re:アンケートについて    
アンケートについては大歓迎です。
私もテストしようかと思ったんですが、その前にちょっと意見を^^
男女の比率を取って見たらいかがでしょうか。また、コンパイラの種類や
OS、メモリの搭載環境などの統計を取る事により、どんな人がどのような状況で
使っているかが詳しくわかり、今後、回答者側がより答えやすく、状況を把握
しやすいのでは無いかと思います。あとは、どのような参考書を読んだとか
今まで自分はこんなプログラムを組んだとか。こんな場所で配布中とか^^


追伸
スレ立てたときのnewのマーク変えてしまわれたんですね。
皆さんや管理人様がコレでもいいと言うのであれば私は何も言いません。
が、私個人としては前の方がよかったと言うより今のは、この掲示板に似合わないと思います。
せっかく大人の雰囲気・穏やかな感じが台無しになってしまいます。それと、目がマチマチとしますし;


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

Name: 管理人 [URL]  ..伝説のハッカー(667,766ポイント)   Date: 2008/08/03(日) 23:19   No:19558     
Title: Re:アンケートについて    
ご意見を元に少々改善しました。
また、具体的な職種は書くと選択肢がかなりの数になりそうなので、
その都度「その他」の欄に記入していただく事にしました。

では基本的な処理の部分は
「入門書を読み終え、基本的な内容を理解しているレベル」
としようと思いますが、ウェブで勉強して充分スキルがついている人もいると思いますし、
表現はもう少し要改善かもしれませんね・・。


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

Name: 管理人 [URL]  ..伝説のハッカー(667,622ポイント)   Date: 2008/08/03(日) 23:24   No:19559     
Title: Re:アンケートについて    
お〜いいですね、コンパイラなどの環境は知りたいところです。
早速追加します。

newアイコンは毎日変えようと思っています。
毎日同じだと飽きるので何かしら変化が欲しいなと思いまして。
とりあえず今日のうちに2回位変えてみますw

チラチラするのは確かにいやですね。
大人な雰囲気のアイコンの方がいいですかね。

ん、それもアンケートにw(いやいや)


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

Name: kazuoni  ..上級者(20,388ポイント)   Date: 2008/08/03(日) 23:50   No:19563     
Title: Re:アンケートについて    
すんません!!!
思いっきり回答してしまいました!!
申し訳ないです・・・
消してもらえますでしょうか・・・;;
ご迷惑をおかけします・・・


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

Name: 管理人 [URL]  ..伝説のハッカー(667,954ポイント)   Date: 2008/08/03(日) 23:51   No:19564     
Title: Re:アンケートについて    
いやいや、テストアンケOKですよ^^
ただ消えてしまうのでせっかく回答していただいても勿体無いというだけで^^;

旅からお帰りなさいw


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

Name: たかぎ [URL]  ..熟練のプログラマー(53,292ポイント)   Date: 2008/08/03(日) 23:51   No:19565     
Title: Re:アンケートについて    
> 基本的な処理

言語の習熟度を表す目安としては、

1. その言語を使って一通りのプログラムが書ける(特定分野の知識は除外)。
2. その言語を他人に教えることができる。
3. その言語を文章で解説できる。

といったところかと思います。
その意味では、1.を満たせるかどうかがボーダーラインでしょうね。
つまり、Hello, World!だけ書けても「基本的な処理を書ける」とはいえません。

ちなみに、相手の反応を見ながら説明できる2.より、3.の方がずっと難度が高いですね。
即答する必要があるという意味では2.の方が難しい気もしますが...


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

Name: YuO  ..上級者(22,418ポイント)   Date: 2008/08/04(月) 03:54   No:19586     
Title: Re:アンケートについて    
コンパイラにVisual StudioのStandard Editionがないですね。
ExpressとStandard以上とした方がよいかもしれません。
様々な拡張ツール系を入れられるかどうかの境ですし。

あと,言語だとJavaScriptがないですね。
Webベースにおけるクライアント側の基礎言語ですし,あってもよいのではないでしょうか。
# JavaScript/JScriptは「何をもって基本とするのか」の定義が難しいですが。


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

Name: 管理人 [URL]  ..伝説のハッカー(669,420ポイント)   Date: 2008/08/04(月) 04:37   No:19588     
Title: Re:アンケートについて    
ありがとうございます。

やはり基本的な処理という解釈と表現は難しいところですね。
「一通り」といったらその一通りとは何なのか・・とか言い出すとキリがないですしね・・。

コンパイラの件、追加・修正しておきました。
また言語も追加しておきました。
ありがとうございます。


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

Name: kazuoni  ..上級者(20,481ポイント)   Date: 2008/08/04(月) 10:51   No:19600     
Title: Re:アンケートについて    
・・・予断なんですが、四聖龍神録Plusは動画を見る→DLが圧倒的なんですね。ちょっと驚きました・・・

ニコ○コ強し...


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

Name: たかぎ [URL]  ..熟練のプログラマー(53,857ポイント)   Date: 2008/08/04(月) 11:37   No:19601     
Title: Re:アンケートについて    
> 「一通り」といったらその一通りとは何なのか・・とか言い出すとキリがないですしね・・。

特定分野の知識に依存しない「一通り」のプログラムであれば、基準は明確だと思います。
具体的には、仕様書さえあればどんなロジックやアルゴリズムでも実装できるということです。
例えば、仕様書で実現方法が明示してあれば、行列の演算をスクラッチで実装できることは要求していますが、DirectXのAPI等を使って実装する知識は要求していません。

> 一番よく使うコンパイラは?

VisualStudio等のバージョンやエディションまで選択肢にあるのはやりすぎでは?
逆に、そこまでやるのであれば、GCCは、Linux, Cygwin, MinGW等のホスト環境用のものそれぞれと、MIPS, ARM, H8, SH等のフリースタンディング環境用のものも列挙する必要があるでしょう。少なくとも、ターゲットの違いは、バージョンやエディションの違いより優先順位が高いはずです。


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

Name: バグ  ..ハッカー(103,436ポイント)   Date: 2008/08/04(月) 12:20   No:19603     
Title: Re:アンケートについて    
>>管理人さん
Borland C++ Developerは開発環境であって、コンパイラじゃないです(^_^;)


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

Name: 管理人 [URL]  ..伝説のハッカー(669,503ポイント)   Date: 2008/08/04(月) 13:09   No:19609     
Title: Re:アンケートについて    
>kazuoniさん
同じ動画を5万人が見る・・なんてすごい事だと思いますよ。
東京ドーム満員で5万人ですからあの量の人達が同じ動画を見てるのかと思うと・・。

>たかぎさん
なるほど、ではその表現を使わせていただきます。ありがとうございます。
VisualStudioのバージョンがかいてあるのは、龍神録プログラミングの館で配布するサンプルを何の
バージョンにあわせてプロジェクトを作ればいいかその判断材料が欲しかったからです。
またGCCが1種類なのは選択項目が多くなってみにくくなるという短所を負っても
GCCの違いを示す選択項目を増やす利点があるのかなと思ったのです。
GCCのその選択肢を作って回答を得てそれが今後の掲示板の回答等の何かよい判断材料になると
思われる場合は追加しようと思います。

>バグさん
なるほど、了解です^^;


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

Name:  ..プログラマー(35,095ポイント)   Date: 2008/08/04(月) 13:26   No:19614     
Title: Re:アンケートについて    
>一日の平均プログラミング時間は?

ですが、僕は複数回答が欲しいです。
するときは何時間もしますが、しない時は全くしていません。
平均と言われても、分からないです。

>掲示板の印象についてどう感じましたか?

ですが、僕は親切な方が多いと感じますが、アットホームと言われても
さっぱり分かりません。
アットホームとはどんな感じなのでしょうか?
良い意味そうなのが一番上だけと感じますが…良い感じのをもう少し増やしてみてはどうでしょうか?
または複数回答にしてみるとか…

□アットホームな感じがした
■温かい感じがした
■親切である
□他人行儀過ぎる気がする

□:空
■:チェック入り


>基本的な処理がかけるレベル以上の言語(の類)は何ですか?

ですが、リンクでの詳しい説明をつければここの欄は短くならないでしょうか?
お手数とは思いますが、この問題が分かる人はこの辺〜みたいな・・・
それと、Cでの基本的な処理がかけると、C++での違いは何なのでしょうか?
クラスぐらいでしょうか?

>C/C++歴は?

ですが、どう数えるのでしょうか?
毎日やって一年たった、学校で1年間やったと、夏休みと冬休みだけやったけど始めてからは一年以上たっている
だと、かなり違う気がしますが・・・
どうなんでしょうか?

>普段の主な投稿は?
すごい低レベルな回答(ぼくが良くしてます(゜Д゜;A)でも、回答にして良いのでしょうか?

>C言語を使って普段何をされていますか?
学校でしているがいるのではないでしょうか?


それと、全体的にですが、複数回答用のチェックボックスは上から一列にするのは違う気がします。
色々なアンケート用紙でも、横に並んでいることが多々あります。

#どう答えようと思ったところを質問させてもらいました〜www


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

Name: 管理人 [URL]  ..伝説のハッカー(670,736ポイント)   Date: 2008/08/04(月) 13:33   No:19617     
Title: Re:アンケートについて    
ありがとうございます。

>一日の平均プログラミング時間は?

つまりこの項目のほかに週に何日程度プログラミングをするかという選択肢がいるということですね?
例えば週に1日しかしないがその日7時間するという場合は1時間に選択して下さい。

>掲示板の印象についてどう感じましたか?

アットホームって言葉普段使いませんかね?
出来るだけわかりやすい表現を使おうと思います。

>C/C++歴は?

この件はもう少し明確に書こうと思います。

>普段の主な投稿は?

回答をされている場合は回答を選択していただけると助かります。

>C言語を使って普段何をされていますか?

了解です。

>複数回答用のチェックボックスは上から一列にするのは違う気がします

横に並ぶより縦に並んだ方が見やすくないでしょうか?


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

Name: KEV  ..かけだし(2,146ポイント)   Date: 2008/08/04(月) 18:00   No:19630     
Title: Re:アンケートについて    
いくつか思ったことを言います。

1.性別のその他の欄はいらないと思う。

2.あなたの具体的な職業は?の欄について
職業プログラマの数も気になるところだけど、
大学や専門学校で情報処理を学んでいる人がどれくらいいるかも知りたいかも。
そうすると質問の仕方が少し変わってしまうけど。
けど、このままだと学生はみんな「社会人ではない」にチェックしちゃって、
あまりいいデータにならないかも?と思う。

3.↓まだ回答されませんようお願いします
やるなと言われたらやりたくなるよね('/n')
してないけどw


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

Name: 管理人 [URL]  ..伝説のハッカー(672,543ポイント)   Date: 2008/08/04(月) 18:36   No:19636     
Title: Re:アンケートについて    
1、
「その他」はどの項目にも自動的に付くから^^;

2、
なるほど、追加しておきますm(_ _)m

3、
テスト回答はOKっすよ〜☆
すぐ消えるけど^^;


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



Name: さくらんぼ  ..ぴよぴよ(31ポイント)   Date: 2008/08/01(金) 21:40   No:19337       
Title: 夏休みの宿題(他)    
パンダのからだの表面の様子・子の作り方・運動の仕方を教えてください!!!

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


Name: array  ..入門者(3,930ポイント)   Date: 2008/08/01(金) 22:14   No:19338     
Title: Re:夏休みの宿題(他)    
 夏休みの宿題ですか、とりあえずgoogleやwikiを使って調べようとしたのですが、役に立つ情報は見つかりませんでした。
 真面目にやる気があるなら、動物園に足を運び飼育員さんに聞いた方がより良い回答を得られると思います。


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

Name: 管理人 [URL]  ..伝説のハッカー(656,632ポイント)   Date: 2008/08/01(金) 22:21   No:19339     
Title: Re:夏休みの宿題    
おぉ〜何だか夏休みらしいトピが増えてきましたね〜^^;
これは小学校か何かの宿題ですか?

私も調べてみましたが、ホントになかなか参考になりそうなサイトが無いですね。
もう少しちょっとググってみます。


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

Name: 管理人 [URL]  ..伝説のハッカー(656,891ポイント)   Date: 2008/08/01(金) 22:41   No:19342     
Title: Re:夏休みの宿題    
年齢によってどの程度回答すればいいかの分かれると思うので、
年齢を伺ってもいいですか?
小学校なら普通にパンダの様子を少し調べた程度書けばいいと思いますが、
高校とかなら現地にいったりして詳しく調べる必要や、専門書を読む必要があるかもしれません。
まぁ大学でこんな宿題は出ないと思いますが。。大学とかならもっともっと専門的な話になると思うので、
それこそ専門書を頼る事になると思います。

とりあえずネット上で参考になりそうなサイト・・

http://www.nhk.or.jp/special/onair/070521.html

http://www.google.co.jp/search?hl=ja&q=%E3%83%91%E3%83%B3%E3%83%80%E3%80%80%E5%AD%90%E8%82%B2%E3%81%A6&lr=

http://j.people.com.cn/2002/06/26/jp20020626_18530.html

http://www.google.co.jp/search?hl=ja&q=%E3%83%91%E3%83%B3%E3%83%80%E3%80%80%E4%BA%A4%E5%B0%BE&lr=

そしてとりあえずパンダで・・

http://www.google.co.jp/search?q=%E3%83%91%E3%83%B3%E3%83%80&hl=ja&lr=&sa=2



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

Name:  ..ぴよぴよ(402ポイント)   Date: 2008/08/02(土) 08:40   No:19363     
Title: Re:夏休みの宿題    
みなさんいろいろな回答ありがとうございます。
本などつかってもっとしらべてみようと思います。
 
管理人さん>歳わ2です。いろいろなサイトをみつけてくれてありがとうございます。


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

Name: 管理人 [URL]  ..伝説のハッカー(658,343ポイント)   Date: 2008/08/02(土) 09:30   No:19365     
Title: Re:夏休みの宿題    
なるほど、中間ですか・・、
うーんと、そうですね〜、
やはりネットで探し、図書館などで探し、それでも情報が見つからなかったら動物園とかに出向いてみるしかないかもしれませんね。
もしくは、パンダの成長とかを紹介したDVDとかがあると思うのでそういうのを購入するのも手かと思います。
他には動物を専門とする教授に調べ方聞いてみるとか方法はあるかもしれませんが、
なかなか中学生が突然どこかの教授に質問するのは難しいかもしれませんね・・。


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

Name: たかぎ [URL]  ..熟練のプログラマー(52,063ポイント)   Date: 2008/08/02(土) 13:08   No:19375     
Title: Re:夏休みの宿題    
> 歳わ

中学生らしくない間違いですが...

まずは近くの動物園に電話するのが一番でしょうね。
「夏休みの自由研究で」とでもいえば、会ってくれるかもしれません。

パンダのことも大事ですが、そうしたやり取りが一番勉強になる気がします。
ネットや事典で調べるだけでは得られない貴重な社会経験になるでしょう。


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

Name: やそ  ..比類無きプログラマー(81,157ポイント)   Date: 2008/08/02(土) 20:50   No:19390     
Title: Re:夏休みの宿題    
おつかれっす。

パンダときては黙ってられないぜ!(ウソ)

まあまあ、参考になりそうなサイトを見つけたのでどうじょ^^

http://animals.web.infoseek.co.jp/mammals/giant_panda001.html

http://www.panda-panda.com/gekkan/index.html

そういえばかの有名な「宮崎 駿」氏の初期の作品には「パンダ・コパンダ」というのがあった(それだけw)


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

Name: たかぎ [URL]  ..熟練のプログラマー(52,452ポイント)   Date: 2008/08/02(土) 21:44   No:19391     
Title: Re:夏休みの宿題    
パンダには、ジャイアントパンダとレッサーパンダの二種類がありますので、それらの比較を行うとよいかもしれませんね。
ついでに、パンダの故郷であるチベットのことについて調べるのもよいかも。


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

Name: もも  ..かけだし(1,673ポイント)   Date: 2008/08/02(土) 23:30   No:19401     
Title: Re:夏休みの宿題    
みなさんぁりがとぅござぃました!!!
やそsのサイトをみて解決できましたぁ!!!

たかぎs>間違ぃって「歳わ」の「わ」のことですかぁ!?
     ゎざとですょ(笑
     最近の中高生ゎあ〜やってかくんです☆


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

Name: BCI-3e  ..中級者(11,876ポイント)   Date: 2008/08/02(土) 23:35   No:19402     
Title: Re:夏休みの宿題    
投稿の文字がいけないのかエラーが出たのでテキストを添付しておきますね。
調べたら私の知識なんかよりはるかに情報が集まっているかもしれませんが;
読んで見て損は無いと思います;


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

Name: 通りすがり  ..中級者(10,721ポイント)   Date: 2008/08/02(土) 23:35   No:19403     
Title: Re:夏休みの宿題    
>最近の中高生ゎあ〜やってかくんです

いやわざとなのはみんな解っていますが、
中学生同士のメールでのやり取りならともかく、
大人も含めた社会の一つである場では、
きちんとした日本語を書くべきだということを暗に意味されているのでしょう。

TPOといって、(Time,Place,Occasion)
その時や場所、場合などで自分の言葉使いや態度は使い分けるのが大人の社会での基本ルールです。


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

Name: BCI-3e  ..中級者(11,961ポイント)   Date: 2008/08/02(土) 23:38   No:19405     
Title: Re:夏休みの宿題    
たかぎさん、おっちゃんだ〜
と言うのは冗談で(汗
さくらんぼさん、名前をコロコロ変えない。
オトナには警護を使うのが基本です。
そんな言葉使いでは、高校の面接は確実に不合格ですよ^^


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

Name: 管理人 [URL]  ..伝説のハッカー(658,996ポイント)   Date: 2008/08/03(日) 00:45   No:19410     
Title: Re:夏休みの宿題    
若い文章ですね〜^^;
とりあえずここは中学生同士の話の場ではなく、
目上の人が集まっている場所なのですから敬語はきちんと使って
正しい日本語を書いて下さいね。
また、お名前は一つのお名前を使い続けていただくのがここの規約です。

>BCI-3eさん
>オトナには警護を使うのが基本です。

なるほど、SPでも付けましょうか(ノ▽`)b
(冗談です


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

Name: たかぎ [URL]  ..熟練のプログラマー(52,517ポイント)   Date: 2008/08/03(日) 02:04   No:19420     
Title: Re:夏休みの宿題    
> いやわざとなのはみんな解っていますが、
> 中学生同士のメールでのやり取りならともかく、
> 大人も含めた社会の一つである場では、
> きちんとした日本語を書くべきだということを暗に意味されているのでしょう。

そういうこと。

相手のことを考えずに自分の流儀で書けばよいのであれば、初心者相手にでもまったく配慮のない文章を書きます。
その方が楽ですからね。


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

Name: BCI-3e  ..中級者(11,924ポイント)   Date: 2008/08/03(日) 02:32   No:19424     
Title: Re:夏休みの宿題    
残念ながらもういます^^;
以外に、家があれな物で><
うっとおしいったらありゃしないんですよね;
学校帰りに友達とマックとかカラオケとか自由に遊んで回りたい・・・・・・・


と、愚痴はさておき・・・・・・・・
なんだか受け入れられてる??????
ものすごくウレシ〜です。皆さんのお役に立て無いのにスレつけて
ポイント稼いでるようで・・・・申し訳ない。
毎回真剣なことしか言わないから冗談言われるのが新鮮。
これからどんどんボケていきますよ(半冗談

と、何ヶ月か掲示板で触れ合って初めて冗談や信頼関係ができるのです。
何を言ってもいいなら私も怒鳴っていることでしょうが、それを押さえて
できるだけ相手にわかりやすく、ためになる事を書こうと努力する。
そういう態度をそれ相応に返すのが今の中学生に欠けているところでしょう。
インタネット内と言えども子供よりオトナの方がはるかに多い。
家の中にいながら大人と同等の立場であり、子供だから、と言葉遣いを変えなくていい
と言うわけで無いのです。それを理解したほうが今後人間関係もスムーズになりますよ^^


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

Name: 管理人 [URL]  ..伝説のハッカー(660,499ポイント)   Date: 2008/08/03(日) 03:06   No:19427     
Title: Re:夏休みの宿題    
私は高校の時は田舎で周りに何も無かったのでそういう悩みもあまりありませんでしたw
マックなんてチャリで往復6時間位かかるんじゃないかと思われます・・。
行こうとも思いませんがw
まぁ始発で行って、終電までクラブやってたんで行く暇も無かったですけど^^;

うちも親が厳しかったので、うるさかったですねぇ・・。
その反動で大学生になってからというもの毎日朝帰r・・(ry

>インタネット内と言えども子供よりオトナの方がはるかに多い。

これを見て思ったんですけど、今まで大半は大学生がここを利用していると思ってたんですが、
どうも高校生や中学生も多いようです。
そこで龍神録のアンケートフォームみたいなの使ってアンケートやってみようかなと考えてみました。

中々興味深いデータが出てくるかもしれません。
ちと、ちゃんと考えて本格的にやるなら別トピ立ててみます。


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

Name: <kor  ..かけだし(1,430ポイント)   Date: 2008/08/04(月) 17:43   No:19628     
Title: Re:夏休みの宿題    
>>管理人様
さりげなく「敬語」が「警護」になってますよ(*^^)
私も変換ミスが結構多くて苦労しますよorz
特に、東方系の名前だとそれはもう(ry

>どうも高校生や中学生も多いようです。
もし小学生なんかもやってるっていうデータがとれた日本のパソコンの未来は明るい気がする・・・のはわたしだけ?


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

Name: 管理人 [URL]  ..伝説のハッカー(672,511ポイント)   Date: 2008/08/04(月) 18:35   No:19635     
Title: Re:夏休みの宿題    
>警護

いやそれはBCI-3eさんの文章に突っ込みを入れただけです^^;

>小学生

龍神録のアンケートにも年齢の項目作ればよかったですね・・。
先日やってたハンゲ、相手が何歳か聞いてみると9歳だといってました。
今9歳の子と普通に遊んでるのかと思ったらなんか複雑な気持ちに^^;


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



Name: <kor  ..入門者(4,231ポイント)   Date: 2008/07/31(木) 09:27   No:19248       
Title: 14章の弾幕について。    
どうも。相変わらず警告1つでびっくりしている<korです。
STG開発もだんだん本格的になり、意味はほとんど理解していないけどなんとか14章まで進められました。

そこで、14章の弾幕の作り方を詳しく教えていただけませんか?どうにもあそこを見ただけではよくわからなかったのでorz
基本的な簡単なのを1つ作れればいいのでどうかよろしくお願いします。


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


Name: 管理人 [URL]  ..伝説のハッカー(653,944ポイント)   Date: 2008/07/31(木) 16:26   No:19269     
Title: Re:14章の弾幕について。    
すみません、中々館の製作が出来ずにいます(T_T

14章の前に、13章の方は理解されましたか?


void shot_bullet_H000(int n){
int k;
if(shot[n].cnt==0){//弾幕が始まって0カウント目
//敵が倒されていなくて、探した登録可能な弾番号が有効なら
if(shot[n].flag!=2 && (k=shot_serch(n))!=-1){
shot[n].bullet[k].knd =enemy[shot[n].num].blknd2;//弾の種類
shot[n].bullet[k].angle =shotatan2(n);//角度
shot[n].bullet[k].flag =1;//フラグ
shot[n].bullet[k].x =enemy[shot[n].num].x;//座標
shot[n].bullet[k].y =enemy[shot[n].num].y;
shot[n].bullet[k].col =enemy[shot[n].num].col;//色
shot[n].bullet[k].cnt =0;//カウンタ
shot[n].bullet[k].spd =3;//スピード
se_flag[0]=1;//弾の発射音フラグを立てる
}
}
}


これは000番の敵の弾幕関数ですよね。
弾幕が開始されてから0カウントに1発だけ自機に向かってとんでくるという
極基本的な弾幕です(コレくらいじゃ弾幕とは呼べませんが)

まずこの関数が呼ばれるまでのいきさつは大丈夫でしょうか?

エクセルから敵の出現データをとってきて、
敵の出現データを制御し、もし、今のカウントが出現カウンタなら、
敵を出現させ、持っている出現データをその敵に渡します。
敵が持っている「何カウント目に弾幕を開始するか」というデータが
今のカウントと一致したら弾幕を開始します。
どの弾幕を開始するかは
shot[i].knd
に入っています。

それを踏まえたうえでうえを見て行きましょう。

shot[n].cnt

は弾幕が開始されてからのカウント数が入ります。
60FPSで動作しているなら、60カウントで1秒になります。

shot[n].flag!=2

ショットのフラグは2の状態は敵が倒されたと言う事です。
敵が倒されてもなおかつそこから弾幕が発射されているのはおかしいので、
敵が倒されたらそれ以上発射はさせません。

(k=shot_serch(n))!=-1

これはショットの登録番号を取得するわけですが、-1だと登録できないことを示すので登録をさせるか
わけています。kには登録可能番号が格納されます。

後は、どんな弾で、どの角度で、どのスピードで・・・とかいうことを指定してやれば
計算部が勝手にそれを計算してくれます。

14章では7種類の弾幕関数が作ってありますが、どの辺がわかりませんか?

じゃここで一つ宿題です。

000関数の弾幕関数は現在0カウント目に1発発射するだけでした。
これを
1、1秒間に6回発射するように変更しましょう。
2、それをさらに自機依存した3way弾にしましょう。

と言われたら出来ますか?


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

Name: <kor  ..ぴよぴよ(151ポイント)   Date: 2008/08/01(金) 00:43   No:19306     
Title: Re:14章の弾幕について。    
とりあえず、1のほうはできました。(14章のshot_bullet_H001を少し変えただけなんですがこれでいいですか?)

void shot_bullet_H002(int n){
int t=shot[n].cnt;
int k;
if(t>=0 && t<60 && t%10==6){
if(shot[n].flag!=2 && (k=shot_serch(n))!=-1){
shot[n].bullet[k].knd =enemy[shot[n].num].blknd2;
shot[n].bullet[k].angle =shotatan2(n);
shot[n].bullet[k].flag =1;
shot[n].bullet[k].x =enemy[shot[n].num].x;
shot[n].bullet[k].y =enemy[shot[n].num].y;
shot[n].bullet[k].col =enemy[shot[n].num].col;
shot[n].bullet[k].cnt =0;
shot[n].bullet[k].spd =3;
se_flag[0]=1;
}
}
}


2のほうですけど、弾を横に3つ並べて表示して、真ん中のを自機狙いにさせるのはわかるのですが、
どうすれば横に並べることができるのでしょうか?
上の(1)のことも含めてよろしくお願いします。


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

Name: array  ..入門者(3,770ポイント)   Date: 2008/08/01(金) 01:05   No:19307     
Title: Re:14章の弾幕について。    
気になったので

>if(t>=0 && t<60 && t%10==6){
t%10 == 6で発射されました?
(t%10 == 0の方が良いんじゃないかと思った)

後の処理で、shot[n].cnt=0の時に、少なくとも1つ以上shot[n].bullet[k].flag=1になってないと。
shot[n].flagを0にもどしてしまう処理があったと思うのですが。大丈夫なのかな・・・。

上記が大丈夫なら、私が言うのもあれですけど(1)は大丈夫だと思います。

>どうすれば横に並べることができるのでしょうか?
14章のshot_bullet_H004を参考にすれば良いと思います。forを使って3個を一気に描画、iの変化を利用してこの場合angleを工夫すれば3Wayの発射もできると思います。

あ、角度をつけないならshot[n].bullet[k].xを工夫すれば大丈夫です。


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

Name: 管理人 [URL]  ..伝説のハッカー(655,970ポイント)   Date: 2008/08/01(金) 02:05   No:19308     
Title: Re:14章の弾幕について。    
><korさん
いいですね^^
ただ、arrayさんの仰るように
t%10==6
である必要はなく、
==0
の方がいいかもしれません。
別に6でもいいんですが、何か見直した時に
6回発射する「6」とあまりの「6」とは全く関係ないので何か誤解する危険があります。

横に並べるんじゃなくて、発射場所は同じで角度を微妙に変えるんです。

0番は自機狙い角度より-PI/10の角度、
1番は自機狙い角度、
2番は自機狙い角度より+PI/10の角度、

という3種類を撃たせてみて下さい。
ヒントは、1回に3発撃たせないといけないからfor文が必要です。
そして、angleの数値をうまいこと変更させてやればOKです。

下に答えは書いておきますが、まずは見ずにやってみて、
答え合わせをしてみて下さい。


>arrayさん
STGの館のサンプルだとそうなってたかもしれません。
龍神録の館のサンプルだと敵がいる間は弾が一つもなくても弾幕データは消えませんので、
敵が存在している間はショットを撃たなくても大丈夫です。
敵がいなくなったら画面に弾がなければ計算する必要もないので、消えてしまって大丈夫ということで
そのようにしています。


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

Name: 管理人 [URL]  ..伝説のハッカー(656,325ポイント)   Date: 2008/08/01(金) 02:08   No:19309     
Title: Re:14章の弾幕について。    


変更したのは赤の部分だけです。

//自機依存3way
void shot_bullet_H000(int n){
int t=shot[n].cnt;
int k;
if(t>=0 && t<60 && t%10==6){
for(int i=0;i<3;i++){
if(shot[n].flag!=2 && (k=shot_serch(n))!=-1){
shot[n].bullet[k].knd =enemy[shot[n].num].blknd2;
shot[n].bullet[k].angle =shotatan2(n)-PI/10+PI/10*i;
shot[n].bullet[k].flag =1;
shot[n].bullet[k].x =enemy[shot[n].num].x;
shot[n].bullet[k].y =enemy[shot[n].num].y;
shot[n].bullet[k].col =enemy[shot[n].num].col;
shot[n].bullet[k].cnt =0;
shot[n].bullet[k].spd =3;
se_flag[0]=1;
}
}
}
}


 


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

Name: <kor  ..ぴよぴよ(617ポイント)   Date: 2008/08/03(日) 11:01   No:19450     
Title: Re:14章の弾幕について。    
ありがとうございます。3way弾できました。
ところで、
-PI/10+PI/10*i
の部分って
-PI
が自機−10で、
10+PI
が自機
10*i
が自機+10であってますか?
ここがわかれば2wayとか5wayもできる気がするんですが。


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

Name: array  ..初心者(8,174ポイント)   Date: 2008/08/03(日) 11:19   No:19452     
Title: Re:14章の弾幕について。    
その考えであってると思います。ただ+10という表現は可笑しいので、PI=180° PI/10=18°というのは認識しているのでしょうか、-PI/10を記述しないでPI/10*iだけだと、自機から左に2個飛び出る変な形になります。

shot[n].bullet[k].angle =shotatan2(n)-PI/10+PI/10*i;



shot[n].bullet[k].angle =shotatan2(n)+PI/10*(i-1);

でも同じ動作をするわけです(あたりまえですけどw)

iは0→1→2の順なので順を追って説明しておきます。


i=0-1=-1



shotatan2(n)-PI/10


i=1-1=0



0をかけると0なので

shotatan2(n)

だけになります。


i=2-1=1



shotatan2(n)+PI/10

になります。


私はこっちの考えの方が分かりやすいのですが、逆に混乱するかな^^;
分かりやすい考え方で自分なりに理解すると良いですよ


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

Name: 管理人 [URL]  ..伝説のハッカー(664,557ポイント)   Date: 2008/08/03(日) 12:53   No:19457     
Title: Re:14章の弾幕について。    
arrayさん、助かります^^;
特に私が付け加える必要が無いほど詳しく回答して下さいましたm(_ _)m

>ここがわかれば2wayとか5wayもできる気がするんですが。

その通りです。18°つまりPI/10間隔のNway弾は以下のように作れます

1way ループ1回
shot[n].bullet[k].angle =shotatan2(n)-PI/10*0+PI/10*i;
2way ループ2回
shot[n].bullet[k].angle =shotatan2(n)-PI/20*1+PI/10*i;
3way ループ3回
shot[n].bullet[k].angle =shotatan2(n)-PI/10*1+PI/10*i;
4way ループ4回
shot[n].bullet[k].angle =shotatan2(n)-PI/20*2+PI/10*i;
5way ループ5回
shot[n].bullet[k].angle =shotatan2(n)-PI/10*2+PI/10*i;

何か法則が見えてくるのがわかりますか?
これは変に一般式にするよりサンプルを見ながら覚える方が楽なんですよね。


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

Name: <kor  ..かけだし(1,109ポイント)   Date: 2008/08/03(日) 18:45   No:19506 解決!     
Title: Re:14章の弾幕について。    
ん〜…何となく法則とかが見えてきました。
というわけで、復習も兼ねて7way弾作ってみました(なんで7だ・・・)

//自機依存7way
void shot_bullet_H000(int n){
int t=shot[n].cnt;
int k;
if(t>=0 && t<60 && t%10==0){
for(int i=0;i<7;i++){
if(shot[n].flag!=2 && (k=shot_serch(n))!=-1){
shot[n].bullet[k].knd =enemy[shot[n].num].blknd2;
shot[n].bullet[k].angle =shotatan2(n)-PI/10*3+PI/10*i;
shot[n].bullet[k].flag =1;
shot[n].bullet[k].x =enemy[shot[n].num].x;
shot[n].bullet[k].y =enemy[shot[n].num].y;
shot[n].bullet[k].col =enemy[shot[n].num].col;
shot[n].bullet[k].cnt =0;
shot[n].bullet[k].spd =3;
se_flag[0]=1;
}
}
}
}

流石にこれいじょうのNwayは使わないような気がしたのでNwayはこのくらいにしておきます。(7wayまであれば十分ですよね?)

どうもありがとうございました。<m(__)m>


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

Name: 管理人 [URL]  ..伝説のハッカー(667,153ポイント)   Date: 2008/08/03(日) 19:02   No:19509     
Title: Re:14章の弾幕について。    
いやいや、案外使うものですよ^^
ケロちゃん風雨に負けずの上にザラザラ発射する弾は8wayでした

http://dixq.net/rp/30.html

風神録のEXに30way位の弾幕も出てきますし。
・・とまぁ実用的かどうかはおいておくとしてもいい勉強になったと思います。
これからも頑張って下さい☆


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

Name: array  ..中級者(9,429ポイント)   Date: 2008/08/03(日) 19:05   No:19511     
Title: Re:14章の弾幕について。    
>というわけで、復習も兼ねて7way弾作ってみました(なんで7だ・・・)

課題が自機依存なので奇数という着眼がグッドですよw


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

Name: <kor  ..かけだし(1,191ポイント)   Date: 2008/08/04(月) 08:52   No:19593     
Title: Re:14章の弾幕について。    
>風神録のEXに30way位の弾幕も出てきますし
えっ・・・30wayですか^^;そこまで来ると何か想像できないです。

ゲームはまずは1面だけつくって「未完成版」としてテスト配布するので5wayくらいあればいいかなと思いました。(それ以上やると1面なのに密度が異常に・・・)


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

Name: 管理人 [URL]  ..伝説のハッカー(670,399ポイント)   Date: 2008/08/04(月) 13:18   No:19611     
Title: Re:14章の弾幕について。    
「未完成版」って言うと何だか聞こえが悪いので
「α版」とか「体験版」って名前にしてはどうでしょうw


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

Name: 管理人 [URL]  ..伝説のハッカー(670,439ポイント)   Date: 2008/08/04(月) 13:26   No:19615     
Title: Re:14章の弾幕について。    
>30wayの件
こういう弾幕は「way」とは言わないのかもしれませんが、それっぽいのをご紹介w

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

1:48付近からです


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

Name: <kor  ..かけだし(1,307ポイント)   Date: 2008/08/04(月) 17:29   No:19625     
Title: Re:14章の弾幕について。    
未完成版のほうは、一応名前を未完成からαverとして配布する予定に。(と言いつつ全然できてないorz)

30way弾ってこれでしたか。風神録はもってるので、てっきりケロちゃんの「手長足長さま」かと…
って今思えばあれって30以上ありそう( 一一)


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

Name: 管理人 [URL]  ..伝説のハッカー(672,045ポイント)   Date: 2008/08/04(月) 18:25   No:19631     
Title: Re:14章の弾幕について。    
もっとありそうですね〜、ただこうなるともうwayとは言わないかもしれませんね^^;
円形発射というか。


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

Name: めいらる  ..ぴよぴよ(509ポイント)   Date: 2008/08/04(月) 18:29   No:19632     
Title: Re:14章の弾幕について。    
やったことありますが360way以上にするともはや壁に…
小型の弾じゃないと不可避になったりしますw


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

Name: 管理人 [URL]  ..伝説のハッカー(672,396ポイント)   Date: 2008/08/04(月) 18:33   No:19634     
Title: Re:14章の弾幕について。    
360・・w
AA弾幕はだいたい2000〜4000個位の弾で作ってます。
あまり弾が多すぎると軌道計算の為にCPUの処理が重くなりそうですねw


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



Name: ROL  ..初心者(5,396ポイント)   Date: 2008/08/04(月) 13:04   No:19607       
Title: アニメーションについて    
がんばって勉強しながらテクテクピクミンを歩かせているROLです^^
今回、少し疑問に思った事があったので質問させてください。

最近エミュレーターと言うものを使って懐かしのスーファミをプレイしてて
思った事なのですが・・・・・・・あのアニメーションはC言語でもできるのでしょうか?
たとえばボンバーマンのOPとか。星のカービーのクリア時のアニメーションとか。
すべて座標の入れ替えとか回転などでできるのであればどんな仕組みになっているのか教えてください。
「自分でもかわいいの作れたら」と思いますので。


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


Name: ROL  ..初心者(5,518ポイント)   Date: 2008/08/04(月) 13:09   No:19608     
Title: Re:アニメーションについて    
あと、コレもプログラミング言語でできているのかな〜と思うものが
あるので、添付したいのですが圧縮形式の物は添付できないんですね;
ISDNなので添付に1時間とかざらにあるので、ZIPファイルを添付できる
ようにしていただけるとありがたいです。


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

Name: 管理人 [URL]  ..伝説のハッカー(670,371ポイント)   Date: 2008/08/04(月) 13:16   No:19610     
Title: Re:アニメーションについて    
エミュレータを使ってスーファミをプレイしていると言うと世間から攻撃される場合があるので
あまりそういう事は公に言わない方がいいかもしれません^^;
ROM等を自分で用意したのならいいのですが。
(データを吸い出す作業をメーカーが許可しているかどうか知りませんが)

で、OPのことですが、出来ますよ。
単に複数画像を入れ替えたり座標を変えたりしているだけですよね?
口を閉じてる画像、開いてる画像、を交互に入れ替えたら口パクしてるように見えますし
バットでスイングしてる画像を5枚位にわけて保存しておけば
それを連続で表示すればスイングしてるように見えます。
それらを駆使すればだいたい作れると思います。
まぁOPを作るには画像を沢山かかないといけませんね・・。

スーファミレベルのゲーム内で起きてる事は全部プログラムで出来ますよ。
3DとかFFのムービーレベルになるとそういう専用のモデリングソフトやモーションキャプチャなどが必要になってくるとは思いますが。


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

Name: ROL  ..初心者(5,575ポイント)   Date: 2008/08/04(月) 13:27   No:19616     
Title: Re:アニメーションについて    
なるほど、なら絵をたくさん書かないといけませんね^^
最近は無料のお絵かきツールが高性能化しているので
いろ塗りやラインを少しずつ動かすなどは簡単にできそうです。
がんばって作って行こうと思うので困ったらサポートよろしくお願いします。
ありがとうございました。


>エミュレータを使ってスーファミをプレイしていると言うと世間から攻撃される場合があるので
>あまりそういう事は公に言わない方がいいかもしれません^^;
私は法律に触れる事は嫌いなので、すべて許容範囲内でやっています。
去年ぐらいにコントローラーの製造もストップしてしまいましたから、
これから長く遊ぶためには必用な事では無いかと思います。


でも、やっぱりPCでやるより本体が一番ですよね^^
コントローラーの線が短いのがなんとも、、、、、
バグった時の音も懐かしい〜と思いながら腹立てたり。
以後、言葉には気おつけます;


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

Name: 管理人 [URL]  ..伝説のハッカー(671,026ポイント)   Date: 2008/08/04(月) 13:40   No:19618     
Title: Re:アニメーションについて    
基本PCでスーファミをプレイしていると言うと、海外のサーバーにたてた違法サイトから
DLしてきたと思われると思いますのでm(_ _)m

お絵かきソフトは沢山ありますね〜。
画像加工ソフトで言えばGIMP2とか普通にadobeの製品と同じ位の高機能で無料なのでオススメです。

>コントローラーの線が短いのがなんとも、、、、、

それはコードが短いコントローラーを使っているからでは^^;
私はいつもコンバータを使っています。
PS2のコントローラーをPCのUSBにつなげられるようにするものです。
http://www.amazon.co.jp/%E3%82%A8%E3%83%AC%E3%82%B3%E3%83%A0-ELECOM-JC-PS101USV-USBtoPS%E3%82%B2%E3%83%BC%E3%83%A0%E3%83%91%E3%83%83%E3%83%89%E3%82%B3%E3%83%B3%E3%83%90%E3%83%BC%E3%82%BF/dp/B00008B3NI
結構安く売ってますし、大きな電気ショップならあると思います。
龍神録系のゲームは中々キーボードじゃ難しいので重宝してます。


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

Name: ROL  ..初心者(6,013ポイント)   Date: 2008/08/04(月) 14:50   No:19619     
Title: Re:アニメーションについて    
あ、私の説明不足ですね^^;
PCのコントローラーは長い物を使っています。パッドを;
龍神録系はパッド不使用では不可能です;
スーファミ本体で遊んでいるときの事です。ちょっとした振動なんかでバグったり
コントローラーのコード自体が短かったり。立体性がなかったり。レトロな感じがいいんですよね。
ファミコンとかも、あの性能の割に大きい本体とか^^

>基本PCでスーファミをプレイしていると言うと、海外のサーバーにたてた違法サイトから
>DLしてきたと思われると思いますのでm(_ _)m
私はほぼずべてのソフトを持っているのでわざわざダウンロードするのがめんどくさい^^;
自分で吸い出すワクワクした気持ちがまた、いいんですよね。

それから最近は、USB端子のファミ・スーファミ・64などのパッドも売られているようです。
でも、アナログテレビで音がレトロ、小さい目のコントローラー。ドラクエでどれだけ徹夜したことか^^

っと話がそれましたがGIMP2はPC初めて1ヶ月で見つけました。
私は、イラスト製作が好きなので重宝しています。トーン作れたりもしますから
どれほど助かっているか。トーンは単行本1冊に20種類ぐらいは使われていると思います。
なので、20枚×500円で1万円。完成するかわから無いものにそれだけ使うのは・・・ね^^;

それからもうひとつ疑問なのですが、動画をCで作ったとして。
・ゲーム自体に動画ソースを組み込んでしまう。
・MPGなどに動画を変換して描画する。
この二つではどちらがメモリを節約できるのでしょうか?
また、後者の場合アプリ動画をMPGに変換するにはどのような方法があるのでしょうか?
教えていただけるとうれしく思います。


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

Name: 管理人 [URL]  ..伝説のハッカー(671,997ポイント)   Date: 2008/08/04(月) 15:07   No:19620     
Title: Re:アニメーションについて    
スーファミ懐かしい・・。
友達が横でボール投げて遊んでて、カセットにあたってバグってデータ消えたときに
キレたの思い出しましたw
そう思うとPCでやるほうが安心ですね〜^^;
スーファミはまだしもファミコンはいつばぐるかヒヤヒヤしながら遊んだことありますw

そういえば月面着陸した時に使っていたNASAのスーパーコンピュータの性能が
丁度ファミコンと同じ位だったとかいう話をどこかで聞きました・・。
時代の変化ってすごいですねw
今のNASAのスパコンってどれ位すごいのかな〜、HDDとかペタバイト・・・エクサバイト?とかなのかな〜^^;

そして何か私がアドバイスすることが無いくらいよくご存知のようですね、失礼しましたm(_ _)m
(私が高校生の時は何も知らなかった、、、)

・ゲーム自体に動画ソースを組み込んでしまう。
・MPGなどに動画を変換して描画する。

もう比較にならないほど前者が軽いでしょうね。
メモリというのは容量のことでよかったのでしょうか?
それともプレイ時の使用メモリのことでしょうか?

容量としては前者が軽いです。
例えばmidiで配布するかmp3で配布するかって感じじゃないでしょうか?
例えば「1枚の像Aを120フレームで座標1から2へ移動」ってデータと
「120フレームの静止画の集合」ってデータでは圧倒的に後者が多いと思います。

ただしPS2のムービークラスになると、専用のソフトで作った動画を入れる必要はありそうです。
また、音と映像がことこまかく一致しなければならない場合なども動画にした方がいい場合はあるかもしれません。
そのコンピュータで処理をさせると性能の低いPCでどう動くかを考えなければなりませんが、
動画として同梱すればその心配もいりません。

とりあえずスーファミレベルのムービーなら動画として同梱する理由は無いかと思います。
(どんな動画を想定されているかわからないので、はっきりとは言えませんが)

>後者の場合アプリ動画をMPGに変換するにはどのような方法があるのでしょうか?

DirectXやOpenGLを使って描画されているものはDxtoryでキャプチャされることをおススメします。
私の龍神録のプレイ動画やPVなどはこれで作っています。
またwindowsアプリなどの操作キャプチャなどはカハマルカの瞳がおススメです。
マウスの軌跡などもキャプチャ出来ます。
http://www.nicovideo.jp/watch/sm4163011
それを使うとこんなキャプチャが出来ます。
またキャプチャするならそれなりにスペックのたかいPCである必要があります。
aviの無圧縮としてキャプチャされますから、
1分とかでもギガバイト単位の容量になりますから、
windowsムービーメーカーとかで適当に圧縮してあげてください。
変換するのはMPEGがいいんですか?
動画変換ソフトはめちゃくちゃ沢山あるので、気に入ったのをお使いになれば言いと思いますが、
Superってソフトとかは変換の種類が豊富でいいと思います。


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

Name: ROL  ..初心者(6,689ポイント)   Date: 2008/08/04(月) 15:48   No:19622 解決!     
Title: Re:アニメーションについて    
>Dxtoryでキャプチャされることをおススメします。
一度調べて見ます。やって見ます。プレイ動画がその
まま残ればバグなどの説明にも使えますしね^^

>カハマルカの瞳
Windows Media エンコーダのようなものでしょうか?
どちらが性能がいいかわかりませんがそちらも調べて見ます。

私は、毎回言葉が足りていないようで^^;
聞きたかったのは、プレイ時の使用メモリです;
プログラムが長くなる〜と思ったりしたんですが
動画のソースを本体から放して必用なときに呼び出せば問題なしですね。



雑談
私は今も、結構スーファミとかやったりしますよ〜^^
>友達が横でボール投げて遊んでて、カセットにあたってバグってデータ消えたときに
>キレたの思い出しましたw
私の場合はマリカやっている最中、友達が腕に力が入ってコードをピンと貼って
・・・・・・・・今までのWinCupが〜〜〜〜〜TOT
なんて事しょっちゅうでした。
あとは、Tactics_Ogre_-_Let_Us_Cling_Together(ご存知かな?)
あんなゲームは中にボタン電池みたいなのが入っているんですよね。
買ってきて遊んで、セーブ。次の日につけたらセーブデータが無い。
接触不良?あれが無いとセーブできないジャン・・・とキレて修理しました。
ネジのへそが潰れた時のために使う樹脂を使ってネジの型を取って鉄をバーナーで溶かして石膏の
型にねじ込む。自作ドライバーの完成。それでカセット開けて接触面調整。
って無茶した経験あります。あれは確か3年前の中2。本当に無茶ですよね^^;


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

Name: 管理人 [URL]  ..伝説のハッカー(672,332ポイント)   Date: 2008/08/04(月) 18:31   No:19633     
Title: Re:アニメーションについて    
Dxtoryもカハマルカの瞳もデスクトップキャプチャソフトです。
エンコーダではありません。ググって見てもらえたらすぐ出てくると思います。
Dxtoryの方がかなり処理は早いので、60fpsとかでもキャプチャ出来ます。
ただこれはDirectXやOpenGLで作られているものしかキャプチャが出来ないので、
ツールの操作説明の動画とかには使えないです。

使用メモリについてはどうでしょう、その動画がどんな動画かによるので何とも言えないです。
沢山画像を読み込んでおいて大量の画像をアニメーションするならメモリ量も多く必要でしょうし、
一つの画像を変形して作るようなOPならメモリも少なくて済むでしょう。

小さいときあまりゲームを買ってもらえなかったのでスーファミをやった思いでは薄いです^^;
ファミコンとかボンバーマンとまりお位しかしてないかな・・。
今はするより作る方が楽しいです^^;


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




 
[ 1 , ... ]
 
 
管理者画面   RSS   + Powered By 21style +