じゃんけんゲームにエフェクトを付ける

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
エレジー
記事: 49
登録日時: 13年前

じゃんけんゲームにエフェクトを付ける

#1

投稿記事 by エレジー » 13年前

じゃんけんゲームにエフェクトを付けたいんですが
効果音のやり方は「2.7 効果音を鳴らす」にあるのでわかると思いますが、勝った時にきらきらさせたりする方法がよく分かりません。
「2.8 画像を分割して読み込む」これを参考にすればできますか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#2

投稿記事 by softya(ソフト屋) » 13年前

キラキラさせるってところが具体的では無いため良く分からないので、キラキラさせるという行為を箇条書きで書いてみてください。

>「2.8 画像を分割して読み込む」これを参考にすればできますか?
アニメーションパーツを一括読み込みするために便利な関数です。
こっからのゲームプログラミングはアイデア力の勝負で、どんどん参考にできる物は少なくなります。
イメージを具体化するために色々と考えてみましょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#3

投稿記事 by エレジー » 13年前

丸からとげが四方に出てるような形の光っている(加算ブレンド?)ものを上から回転しながら降ってくるようにして一定のところで消える。といった感じです。
ただ、降ってこさせるのが大変そうなので、その場でゆっくり回転させながら点滅というものでもいいです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#4

投稿記事 by softya(ソフト屋) » 13年前

まず、そのイメージ画像を作る所から始めないといけませんね。
移動、回転、拡縮、点滅、半透明・加算ブレンド等は全てDXライブラリだけで可能ですので、何処まで画像に頼るかを具体的に検討する必要があります。
よく分からないなら、とりあえず1枚画像を用意してDXライブラリでエフェクト実験をしてみたらどうでしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#5

投稿記事 by エレジー » 13年前

ソースコードを見てもらうためにファイルを添付するにあたってですが
BGMや効果音用にフリー音楽素材MusMusというサイトの素材を使わせてもらおうと思うんですが
この掲示板に投稿するということは、素材を不特定多数の人に公開することになります。
利用規約にしたがって、著作権表示をして、二時配布に関する表記をすれば問題ないようなんですが
こういったことには知識がないので、表記方法がよく分かりません。
とりあえず、著作権が「フリー音楽素材MusMus」にあるということと、「MusMusの音楽素材を使用したい方はMusMusからダウンロードしてください」ということを表記する必要があるみたいですが、どういう文章で表記すればいいのでしょうか?
また、形式がmp3でこれまた著作権があるようですが、こちらはどうすればいいのでしょうか?



このサイトでは質問を解決状態にしてからでないと次の質問ができないようなんで、ここで質問しましたが、新しくたてた方がよかったですかね?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#6

投稿記事 by softya(ソフト屋) » 13年前

エレジー さんが書きました:ソースコードを見てもらうためにファイルを添付するにあたってですが
BGMや効果音用にフリー音楽素材MusMusというサイトの素材を使わせてもらおうと思うんですが
この掲示板に投稿するということは、素材を不特定多数の人に公開することになります。
利用規約にしたがって、著作権表示をして、二時配布に関する表記をすれば問題ないようなんですが
こういったことには知識がないので、表記方法がよく分かりません。
とりあえず、著作権が「フリー音楽素材MusMus」にあるということと、「MusMusの音楽素材を使用したい方はMusMusからダウンロードしてください」ということを表記する必要があるみたいですが、どういう文章で表記すればいいのでしょうか?
また、形式がmp3でこれまた著作権があるようですが、こちらはどうすればいいのでしょうか?



このサイトでは質問を解決状態にしてからでないと次の質問ができないようなんで、ここで質問しましたが、新しくたてた方がよかったですかね?
とりあえず、抜くのが簡単ですかね。
基本的に著作権は圧縮ファイルの中に説明書テキストとしてラインセンスの説明とライセンス元にリンクなどが記載されていれば良いはずですが、配布元の制限が優先されます。
mp3ライセンス問題はWindowsである限りは気にしなくて良いはずです(うる覚え)。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#7

投稿記事 by エレジー » 13年前

音楽ファイルだけ添付しなければいいということですか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#8

投稿記事 by softya(ソフト屋) » 13年前

エレジー さんが書きました:音楽ファイルだけ添付しなければいいということですか?
はい。それが一番簡単です。
掲示板での配布はグレーゾーンだと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#9

