<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/dencyclopedia/">
    <title>Dencyclopedia</title>
    <link>http://w.atwiki.jp/dencyclopedia/</link>
    <atom:link href="https://w.atwiki.jp/dencyclopedia/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>Dencyclopedia</description>

    <dc:language>ja</dc:language>
    <dc:date>2013-07-08T17:00:07+09:00</dc:date>
    <utime>1373270407</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/dencyclopedia/pages/39.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/dencyclopedia/pages/38.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/dencyclopedia/pages/37.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/dencyclopedia/pages/36.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/dencyclopedia/pages/35.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/dencyclopedia/pages/34.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/dencyclopedia/pages/33.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/dencyclopedia/pages/31.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/dencyclopedia/pages/30.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/dencyclopedia/pages/29.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/dencyclopedia/pages/39.html">
    <title>2013年度CD制作</title>
    <link>https://w.atwiki.jp/dencyclopedia/pages/39.html</link>
    <description>
      芝浦祭にCDを出そうと計画するページ



#comment    </description>
    <dc:date>2013-07-08T17:00:07+09:00</dc:date>
    <utime>1373270407</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/dencyclopedia/pages/38.html">
    <title>DTM班</title>
    <link>https://w.atwiki.jp/dencyclopedia/pages/38.html</link>
    <description>
      DTM班

[[2013年度CD制作]]


#comment    </description>
    <dc:date>2013-07-08T17:02:02+09:00</dc:date>
    <utime>1373270522</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/dencyclopedia/pages/37.html">
    <title>夏合宿マニュアル置き場</title>
    <link>https://w.atwiki.jp/dencyclopedia/pages/37.html</link>
    <description>
          </description>
    <dc:date>2013-06-10T07:17:19+09:00</dc:date>
    <utime>1370816239</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/dencyclopedia/pages/36.html">
    <title>ゲーム製作1</title>
    <link>https://w.atwiki.jp/dencyclopedia/pages/36.html</link>
    <description>
      ゲームを作るにあたって、いくつかの点を通例としてあげられる。

・updateとdrawは分離すること。
updateとは、移動処理などの、裏方の処理である。
drawとは、描画処理である。

drawは、基本的に60回/sec実行すればよく、それ以上は無意味なことが多い。
updateは、開発者の意向により実行間隔は異なる。
そのため、これらは混ぜるべきではない。updateの処理においてdrawする、あるいはその逆はあまりよい書き方とは言えない。
描画処理は非常に重い処理である。そのため、update処理とdraw処理を同時に行おうとすると、処理時間である1/60秒内に処理できない部分が発生する。
ただ単に描画できなかっただけなら問題はないが、updateさえされていないなら問題だ。
そのため基本的には、updateが全て終わった後にdrawを実行、あるいはフレーム落ちということにしてdrawせずに次のupdateを行う。
#highlight(){{
//疑似コード

void main()
{
	while(true)
	{
		update();//モデルのアップデート
		sleep();//drawを始める時間まで待機
		draw();//描画
	}
}

void update()
{
	updatePlayer();
	updateEnemy();
}

void draw()
{
	drawPlayer();
	drawEnemy();
}

}}

追加してください...    </description>
    <dc:date>2013-04-29T17:57:56+09:00</dc:date>
    <utime>1367225876</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/dencyclopedia/pages/35.html">
    <title>PG講座4</title>
    <link>https://w.atwiki.jp/dencyclopedia/pages/35.html</link>
    <description>
      ・条件式
条件式は、条件分岐や繰り返しで頻繁に用いられる。
大抵の条件式は、数学的な条件と似ている。
==、&gt;=、&lt;=、&gt;、&lt;、!=　などがある。
==は、左右が等価であれば真となる。
!=は、左右が等価でなければ真となる。
他は数学の不等号そのものである。

また、条件式は連結できる。
&amp;&amp;　および　||　を使う。
&amp;&amp;　は、その左右の条件式がどちらも真の時のみ真を返す。
||　は、左右の条件式のいずれかが真の時、真を返す。

