わかる人がいたら教えてください!!
-
shiro_yuki
- 記事: 12
- 登録日時: 12年前
わかる人がいたら教えてください!!
ゲームプログラミング歴がまだ浅い高校生ですが、
サンプルプログラミングの館にて
リンゴを拾うゲームのプログラミングのソースコードを触って試しながら
ゲームプログラミングを頑張っていこうとしています!
リンゴをキャラクターが拾ったら、リンゴを拾った個数の分だけが
ゲームのアプリケーション上に
立ち上がるようにするにはどうすればよいのでしょうか・・・・・。
考えてみましたが、初心者の自分にはわからなかったです・・・・・・・。
このゲームのダウンロードリンク先
サンプルプログラミングの館
リンゴの落ちゲー
http://dixq.net/sm/d3.html
------------------------------------------------------------------------------------------------
PC環境
FUJITSU ESPRIMO
OS: Microsoft Windows Vista Business Service Pack 2 32bit
RAM: 2GB
CPU: Intel Core 2 Duo CPU E7300 @ 2.66GHz TB 2.67GHz
使用しているプログラミングソフト: Microsoft Visual Studio 2008 Professional Edition
------------------------------------------------------------------------------------------------
サンプルプログラミングの館にて
リンゴを拾うゲームのプログラミングのソースコードを触って試しながら
ゲームプログラミングを頑張っていこうとしています!
リンゴをキャラクターが拾ったら、リンゴを拾った個数の分だけが
ゲームのアプリケーション上に
立ち上がるようにするにはどうすればよいのでしょうか・・・・・。
考えてみましたが、初心者の自分にはわからなかったです・・・・・・・。
このゲームのダウンロードリンク先
サンプルプログラミングの館
リンゴの落ちゲー
http://dixq.net/sm/d3.html
------------------------------------------------------------------------------------------------
PC環境
FUJITSU ESPRIMO
OS: Microsoft Windows Vista Business Service Pack 2 32bit
RAM: 2GB
CPU: Intel Core 2 Duo CPU E7300 @ 2.66GHz TB 2.67GHz
使用しているプログラミングソフト: Microsoft Visual Studio 2008 Professional Edition
------------------------------------------------------------------------------------------------
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: わかる人がいたら教えてください!!
すいません。具体的にどうなるのかよく分かりません。
>リンゴをキャラクターが拾ったら、リンゴを拾った個数の分だけが
>ゲームのアプリケーション上に
>立ち上がるようにするにはどうすればよいのでしょうか・・・・・。
何が何処に立ち上がるのでしょうか?
>リンゴをキャラクターが拾ったら、リンゴを拾った個数の分だけが
>ゲームのアプリケーション上に
>立ち上がるようにするにはどうすればよいのでしょうか・・・・・。
何が何処に立ち上がるのでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
shiro_yuki
- 記事: 12
- 登録日時: 12年前
Re: わかる人がいたら教えてください!!
例えば、
バケットのなかにりんごが入ったら
一個入りましたー!と文字でテキスト表示させたいです!
りんごが2個、3個はいるごとに、
2個入りましたー!、3個入りましたー!とように
ゲームの状況に応じて、
今まで入った個数を表示させたいなと思っています!!
バケットのなかにりんごが入ったら
一個入りましたー!と文字でテキスト表示させたいです!
りんごが2個、3個はいるごとに、
2個入りましたー!、3個入りましたー!とように
ゲームの状況に応じて、
今まで入った個数を表示させたいなと思っています!!
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: わかる人がいたら教えてください!!
どこから分からないのでしょうか?
1.りんごのカゴに入った個数のカウント
2.画面に個数をテキスト表示させる方法
3.表示させたら一定時間後に消しさる方法
1.りんごのカゴに入った個数のカウント
2.画面に個数をテキスト表示させる方法
3.表示させたら一定時間後に消しさる方法
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: わかる人がいたら教えてください!!
ゲームプログラミングの勉強ですよね。shiro_yuki さんが書きました:1、2、3番よかったら教えてください!
お手伝いしますので、まず自分で考えないと勉強になりません。
さて、まず1としてりんごがカゴに入ったのはソースコード何処でわかるでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
shiro_yuki
- 記事: 12
- 登録日時: 12年前
Re: わかる人がいたら教えてください!!
<code>
int bullet_kago_exit(int i){
if(ch.x-20<bullet.x && bullet.x<ch.x+20 && ch.y-40<bullet.y && bullet.y<ch.y-35)
return 1;
return 0;
</code>
たぶん推測ですが、もしも、かごの中にりんごがはいったら
return 1
1になる→りんごがカゴの中に入ったことになる
そしたら0に戻る なくなるという感じでしょうか・・・・・・。
int bullet_kago_exit(int i){
if(ch.x-20<bullet.x && bullet.x<ch.x+20 && ch.y-40<bullet.y && bullet.y<ch.y-35)
return 1;
return 0;
</code>
たぶん推測ですが、もしも、かごの中にりんごがはいったら
return 1
1になる→りんごがカゴの中に入ったことになる
そしたら0に戻る なくなるという感じでしょうか・・・・・・。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: わかる人がいたら教えてください!!
bullet_kago_exit()が、その判定をする関数だとして、それを確認する良い方法は無いでしょうか? 考えてみ下さい。
ヒント:PrintfDX();デバッグ用の関数。
「DXライブラリ置き場 リファレンスページ」
http://homepage2.nifty.com/natupaji/DxL ... raph3.html
ヒント:PrintfDX();デバッグ用の関数。
「DXライブラリ置き場 リファレンスページ」
http://homepage2.nifty.com/natupaji/DxL ... raph3.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
shiro_yuki
- 記事: 12
- 登録日時: 12年前
Re: わかる人がいたら教えてください!!
printfDXは、C言語でも同じようにアプリケーション上に文字を表示させるようにするのが
printfDX関数であり、printfDX関数のなかに、
printfDX(リンゴのかご);
といった感じでしょうか・・・・・・。
printfDX関数であり、printfDX関数のなかに、
printfDX(リンゴのかご);
といった感じでしょうか・・・・・・。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: わかる人がいたら教えてください!!
printfDX(リンゴのかご);だとprintfの書式としても間違っています。printfの書き方はご存知でしょうか。shiro_yuki さんが書きました:printfDXは、C言語でも同じようにアプリケーション上に文字を表示させるようにするのが
printfDX関数であり、printfDX関数のなかに、
printfDX(リンゴのかご);
といった感じでしょうか・・・・・・。
あと条件式が必要では? → ソースの書く場所次第ではいらないですが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: わかる人がいたら教えてください!!
そうですね。shiro_yuki さんが書きました:printf(" 文字列\n");
これがprintfの書き方じゃないんですか?
printfDX(リンゴのかご);
とは違いますよね。「リンゴのかご」は文字列の定数になっていません。
あと何処にどのように書くかも重要です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
shiro_yuki
- 記事: 12
- 登録日時: 12年前
Re: わかる人がいたら教えてください!!
もしりんごがカゴのなかにはいったら
return 1になり
入ったときに、最初は0であり、
入ったら、そのbulletと連動して、
a=0;
ringocount=a++;
これをいれてあげて、
printfDX関数で
printfDX("ringocount\n");
こんな感じでしょうか・・・・・・。
もし初心者の自分ですが、だめでしたら指摘お願いいたします・・・・・。
return 1になり
入ったときに、最初は0であり、
入ったら、そのbulletと連動して、
a=0;
ringocount=a++;
これをいれてあげて、
printfDX関数で
printfDX("ringocount\n");
こんな感じでしょうか・・・・・・。
もし初心者の自分ですが、だめでしたら指摘お願いいたします・・・・・。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: わかる人がいたら教えてください!!
shiro_yuki さんが書きました:もしりんごがカゴのなかにはいったら
return 1になり
入ったときに、最初は0であり、
入ったら、そのbulletと連動して、
a=0;
ringocount=a++;
この場合、後置インクリメントを代入で使う必要もないですし、後置インクリメントの代入の使い方として文法的には問題が無いですが意図している事からすれば間違っています。
そもそもaと言う変数はいらない気が。
あと、何処に書くコードなのかの説明になっていませんので前後のソースコードを記載して下さい。
※codeタグもご利用下さい。
shiro_yuki さんが書きました: これをいれてあげて、
printfDX関数で
printfDX("ringocount\n");
こんな感じでしょうか・・・・・・。
もし初心者の自分ですが、だめでしたら指摘お願いいたします・・・・・。
printfDX("ringocount\n");だとカウント値の表示ではなくringocountと言う文字列の表示です。
printfの書式を再確認して下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
shiro_yuki
- 記事: 12
- 登録日時: 12年前
Re: わかる人がいたら教えてください!!
もし、リンゴがカゴのなかにはいって
1になったとき
int a=ringocount+1
if(ringo.flag==1)
ringocount++
else
ringocount+=0
そして、
printfdx(%dだけリンゴはいりました!,a)
このような感じに自分で考えてみました!
たぶん指摘されるかと思いますが
よろしくお願いします!
1になったとき
int a=ringocount+1
if(ringo.flag==1)
ringocount++
else
ringocount+=0
そして、
printfdx(%dだけリンゴはいりました!,a)
このような感じに自分で考えてみました!
たぶん指摘されるかと思いますが
よろしくお願いします!
Re: わかる人がいたら教えてください!!
・C言語/C++で全角文字を使用する必要はありません。
・ほかの場所で使用しない場合、変数aは無駄です。printfdxでも素直にringocountを表示すればいいのではないですか?
・ringocount+=0は無駄です。(演算子のオーバーロードをしていない場合)
・C言語/C++では、文の最後はセミコロンを付けましょう。
・C言語/C++では、文字列リテラルはダブルクォーテーションマークで囲む必要があります。
・ほかの場所で使用しない場合、変数aは無駄です。printfdxでも素直にringocountを表示すればいいのではないですか?
・ringocount+=0は無駄です。(演算子のオーバーロードをしていない場合)
・C言語/C++では、文の最後はセミコロンを付けましょう。
・C言語/C++では、文字列リテラルはダブルクォーテーションマークで囲む必要があります。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
-
shiro_yuki
- 記事: 12
- 登録日時: 12年前
Re: わかる人がいたら教えてください!!
少し返信が遅れてしまいました。
yukiです。
試してみたのですが、リンゴの個数をカウントすることができず、
ずっとスコア上では、0、0、0、とずっと0個の状態のままになってしまいます・・・・・・。
もし、わかりましたら教えてください・・・・・。
あと、ソースコードを載せておきます。
まだ、下のものは、未完成の状態で完成していないものです。
yukiです。
試してみたのですが、リンゴの個数をカウントすることができず、
ずっとスコア上では、0、0、0、とずっと0個の状態のままになってしまいます・・・・・・。
もし、わかりましたら教えてください・・・・・。
あと、ソースコードを載せておきます。
まだ、下のものは、未完成の状態で完成していないものです。
void bullet_calc(){
int i;
int Color;
Color = GetColor( 0,255,0);
for(i=0;i<BULLET_MAX;i++){
if(bullet[i].flag==1){
if(bullet[i].cnt==bullet[i].till){
PlaySoundMem(sound_se[0],DX_PLAYTYPE_BACK);
bullet[i].drop_flag=1;
}
if(bullet[i].drop_flag==1){
bullet[i].x += cos(bullet[i].angle) * bullet[i].spd;
bullet[i].y += sin(bullet[i].angle) * bullet[i].spd;
if(bullet_kago_exit(i)==1){
bullet[i].flag=0;
PlaySoundMem(sound_se[1],DX_PLAYTYPE_BACK);
}
if(bullet_feeld_exit(i)==1)
bullet[i].flag=0;
}
bullet[i].cnt++;
}
}
}
DrawFormatString( 450, 120, Color,"リンゴの個数は %d です\n",a);
}
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: わかる人がいたら教えてください!!
bullet_calc内でaが計算されていないので、このaが何処でどのように処理されているか分からりません。
これだと正しいか正しくないかの判断ができませんよね。
もし処理していなら、値が変わらないの当然と言えます。
例えるなら、誰も触らない箱の中に勝手に物が増えることはオカルトだということです。
※ aと言う変数を箱に例えています。
これだと正しいか正しくないかの判断ができませんよね。
もし処理していなら、値が変わらないの当然と言えます。
例えるなら、誰も触らない箱の中に勝手に物が増えることはオカルトだということです。
※ aと言う変数を箱に例えています。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
shiro_yuki
- 記事: 12
- 登録日時: 12年前
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: わかる人がいたら教えてください!!
それは試したほうが早いですね。
私はプログラミングを理解して欲しいので、ヒントしか出しませんがやってみることが一番理解に繋がるんでやってみてください。
試してうまく行かなかったら、うまくいかないソースコードを投稿してくださいね。
私はプログラミングを理解して欲しいので、ヒントしか出しませんがやってみることが一番理解に繋がるんでやってみてください。
試してうまく行かなかったら、うまくいかないソースコードを投稿してくださいね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。