投稿記事 by エレジー » 13年前

ありがとうございます。
そうしておきます。

最近忙しくてプログラミングができなかったのですが、今エフェクトを付ける作業(正直、だいぶしょぼいですが・・・)をしているので近いうちにまたソースコードの評価をお願いすると思うのでよろしくお願いします。

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#10

投稿記事 by ISLe » 13年前

softya(ソフト屋) さんが書きました:mp3ライセンス問題はWindowsである限りは気にしなくて良いはずです(うる覚え)。
マイクロソフトが肩代わりしているのは、メディアプレイヤーなどでエンコードしたり再生したりするライセンスです。

フリーであってもゲームソフトのBGM等にMP3形式を使用する場合、5000セット配布した時点でライセンス料が発生します。
逆に言えば5000セット未満であれば料金は発生しないわけですが、どうやって証明するかが問題です。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#11

投稿記事 by エレジー » 13年前

とりあえずかなりしょぼいですがエフェクト、BGM、SEを付けてみました。
ただし、サウンド素材は著作権の問題があるので省いてあります。

こういった感じでエフェクトを付けていけばいいんですよね?
あとはアイディア勝負ということで、エフェクトに関してはとりあえず後回しで大丈夫ですか?
添付ファイル
添付用.zip
(56.97 KiB) ダウンロード数: 153 回

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#12

投稿記事 by softya(ソフト屋) » 13年前

やっと見れました。VC++2008で動かさないといけないので毎度手間取ります。
エフェクトに付いては、こういう感じを発展させてくださいです。

>あとはアイディア勝負ということで、エフェクトに関してはとりあえず後回しで大丈夫ですか?
すると先に何を行う予定か聞かせて下さい。まだ出来ていないと思われるゲームの進行部分でしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#13

投稿記事 by エレジー » 13年前

毎回お手数おかけして申し訳ないです。


エフェクトはとりあえず置いておいていろいろなゲームを作れるようになってから、それにエフェクトを付けていく。というつもりでいました。
ただ、そのゲーム進行部分というのがこれからゲームプログラミングをしていくにあたって、このじゃんけんゲームで練習しておいた方が良い部分であるならやっておきたいです。
ゲーム進行部分とは具体的にどういったことですか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#14

投稿記事 by softya(ソフト屋) » 13年前

エレジー さんが書きました:毎回お手数おかけして申し訳ないです。


エフェクトはとりあえず置いておいていろいろなゲームを作れるようになってから、それにエフェクトを付けていく。というつもりでいました。
ただ、そのゲーム進行部分というのがこれからゲームプログラミングをしていくにあたって、このじゃんけんゲームで練習しておいた方が良い部分であるならやっておきたいです。
ゲーム進行部分とは具体的にどういったことですか?
タイトルとかオプションとかを付けるとか演出部分やら勝敗スコアとか、そういう部分です。
特に重要なのは演出ですかね。すべてのゲーム作成に通じるアイデア力勝負の部分です。
まぁ、これ以上じゃんけんを続けたくないというなら別のに移ってもらったほうが良いでしょう。

参考にじゃんけんゲームの演出例をFLASHですが紹介しておきます。
絵がかけなくても参考に出来る部分は有るはずです。
「Flash第2弾「じゃんけんゲーム」シンプルなゲームを楽しんでもらえたら|ふるちゃわのブログ「多事争論」」
http://ameblo.jp/plan-do-japan/entry-10 ... .html#main
「Scissors Paper Stone - Weebl's Stuff」
http://www.weebls-stuff.com/games/Scissors+Paper+Stone/
「早おし!じゃんけんバトル:ゲームランド:キッズ@nifty」
http://kids.nifty.com/cs/game/detail/91125000218/1.htm
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#15

投稿記事 by エレジー » 13年前

確かに重要な部分ですね。
やってみようと思います。
スコア表示あたりは割とすぐできると思うんですが、エフェクトのときもそうでしたが自分は絵が描けないので演出部分はなかなか難しそうですね。
フリー素材をもらって来たり、動きなどでカバーできるように頑張ってみます。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#16

投稿記事 by softya(ソフト屋) » 13年前