ifやforの条件式には、以上の演算を用いることができる。    </description>
    <dc:date>2013-04-29T17:24:53+09:00</dc:date>
    <utime>1367223893</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/dencyclopedia/pages/34.html">
    <title>C言語の文法</title>
    <link>https://w.atwiki.jp/dencyclopedia/pages/34.html</link>
    <description>
      ・文法
--コンパイラが行の終わりを認識するのは、いわゆるCRLFではなく&#039;;&#039;を読んだときである。
--条件式は括弧で囲う必要がある。
--プリプロセッサ用の命令がいくつかある。それらは行頭に#がついている。
--最小単位はトークンと呼ばれ、スペースなどの予約された文字によって分けられる。
--大文字と小文字は区別される。

追加してください...    </description>
    <dc:date>2013-04-29T17:17:07+09:00</dc:date>
    <utime>1367223427</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/dencyclopedia/pages/33.html">
    <title>環境構築</title>
    <link>https://w.atwiki.jp/dencyclopedia/pages/33.html</link>
    <description>
      ・開発環境について
簡単なプログラムであれば、メモ帳でも十分に書くことができる。
しかし、われわれプログラマは人間にしかできないクリエイティブなことをすべきであって、打ち間違いを探すような時間はまったくの無駄である。
そのため、一般的にはIDEを使用する。

Visual Studioと呼ばれるIDEがある。M$社の、win向け開発環境で、比較的に標準的な環境である。
われわれは芝浦工業大学の学生であるので、本来恐ろしく高いこのソフトを無料で手に入れることができる。
そのためにDreamSparkというサービスを利用する。
手順については明記しないでおく。
Visual Studioは強力なIDEであり、ユーザーフレンドリーである。
全てインストールすれば、VC++、VB、C#といった言語を利用できる。
これらは全て.NETフレームワークを使うソフトウェアを作るための環境である。

もし、LinuxやMacでも動かすようなプログラムを作りたいなら、Visual Studioはあまり適した解とは言えない。
その場合、eclipseなどの環境を導入する必要があるかもしれない。


・ゲーム用ライブラリについて
わがサークルが標準的に使うライブラリは、DXライブラリである。
これはDirectXを使用した、C言語でゲームを作るためのライブラリで、初心者にとってはとっつきやすい。
また、ネット上にも情報が多い。
導入方法は、公式ページにあるので参照してほしい。
ただ、このライブラリ(や、大抵のゲームライブラリ)はゲームの本質に干渉しないようにできている。
そのため、プログラマはこのライブラリを利用しつつ、自分の思うようにゲームのモデルを作っていく必要がある。
自由ということは確かだが、自由すぎて迷うかもしれない。
ネットで探すのもよいが、頭を使って解決策を導くのも醍醐味の一つであるから頑張ってほしい。
もしDirectXで作りたくないというのなら、必然的にOpenGLによる開発となる。
OpenGLはMacやLinuxでも使える描画方式であるので、個人的にはjavaと組み合わせることを勧めておく。
lwjglというライブラリがあるので、英語を読むことに抵抗がないなら見てみるといいかもしれない。    </description>
    <dc:date>2013-05-02T21:58:59+09:00</dc:date>
    <utime>1367499539</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/dencyclopedia/pages/31.html">
    <title>PG講座3</title>
    <link>https://w.atwiki.jp/dencyclopedia/pages/31.html</link>
    <description>
      ダイジェスト。


さて、ここまで変数と関数の宣言と、変数をいじくる方法については述べた。
しかし、まともなコンピュータプログラムを書きたいならば、条件分岐と繰り返し処理は確実に必要である。

・条件分岐
条件式を満たしているか否かによって、実行する命令（またはブロック）を変える処理。
if-elseif-else　と、switch-case-defaultがある。（一般的にはif文、switch文と呼ばれる）
if文の例を示す。