エレジー さんが書きました:確かに重要な部分ですね。
やってみようと思います。
スコア表示あたりは割とすぐできると思うんですが、エフェクトのときもそうでしたが自分は絵が描けないので演出部分はなかなか難しそうですね。
フリー素材をもらって来たり、動きなどでカバーできるように頑張ってみます。
2番目のやつなど絵を書いてもいませんよ。展開のメリハリ・リズムとアイデア勝負です。
あとは、拡縮、透明度、平行移動などなどプログラムで動きは結構付けれますね。

【補足】
分かってもらいたかったのは「じゃんけんゲーム」のくくりでこれだけ色々な演出ができるって事です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#17

投稿記事 by Dixq (管理人) » 13年前

多くのパーティクルを持ったエフェクトを登録する方法について少しサンプル程度に追加してみました。
添付ファイルは上で添付されたものにいくつかコードを加えたものです。

スペースキーを押すとエフェクトが出ますので押してみてください。

変更したのは以下の通り
1. 画像のデータを扱うためのImageDataモジュールの作成
2. エフェクトを管理する人Effecterモジュールの作成
3. エフェクトの一つ一つのパーティクルであるParticleモジュールの作成

スペースを押すたびに、Particleが100個作られ、四方八方に飛び散ります。
この計算はEffeterが制御しています。
画像は、mainの最初にロード(ImageData_Load())して、それ以降はImageDataからGetして使っています。
ではまずImageDataについて

コード:

===== ImageData.h =====
(中略)
enum eImageID{
	IMG_ID_PARTICLE01,
	IMG_ID_PARTICLE02,
	IMG_ID_PARTICLE03,
	IMG_ID_PARTICLE04,
	IMG_ID_PARTICLE05,
	IMG_ID_PARTICLE06,
	IMG_ID_NUM,
};
(中略)

===== ImageData.cpp =====
#include "DxLib.h"
#include "ImageData.h"

static int Images[IMG_ID_NUM];
static char *FilePaths[]={
	"画像/光01.png",
	"画像/光02.png",
	"画像/光03.png",
	"画像/光04.png",
	"画像/光05.png",
	"画像/光06.png",
};

void ImageData_Load(){
	for(int i=0; i<IMG_ID_NUM; i++){
		Images[i] = LoadGraph(FilePaths[i]);
	}
}

void ImageData_Delete(){
	for(int i=0; i<IMG_ID_NUM; i++){
		DeleteGraph(Images[i]);
	}
}

int ImageData_Get(eImageID id){
	return Images[id];
}
こうすればImageData_Getで使いたいidを渡せばその画像ハンドルが取ってこれるようになります。
メイン関数の最初でload、最後でdeleteしています。

次にパーティクルについて

コード:

===== Particle.h =====
(中略)
struct ParticlePrm {
	int imgHandle;
	float x, y;
	int   alpha;
	float speed;
	float angle;
};
(中略)

===== Particle.cpp =====
#include "DxLib.h"
#include "Particle.h"
#include <math.h>

static const int MAX_ALPHA = 255;
static const float PI = 3.14159265f;

//初期化
void Particle_Initialize(ParticlePrm* p, float x, float y, int imgHandle){
	p->x = x;//座標
	p->y = y;
	p->alpha = MAX_ALPHA;//輝度
	p->speed = GetRand(10000)/10000.f*2;//スピード
	p->angle = GetRand(10000)/10000.f*PI*2;//角度
	p->imgHandle = imgHandle;//画像ハンドル
}

//更新
bool Particle_Update(ParticlePrm* p){
	p->x += cos( p->angle ) * p->speed;//角度angleの方向にスピードspeedで進む
	p->y += sin( p->angle ) * p->speed;
	p->alpha--;
	if(p->alpha==0){
		return false;
	}
	return true;
}

//描画
void Particle_Draw(ParticlePrm p){
	double size = 0.2;
	SetDrawBlendMode( DX_BLENDMODE_ADD, p.alpha );//alphaで加算ブレンド
	DrawRotaGraphF(p.x, p.y, size, 0.0, p.imgHandle, TRUE);
	SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 255 );
}
Particleはキランとひかる星1つに相当するものですが、星自身は何も変数を保持しません。
Effecterが渡してくる変数の更新したり、渡されたパラメータで描画するだけです。
ではParticleを管理しているEffecterを見てみます。

コード:

#include "DxLib.h"
#include "Effecter.h"
#include <list>
#include <stdlib.h>
#include "Particle.h"
#include "ImageData.h"

using namespace std;

//パーティクルのリスト
static list<ParticlePrm *> m_List;

//初期化
void Effecter_Initilize(){
}

//更新
void Effecter_Update(){
	list<ParticlePrm*>::iterator it;
	for ( it=m_List.begin(); it!=m_List.end(); ) {	//リストの要素だけループ
		//パーティクルを計算して破棄すべきだと通知されたら
		if( Particle_Update( *it ) == false ) {
			free( *it );//破棄
			it = m_List.erase( it );//リストから削除
			continue;
		}
		it++;//次の要素へ
	}
}

//描画
void Effecter_Draw(){
	list<ParticlePrm*>::iterator it;
	for ( list<ParticlePrm*>::iterator it=m_List.begin(); it!=m_List.end(); it++) {	
		Particle_Draw( *(*it) );
	}
}

//登録
void Effecter_Register(float x, float y){
	int PARTICLE_NUM = 100;//パーティクルを一度に登録する個数
	for(int i=0; i<PARTICLE_NUM; i++){
		ParticlePrm* p = (ParticlePrm*)malloc(sizeof(ParticlePrm));
		Particle_Initialize( p, x, y, ImageData_Get(IMG_ID_PARTICLE01) );
		m_List.push_front( p );
	}
}
すみません、リストを作るのが面倒だったのでC++の機能(list)を使っています。
listを使えば簡単にリストが作れて便利なので、もしご存知なければこの際覚えてしまいましょう。

Effect_Registerが呼ばれたら引数の座標にエフェクトを登録します。
リストにはParticleのパラメータを格納し、以降はリストに登録した分だけループしてParticle_UpdateとParticle_Drawを呼びます。

Cをかなり久しぶりに書いたので何か間違ってるかもしれませんが・・
こんな感じでどうでしょう。

コードをなるべく簡略化するためにくるくる回したり複雑なエフェクトは実装していません。
自分で好きなようにカスタマイズしてみてください。
添付ファイル
添付用.zip
(59.36 KiB) ダウンロード数: 153 回

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#18

投稿記事 by Dixq (管理人) » 13年前

それから、「Draw」というモジュールがありますが、これでは沢山描画したくなってきた時にドンドンDrawのしごとが増えていきます。

「物があって、その物それぞれが個別に仕事をする」という考えで設計すると、適切な設計であるオブジェクト指向に近づけます。

例えばエレジーさんも私も食事をすると思いますが、その前に料理をしないといけませんね。
料理をする必要が有る人が、それぞれレシピを考えて料理をすればよく、事前に全員のレシピを考えた料理を用意するのは大変です。
例えば後者の場合、

料理_エレジー();
料理_Dixq();
料理_Aさん();
料理_Bさん();



1億人

のように、料理をする人がいたら1億個の関数を作るのでしょうか。
そうではなく

for(料理をする必要な人数だけ){
  料理( 必要な人のレシピ );
}

のように作れたらたった3行で全員の料理が管理出来ます。
C++ではクラスを使えばいいですが、ピュアCであればモジュールにパラメータを渡し、モジュール内で更新させるような仕組みにすればよいでしょう。
(上のパーティクルの例のような感じです)

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#19

投稿記事 by エレジー » 13年前

Dixq (管理人)さん
具体的な例まで出していただきありがとうございます。

ただ、自分は、正直ポインタについて曖昧なところが多く、完璧に理解できているわけではありません。
教えていただいたエフェクトの例でもポインタが使われていますが、ここでポインタについてしっかり勉強しておくべきでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#20

投稿記事 by softya(ソフト屋) » 13年前

エレジー さんが書きました:Dixq (管理人)さん
具体的な例まで出していただきありがとうございます。

ただ、自分は、正直ポインタについて曖昧なところが多く、完璧に理解できているわけではありません。
教えていただいたエフェクトの例でもポインタが使われていますが、ここでポインタについてしっかり勉強しておくべきでしょうか?
ポインタが使えないと出来ないことが多いので覚える必要性はあると思います。
サンプルにも使われているものは多いですね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#21

投稿記事 by エレジー » 13年前

本分の勉強の方が忙しくてこっちに手が付けられなくなっていましたが、夏休みに入ったのでまた頑張ります。
現在、Dixq (管理人)さんに教えていただいたエフェクトを付ける方法を理解しようとしているところですが
ポインタについて、理解していないと出来ないことが多いとのことですが
ポインタは具体的にどういったときに使えばいいのでしょうか?
今まで関数に引数として渡していたものは全てポインタに変えるべきなんでしょうか?
ポインタの使い方については少しは理解ができたのですが、使いどころについてはよく分からないままなのでよろしくお願いします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#22