#highlight(){{
#include&lt;stdio.h&gt;
#define MODE 0
int main(void)
{
	int i = MODE;
	if(i == 0)printf(&quot;mode 0;&quot;);
	else if(i == 1)printf(&quot;mode 1&quot;);
	else printf(&quot;unknown mode.&quot;);
	return 0;
};
}}
このように、else ifを使うことができる。else ifは何回でも重ねることができるが、後述するswitch文の方が適している場合がある。
なお、これはブロックを用いない方法である。
ブロックを用いると、
#highlight(){{
#include&lt;stdio.h&gt;
#define MODE 0
int main(void)
{
	int i = MODE;
	if(i == 0)
	{
		printf(&quot;mode 0;&quot;);
	}
	else if(i == 1)
	{
		printf(&quot;mode 1&quot;);
	}
	else
	{
		printf(&quot;unknown mode.&quot;);
	}
	return 0;
};
}}
とも書ける。この二つは同意の処理である。しかし、後者の処理の場合はあくまでブロックを実行しているため、ブロックの中にある複数の命令を一気に実行できる。

次に、switch文。
#highlight(){{
#include&lt;stdio.h&gt;
#define MODE 0
int main(void)
{
	int i = MODE;
	switch (i)
	{
		case 0:
			printf(&quot;mo    </description>
    <dc:date>2013-04-30T12:01:27+09:00</dc:date>
    <utime>1367290887</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/dencyclopedia/pages/30.html">
    <title>PG講座2</title>
    <link>https://w.atwiki.jp/dencyclopedia/pages/30.html</link>
    <description>
      ダイジェスト。


・演算
大きく分けて、四則演算とmod、および論理演算がある。
・・四則演算
加減乗除。+-*/を使用する。
演算順序は我々の考えるそれとほぼ同じで、括弧を使うことで演算順序を変えられるのも同じ。
演算する対象は、定数でも変数でもよい。また、基本的には変数への代入の際に用いられるが、計算結果を使い捨てする場合もある。
例

#highlight(){{
#include&lt;stdio.h&gt;
int main(void)
{
	int a = 2;
	int b = 10;
	int c = a+b;
	printf(&quot;%d&quot;,a+b); //12
	printf(&quot;%d&quot;,c); //12
	return 0;
};
}}

・・mod
modとは剰余である。
%で表す。11%5は1である。
11-(11/5)と書いても同じような結果になるが、modの場合は浮動小数点数にも使えるため、こちらを推奨する。
言語によっては、modという語をそのまま演算子として用いる場合がある。

・・論理演算
コンピュータの得意とする演算である。
and,or,xor,notがよく用いられる。
andとは、論理積と呼ばれ、たとえば二つの数があったとして、その数値を
0b00001111
0b01010101
としたときに、andすると0b00000101が得られる。二つの二進数の、同じ桁同士を比べて、どちらも1であったら結果の該当する桁は1になり、どちらかが（あるいはどちらも）0ならば該当桁は0になる。
使用方法としては、上の例の1つめの数のようにして、変数の一部の情報だけを取り出したいときに使うことが多い。（マスクと呼ばれる。）
orとは、論理和と呼ばれ、上記の数を使うと0b01011111が返ってくる。
これは、同じ桁の（少なくとも）どちらかが1であれば、結果を1とする演算である。
xorとは、orの変則型であり、同じ桁のどちらかが1であれば、結果を1とする演算である。どちらも1ならば結果を0とするし、どちらも0ならば当然結果は0とする。
排他的論理和という名称の通りだ。
notは簡単なことで、基本的にはある桁が1ならば結果を0、0ならば結果を1とするものである。

総じて、論    </description>
    <dc:date>2013-04-29T16:48:17+09:00</dc:date>
    <utime>1367221697</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/dencyclopedia/pages/29.html">
    <title>PG講座0</title>
    <link>https://w.atwiki.jp/dencyclopedia/pages/29.html</link>
    <description>
      ・初めに
ゲームを作りたいと考えた時、開発するにあたって考えるべきこと。
--それは実現可能か？
--それは面白いか？
--それはニーズに合っているか？
--開発にどれくらいのコストをかけるか？
--開発規模とメンテナンスはどのように行うか？
--言語は適切か？
--ライセンスは適切か？
--商用にする予定は？
--再利用性は確保するか？

追加してください...    </description>
    <dc:date>2013-04-24T22:35:33+09:00</dc:date>
    <utime>1366810533</utime>
  </item>
  </rdf:RDF>