投稿記事 by softya(ソフト屋) » 13年前

ポインタの使い所ですね。
(1) mallocなど動的にメモリを確保した場合。
(2) 呼び出し先の関数で変数や構造体変数の内容を書き換えてもらいたい場合。※ scanfや自作関数など。
(3) 文字列はポインタ。
(4) 構造体などポインタで渡したほうが速度的に効率が良い物。

Dixq (管理人)さんのサンプルは(2)に該当しますね。
グローバル変数を使わず呼び出した関数の先で呼び出し元の変数の内容を書き換えたい場合には必須です。
ただ、ポインタはバグの温床とも言われるものですから理由もなくポインタにするのは危険です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#23

投稿記事 by エレジー » 13年前

Dixq (管理人)さんのサンプルプログラムで
ImageDataモジュールとParticleモジュールの内容についてはなんとなく理解できたのですが、Effecterモジュールの内容がさっぱりです。
とりあえず分からないlistやソースコードで文字が濃い青になっているところあたりについて調べてみたんですが、だいたいC++を勉強してきていることを前提としていたりで、いまいち理解できませんでした。
そこができないと自分でエフェクトをカスタマイズしたり、他のときに応用したりできないので何とか理解したいです。
わかりやすいサイトなどありませんか?

よろしくお願いします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#24

投稿記事 by softya(ソフト屋) » 13年前

そこはC++の標準ライブラリのlistクラスを使っていますね。
別にlistクラスを使わなくてもリスト構造の関数を用意すればC言語の文法の範囲で実現可能です。
どうしましょうか?
(1) C言語のリスト構造のアルゴリズムを紹介する。
(2) C++のlistクラスの使い方を紹介する。

【補足】
ちなみに(2)のlistクラスは(1)のアルゴリズムをクラスでまとめてライブラリとして提供されているものです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#25

投稿記事 by エレジー » 13年前

できれば(2)C++の方で理解しておきたいです。
iterator、erase、push_front、forの中のbeginやendの使い方も
「(2) C++のlistクラスの使い方」に含まれますか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#26

投稿記事 by softya(ソフト屋) » 13年前

エレジー さんが書きました:できれば(2)C++の方で理解しておきたいです。
iterator、erase、push_front、forの中のbeginやendの使い方も
「(2) C++のlistクラスの使い方」に含まれますか?
イテレータ(iterator)はポインタに見えますが実は別物ですので要注意。使い方はポインタみたいなんですけどね。
iterator ポインタの様なもの。
erase 要素の削除するメンバ関数。
push_front 先頭に追加するメンバ関数。
beginやend 先頭と最後のイテレータを得るメンバ関数。

使い方としては、これだけです。
「C++編(標準ライブラリ) 第3章 list」
http://www.geocities.jp/ky_webid/cpp/library/003.html

あと参考にC言語のリスト構造。
「自己参照構造体」
http://www9.plala.or.jp/sgwr-t/c/sec15-5.html
これとlistは同等の働きをします。まぁ、前にも書いた通りこの処理をクラス化したのがlistです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#27

投稿記事 by エレジー » 13年前

ありがとうごさいます。
Dixq (管理人)さんのサンプルプログラムでやっていることは理屈はまだあいまいですが、分かるようになりました。
今後の事を考えて、少しでも気になる事や分からないところがあったらまずは自分で調べてみますが、それでも理解できなかった場合質問させていただきたいのですが、よろしいでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#28

投稿記事 by softya(ソフト屋) » 13年前

ちゃんとlistクラスをなどいくつもあるSTL系のクラスをちゃんと理解したいならC++を勉強されることをおすすめします。
まぁ、その前にC言語で組めるぐらいアルゴリズムを知らずに使うのは使いこなす事が出来るのか?って問題はあるわけですが。

質問はいつでもOKですよ。

【補足】
ベターCと言う考え方があって、ここの回答者でもあるたかぎさんも推薦しているのですがオブジェクト指向しないC++の使い方ですね。
まぁ、べんりなC++の機能だけをクラスを理解せずに使いましょうって事です。今回のlistもベターC的な使い方ですね。
「ベターC | 株式会社きじねこ」
http://www.kijineko.co.jp/taxonomy/term/408
ただ、上記でたかぎさんも書いてる通り良い本がないので、なんとなく理解しながら使うしか無いわけです。
分からなかったらまた質問してください。
この方針で行くならC++の入門書は必ずしも読まなくて良いです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#29

投稿記事 by エレジー » 13年前

一応最終目的は音ゲーを完成させることなんですが、そのためにCやC++は勉強しておいた方がいいですかね?
現状、最終目標を達成するためにはまだまだ知識が足りていないです。
DXライブラリの勉強は必須だと思いますが、CやC++も勉強が必須でしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#30

投稿記事 by softya(ソフト屋) » 13年前

エレジー さんが書きました:一応最終目的は音ゲーを完成させることなんですが、そのためにCやC++は勉強しておいた方がいいですかね?
現状、最終目標を達成するためにはまだまだ知識が足りていないです。
DXライブラリの勉強は必須だと思いますが、CやC++も勉強が必須でしょうか?
Cは必須ですね。ちゃんと勉強しないとある程度大きな規模のゲームは作れません。
ゲームを作る上ではC++はベターCどまりで良いと思います。ゲームプログラマーの就職を考えるならC++は必須です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#31

投稿記事 by エレジー » 13年前

わかりました。
Cをしっかり理解できるように勉強します。

プログラミングに関してはもともと趣味として独学で始めたものなので、プロを目指しているわけでもなく、そういった学校に行く気もありません。

よってこの掲示板を頼ることが多くなると思うので、今後ともよろしくおねがいします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#32

投稿記事 by softya(ソフト屋) » 13年前

エレジー さんが書きました:わかりました。
Cをしっかり理解できるように勉強します。

プログラミングに関してはもともと趣味として独学で始めたものなので、プロを目指しているわけでもなく、そういった学校に行く気もありません。

よってこの掲示板を頼ることが多くなると思うので、今後ともよろしくおねがいします。
「苦C」とか「猫でも」などC言語の入門サイトは把握されていますか?あるいは入門書をお持ちでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#33

投稿記事 by エレジー » 13年前

プログラミングは、もともと趣味として独学で始めたものなので、プロは目指していませんしそういった学校に行こうとも思っていません。
よって目標の音ゲーを完成させることができれば満足なので、とりあえずCの勉強をもう一回して、しっかり理解しようと思います。
それにあたって、このサイトをすべて理解できていればもう大丈夫と言えるサイトがあったら教えてもらいたいです。
よろしくおねがいします。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#34

投稿記事 by エレジー » 13年前

2ページ目に気づかなくて同じようなことを書いてしまいました。
前にも同じことやってしまったような・・・;

C言語を勉強しようと思って初めて見たサイトがたしか「苦C」だったとおもいます。
それが行き詰ってきた所で、当初からやりたいと思っていたゲームプログラミングをするにはどうしたらいいのかを調べているときに、このサイトとDXライブラリというものを知ってこちらで実際プログラミングしながら質問して勉強する。というスタンスにしていました。
「猫でも」というサイトは知りませんでしたが、その2つのサイトに書いてあることを理解できるようになれば大丈夫ということでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#35

投稿記事 by softya(ソフト屋) » 13年前

分かりやすさでは書籍の「やさしいC」とか「Cの絵本」は分りやすいと思います。きっちりした本は「新版 明解C言語入門編」でしょうか。

サイトも本も相性があるので見て決めたほうが良いでしょう。
有名ドコロを挙げておきます。
「苦しんで覚えるC言語」
http://9cguide.appspot.com/
「猫でもわかるプログラミング」
http://www.kumei.ne.jp/c_lang/
「C言語入門」
http://www5c.biglobe.ne.jp/~ecb/c/c00.html
「Programming Place Plus C言語編 トップページ」
http://www.geocities.jp/ky_webid/Progra ... index.html
「初心者のためのポイント学習C言語」
http://www9.plala.or.jp/sgwr-t/index.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#36

投稿記事 by エレジー » 13年前

たくさんのサイトを教えいただきありがとうございます。
全てのサイトをちょっとずつ見てみたんですが、例えば「猫でもわかるプログラミング」と「初心者のためのポイント学習C言語」では章の数がかなり違いますし、それぞれのサイトでどれくらい細かいことまで書いてあるかが違いますよね?
自分は、「Programming Place Plus C言語編」がC++の勉強のときにこのサイトのC++編で勉強したので、良いなと思ったのですが
このサイトにあることをすべて理解したとして、それよりもっと細かいことは知らなくても大丈夫なんでしょうか。
結局別のサイトでもっと細かく理解しないとだめということになるなら最初からそちらで勉強したいのですが。

少し不安に思ったので、よろしくお願いします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#37

投稿記事 by softya(ソフト屋) » 13年前

エレジー さんが書きました:たくさんのサイトを教えいただきありがとうございます。
全てのサイトをちょっとずつ見てみたんですが、例えば「猫でもわかるプログラミング」と「初心者のためのポイント学習C言語」では章の数がかなり違いますし、それぞれのサイトでどれくらい細かいことまで書いてあるかが違いますよね?
自分は、「Programming Place Plus C言語編」がC++の勉強のときにこのサイトのC++編で勉強したので、良いなと思ったのですが
このサイトにあることをすべて理解したとして、それよりもっと細かいことは知らなくても大丈夫なんでしょうか。
結局別のサイトでもっと細かく理解しないとだめということになるなら最初からそちらで勉強したいのですが。

少し不安に思ったので、よろしくお願いします。
どこのサイトの内容も完璧では無いと思いますし、テクニック的な細かい所まで網羅されているわけではありません。
隅から隅まで知りたいと思ったら規格書を頭に叩き込むしかないわけですが、現実問題として困ってから調べたり・考えても大体は大丈夫です。
「日本工業標準調査会:データベース-JIS詳細表示」 規格書。閲覧だけはただです。
http://www.jisc.go.jp/app/pager?%23jps. ... ISNO=X3010
※ 規格書読んでもテクニックが書いてある訳ではないですよ。

C++なんか、これが最善の方法かって悩みだしたら結論なんて出ません。
なので、学びやすい処で全体の感覚を掴んでから細かいところはその都度調べてみてください。

よく分かった気がしないといってアセンブラやらCPUアーキテクチャまで手を出す人がいますが、それこそ本末転倒です。
なんでもほじくり返したら良いというものではありませんので道具(C言語)は使えたら良いと言うスタンスでやりましょう。
日頃、テレビリモコンは使ってもテレビリモコンのアーキテクチャには興味を示さないでしょう?
細かい所にこだわりすぎるのは、そう言うのと同じです。

まぁ、過去の人々の知識として、こういうのは知っていたほうが良いでしょう。
「Language C FAQ」
http://www.kouno.jp/home/c_faq/c_faq.html#contents
「C言語のよくある間違い」
http://www.ncos.co.jp/products/cgi-bin/errorcall.cgi
これらが実感できるのは何年も経ってからでしょうが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#38

投稿記事 by エレジー » 13年前

確かにそうでしたね。
全て完璧でないとゲーム作成は不可能なんだと思ってしまっていました。

とりあえず「Programming Place Plus C言語編」でもう一度Cを勉強しなおしてみます。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: じゃんけんゲームにエフェクトを付ける

#39

投稿記事 by softya(ソフト屋) » 13年前

エレジー さんが書きました:確かにそうでしたね。
全て完璧でないとゲーム作成は不可能なんだと思ってしまっていました。

とりあえず「Programming Place Plus C言語編」でもう一度Cを勉強しなおしてみます。
C言語の規格を完璧に理解しなくてもゲームは作れます。
C言語の規格をちゃんと理解していないプログラマーや教授・教師もたくさんいます。
出ている書籍でも知識レベルで怪しいものは沢山あります。
それでも、その人はプログラムは書けてますしゲームも作れます。
それは、アプリやゲームを作ると言うプログラムの構築とC言語は直接は関係ないからです。
言語の分かっていなければいけない最低限の事さえ分かればプログラムは作れるんです。
まぁ、理解しているレベルに合わせてプログラムの質は変わりますけどね。

どちらにしても最初から完璧な人は見たことありません。
作っていく過程で、その人に問題意識があればどんどん良くなっていくものです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

エレジー
記事: 49
登録日時: 13年前

Re: じゃんけんゲームにエフェクトを付ける

#40

投稿記事 by エレジー » 13年前

まだエフェクトを付けたわけでもなく、解決していませんが
別の質問をしたい関係で一度解決にします。

閉鎖

“C言語何でも質問掲示板” へ戻る