- 1 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:19:20.02 ID:4/9/sa+x0]
- ____
/ \ / ─ ─\ やる夫は3Dで美少女ダンジョンRPG作りたいお!!!!!!! / (>) (<) \ | (__人__) | \________/ 悪の魔法使いに拐われた美少女を \ ` ⌒´ ,/ | | | ノ \ .| | | 救出するんだお! /´ | | | | l | | | ヽ -一ー_~、⌒)^),-、 | |________| ヽ ____,ノγ⌒ヽ)ニニ-  ̄ | | | / ̄ ̄ ̄\ , .,/ \ ,、-';;、-''゙! _ノ \_ | /,;-'゙ ,,-';゙!、●) ( ● ) | / "./ ヽ,(__人__), |\ / ./ {`-- ' ノ. '丿i ┬-─ '',゙ニ'- 、 / ,,/ ` 、 / i/ / i / `i .,_,i _,;;'゙ ,、-''  ̄ -''` / i / i i  ̄_,.フ /i / ! i´ )、 ,/ ! i i ! ̄ ̄ ! / ! / ,i !'i゙ './!-、,/ / ! i ○ i ! ! `y゙i .i !. / ゙> ノ / ┌‐────┐ │やらない夫 | ├───‐─┴─────────────────────── │ それは本気で言っているのか!? └─────────────────────────────
- 2 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:20:33.52 ID:4/9/sa+x0]
- (( (ヽ三/) (ヽ三/) ))
. (((i ) ___ ( i))) なんだお? / / /_ノ ヽ_\ ヽ \ ( く /( ●) (●)\ > ) やらない夫のことだから、どうせめちゃくちゃな質問して、 \ `/::::::⌒(__人__)⌒:::::\' / ヽ|  ̄ |/ やる夫の「やる気」とか「気持ち」を踏みにじるんだお。 \ / ____ / \ / ─ / 「どうせその程度の気持ちなんだろ」とか言ってやる夫を馬鹿にするんだお。 / (●) (●) \ | (__人__) | )) 3Dが難しそうなのはやる夫でもわかるお。 / ∩ノ ⊃ / ( \ / _ノ | | でも、やってみなければわからないことだってあるはずだお。 .\ “ /__| | |\ /___ /| | ノ ヽ y / \ / / / / (___)_)
- 3 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:21:10.43 ID:4/9/sa+x0]
- / ̄ ̄\
/ _ノ \ | ( ー)(ー) . | /// (__人__) ごめんよ、俺が悪かっただろJK | ` ⌒´ノ . | } . ヽ } ヽ ノ \ / く \ \ | \ \ \ | |ヽ、二⌒)、 \ / ̄ ̄\ / \ (でも、 WizardryみたいなダンジョンRPGって、 |:::::: | . |::::::::::: | 別に3Dはどうでもよかったような……) . |:::::::::::::: } ....:::,, .. . ヽ:::::::::::::: } ,):::::::ノ . ヽ:::::::::: ノ (:::::ソ: . /:::::::::::: く ,ふ´.. -―――――|:::::::::::::::: \ -―,――ノ::ノ―― |:::::::::::::::|ヽ、二⌒)━ *Wizardry: 昔、そういうゲームがあったんだけど、わからなくてもスルーだよ。
- 4 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:21:41.66 ID:4/9/sa+x0]
- ____
/⌒ ⌒\ ホジホジ /( ●) (●)\ /::::::⌒(__人__)⌒::::: \ で、どうやって作るんだお? | mj |ー'´ | \ 〈__ノ / ノ ノ / ̄ ̄\ 3Dと言えば、OpenGLかDirectXを使うだろ、常識的に考えて。 / _ノ \ | ( ●)(●) で、OpenGLというのはうんたらかんたら . | (__人__) | ` ⌒´ノ DirectXというのはうんたらかんたら . | } . ヽ } ヽ ノ ____ / \ いやいや、そんなのどうでも良いから。 / ─ ─ \ / (●) (●) \ とっととダンジョンと美少女を作らせろお。 | (__人__) | \ ` ⌒´ ,/ r、 r、/ ヘ ヽヾ 三 |:l1 ヽ \>ヽ/ |` } | | ヘ lノ `'ソ | | /´ / |. | \. ィ | |
- 5 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:22:10.25 ID:4/9/sa+x0]
-
/ ̄ ̄\ じゃ、OpenGL(とGLUT)使うだろ、クロスプラットフォーム的に考えて。 / _ノ \ | ( ●)(●) でさ、三角形わかるか?三角形。 . | (__人__) | ` ⌒´ノ . | } . ヽ } △ ← こんな形。 ヽ ノ ____ / \ / ─ ─ \ それくらいわかるお。 / (●) (●) \ | (__人__) | \ ` ⌒´ ,/ / ̄ ̄\ / .― \ | ( ●)(●) . | (__人__) 三角形が3Dで絵を描くときの基本なんだ。 | ` ⌒´ノ . | } 3Dで描く絵は三角形を張り合わせて作るんだぜ。 . ヽ } ヽ ノ
- 6 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:23:09.70 ID:4/9/sa+x0]
- / ̄ ̄ ̄ \ ホジホジ
/ ― ― \ へー。 / (●) (●) \ | (__人__) | \ mj |⌒´ / 〈__ノ ノ ノ / ̄ ̄\ 例えば四角形についてだが、 / _ノ \ | ( ●)(●) これは三角形を二つつなげて作るんだ。 . | (__人__) | ` ⌒´ノ . | } . ヽ } ヽ ノ 二つの三角形をつなげるイメージ .l ̄/ /l <私達、ちょっと離れすぎだと思うのよ、ダーリン♪ .l/ /_l <そうだね、今そっちへいくよハニー♪ ↓ .l ̄//l < ちょ、ちょっと近付きすぎじゃないの!?(どきどき) .l//_l < もう少し、もう少しだよハニー ↓ .l ̄/l < 私達、一つになったのね(ぽっ) .l/_l < ああハニー愛してるよ ↓ .l ̄ ̄l きらーん♪ .l__l
- 7 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:23:52.79 ID:CWAYIo6Y0]
- 3DでダンジョンRPG……闘神都市Vか支援
- 8 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:25:02.88 ID:4/9/sa+x0]
- ___
/⌒ ⌒\ ━━┓┃┃ /(  ̄) (_)\ ┃ ━━━━━━━━ /::::::⌒(__人__)⌒:::: \ ┃ ┃┃┃ | ゝ'゚ ≦ 三 ゚。 ゚ ┛ \ 。≧ 三 ==- ゙ヽ, ,__ ,. -ー"ヽヽ / ̄ ̄\ / _ノ \ おっと失礼。大人用の教材を見せちまっただろ。 | ( ー)(ー) . | /// (__人__) | ` ⌒´ノ そ、それからな、その四角形をぺたぺたと張り合わせて立方体を作るんだが、 . | } . ヽ } やる夫は立方体は知ってるよな常考。 ヽ ノ .__ / /l ← 立方体 .l ̄ ̄.l l .l__.l/ ____ / \ / ─ ─ \ ただの箱だお? / (●) (●) \ | (__人__) | まあ、3Dと言えば3Dみたいな…… \ ` ⌒´ ,/
- 9 名前:以下、名無しにかわりましてVIPがお送りします mailto:sage [2008/12/18(木) 14:25:41.29 ID:CPOMT0k10]
- 期待
- 10 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:27:02.39 ID:4/9/sa+x0]
- ____
/\ /\ /( ●) (●)\ もしかして、この立方体をダンジョンの壁にするのかお? / :::::⌒(__人__)⌒:::::\ | |r┬-| | \ ` ー'´ / / ̄ ̄\ / .― / \ そうだ。立方体を並べれば迷路くらいできるだろ。 | ( ●)(●) | . | (__人__) | というわけで立方体を表示してみよう。 | ` ⌒´ ノ . ∧ .} /\ヽ / ,r―''''''ヽ, \__,ノヽ ,r‐' ,、;-‐''''""''ヾ、、, l / ./ r''"ヽ, \, l`ヽ、 j l ,. / ' l ヽ、 ト, ヽ .Lj∠、'´ , i, / `ヾ、`'ヽゝ , / 二'''" ,;、, `''ー゙--、 ゙ヽ-ッ-‐'´ ./`ト-:rイ「´ ゙l;:`''ト-、,_ ノ'i, .__ / /l ででん! .l ̄ ̄.l l .l__.l/
- 11 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:29:01.87 ID:4/9/sa+x0]
- ____
/ノ ヽ、_\ /( ○)}liil{(○)\ それ、さっきも見ただろうがよ! / (__人__) \ | ヽ |!!il|!|!l| / | \ |ェェェェ| / / ̄ ̄\ / .― / \ じゃあ、やる夫が適当に並べて作るんだな。 | ( ●)(●) | . | (__人__) | | ` ⌒´ ノ . ∧ .} /\ヽ / ,r―''''''ヽ, \__,ノヽ ,r‐' ,、;-‐''''""''ヾ、、, l / ./ r''"ヽ, \, l`ヽ、 j l ,. / ' l ヽ、 ト, ヽ .Lj∠、'´ , i, / `ヾ、`'ヽゝ , / 二'''" ,;、, `''ー゙--、 ゙ヽ-ッ-‐'´ ./`ト-:rイ「´ ゙l;:`''ト-、,_ ノ'i,
- 12 名前:以下、名無しにかわりましてVIPがお送りします mailto:sage [2008/12/18(木) 14:29:06.52 ID:wawkFBud0]
- この>>1絶対最後までいかねーなw
GLのポリゴンから説明はじめるとか終わらないだろw
- 13 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:31:18.16 ID:4/9/sa+x0]
- ____
/ \ / ─ ─\ しかたないおっおっお。 / (●) (●) \ | (__人__) | \________/ \ ` ⌒´ ,/ | | | ノ \ .| | | /´ | | | | l | | | ヽ -一ー_~、⌒)^),-、 | |________| ヽ ____,ノγ⌒ヽ)ニニ-  ̄ | | | ■■■■■■■■■■■■■■■ ■☆■□□□■□□□■□■□■ ☆=美少女 ■□■□□□□□□□■□□□■ ■□□□□□■□□□■□■□■ ■□■□■■■■■□■□■□■ ■□■□■□□□■□■■■□■ ■■■■■□□□■□□□□□■ ■□□□■■□■■■■■■□■ ■□■□□□□□□□□□■□■ ■□■□■■■■■□■□■□■ ■□■□■□□□■□■■■□■ ■□■□■□□□■□□□■□■ ■□■■■■□■■□■■■□■ ■♪□□□□□□■□□□□□■ ♪=スタート地点 ■■■■■■■■■■■■■■■
- 14 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:31:55.21 ID:+bPtQl+T0]
- 左手系だっけ?
めんっどくっせえwww
- 15 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:33:14.00 ID:4/9/sa+x0]
- / ̄ ̄\
/ .― \ | ( ●)(●) なかなか良いじゃないか。 . | (__人__) | ` ⌒´ノ さて、ここからプログラミングの時間だ。 . | } . ヽ } まず、迷路のデータを書くぞ「0」は道、「1」が壁で、「2」が美少女を表している。 ヽ ノ #define MAZE_WIDTH 15 // 迷路の幅は15マス(キラリ) #define MAZE_HEIGHT 15 // 迷路の高さも15マス(ニヤリ) int maze[MAZE_HEIGHT][MAZE_WIDTH] = { { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, { 1,2,1,0,0,0,1,0,0,0,1,0,1,0,1 }, // 1 は壁 { 1,0,1,0,0,0,0,0,0,0,1,0,0,0,1 }, { 1,0,0,0,0,0,1,0,0,0,1,0,1,0,1 }, // 2 は美少女 { 1,0,1,0,1,1,1,1,1,0,1,0,1,0,1 }, { 1,0,1,0,1,0,0,0,1,0,1,1,1,0,1 }, // 0 は道となっておりまーす { 1,1,1,1,1,0,0,0,1,0,0,0,0,0,1 }, { 1,0,0,0,1,1,0,1,1,1,1,1,1,0,1 }, { 1,0,1,0,0,0,0,0,0,0,0,0,1,0,1 }, { 1,0,1,0,1,1,1,1,1,0,1,0,1,0,1 }, { 1,0,1,0,1,0,0,0,1,0,1,1,1,0,1 }, { 1,0,1,0,1,0,0,0,1,0,0,0,1,0,1 }, { 1,0,1,1,1,1,0,1,1,0,1,1,1,0,1 }, { 1,0,0,0,0,0,0,0,1,0,0,0,0,0,1 }, { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, }; //わからない所はスルーだよ
- 16 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:35:17.75 ID:4/9/sa+x0]
- ____
/ \ その見るだけで頭の痛くなるようなものはなんだお? / ─ ─\ / (●) (●) \ それがプログラムというものかお? | (__人__) | )) / ∩ノ ⊃ / ( \ / _ノ | | .\ “ /__| | |\ /___ /| ., ──‐、 / \ . .| _ノ ヽ これはC言語というもんだ。 | ( ●) (●) | (__人__) , -―ーっ そして、3Dを表現するためにOpenGLとGLUTというライブラリを使う。 | ` ⌒´ノ ( ゝ彡 ̄ . ン } ゙| ̄'| ( WindowsならDirectXという選択肢もあるがな ) /⌒ヽ、 ノ .|, | __/ ノ \_ィ ´ー‐ィ' ∫ | | / / r_____ ∬ | | / / |i ┌‐┐ | | ( 〆⌒'──r─≒、.((| |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄└‐┘ ̄ ̄ ̄ ̄ ̄ ̄ *わからない言葉はスルーだよ。
- 17 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:37:31.49 ID:4/9/sa+x0]
- ____
/ \ / ─ ─ \ / (○) (○) \ | (__人__) | いや、もういいから。 \ ` ⌒´ ,/ r、 r、/ ヘ ワールド座標系とかビューポートとか、難しい言葉のオンパレードで ヽヾ 三 |:l1 ヽ \>ヽ/ |` } | | だるい、だるすぎるおっおっお。 ヘ lノ `'ソ | | /´ / |. | 参考URLのっけとくから、あとは勝手にやってくれお \. ィ | | GLUTによる「手抜き」OpenGL入門 www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html / ̄ ̄\ / _ノ \ | ( ●)(●) ちぇっ、 . | (__人__) | ⌒ノ もっと知ったかぶりしたかっただろ常考。 . | } . ヽ } ヽ ノ r‐┴ 、l | でもまあ、話だけでも聞いていけよ。 _∠、 7i {ー 、 _, ‐ '´ l 丿,ト ヽ、\ / ヽ '´く ヾ==| 〈lハ、_ / ヽ\ ` ー\j /`' i `\ __ / ,._ \ヽ l V _」 - ' ´ 、__ \
- 18 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:39:24.61 ID:4/9/sa+x0]
- ________________________________
||旦 a.out |二|□|×| || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ || || || これがウィンドウですたい || || || || / ̄ ̄\ / _ノ \ 最近のパソコンなら、まず「ウィンドウ」を表示させるところから始めるだろ。 | ( ●)(●) | (__人__) そのために(OpenGL/GLUTで)必要なのは | ノ | ∩ノ ⊃ } 下の三行だ。 /ヽ / _ノ } ( ヽ / / ノ 英語が苦手なら日本語の部分を読むと良いだろ常考 ヽ “ /_| | \__/__ / glutInit(&argc, argv); // GLUTの準備(初期化)するですぅ glutCreateWindow("ウィンドウのなまえ"); // ウィンドウを表示するですぅ glutMainLoop(); // ウィンドウが閉じられるのを待つですぅ
- 19 名前:以下、名無しにかわりましてVIPがお送りします mailto:sage [2008/12/18(木) 14:39:35.74 ID:yL6SFCyf0]
- いいぞ もっとやれw
- 20 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:41:02.86 ID:4/9/sa+x0]
- (( (ヽ三/) (ヽ三/) ))
. (((i ) ___ ( i))) / / /_ノ ヽ_\ ヽ \ ( く /( @) (@)\ > ) ??? \ `/::::::⌒(__人__)⌒:::::\' / ヽ|  ̄ |/ \ / / ̄ ̄\ / ノ \ | (○) (○)| だめだ。もうやる夫の頭がパンクしている…… . | (__人__) | |U ` ⌒´ ノ . | U } . ヽ U } ヽ ノ \ / く \ \ | \ \ \ | |ヽ、二⌒)、 \
- 21 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:43:24.79 ID:4/9/sa+x0]
- / ̄ ̄\
/ .― \ やっぱ「やらない夫と学ぶC言語教室」とかいうスレを先に | ( ●)(●) . | (__人__) 立てるべきだっただろ常考。 | ` ⌒´ノ . | } やる夫がC言語を読み書きできるわけがないだろ。 . ヽ } ヽ ノ / く . ノ \ ノ  ̄ヽ (´ ヽ カ | l l||l 从人 l||l l||l 从人 l||l カ タ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. タ ヽ ____(^) (^) ^) ^) (^_(^) ^) ^)) ┌┬┬┐┌┬┬┬┐┌┬┬┬┐┌┬┬┬┐ ,. - ''"| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ρ ̄`l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ .キッ! / _ノ \ だが乗りかかった船だ!やる夫を引きずってでも ___∧,、| ( ●)(●)____  ̄ ̄ ̄`'` | (__人__)  ̄ ̄ ̄ ̄ 3DダンジョンRPGを作ってやる ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 22 名前:以下、名無しにかわりましてVIPがお送りします mailto:sage [2008/12/18(木) 14:43:43.23 ID:+bPtQl+T0]
- これでパンクしたらもう無理だろww
- 23 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:44:55.08 ID:tlVRxrRy0]
- 期待
- 24 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:45:03.02 ID:4/9/sa+x0]
- / ̄ ̄\
/ _ノ \ というわけで説明を続行するぞ。 | ( ●)(●) . | (__人__) 下のようなプログラムを書くと、ウィンドウを表示することができる。 | ` ⌒´ノ . | } 説明してないお約束が満載ではあるがな。 . ヽ } ヽ ノ 説明してないところはお約束だ。やる夫はスルーしろ。 ========================== #include <GL/glut.h> int main(int argc, char *argv[]) { glutInit(&argc, argv); //初期化するですぅ glutCreateWindow(argv[0]); // ウィンドウ表示するですぅ glutMainLoop(); // 待機するですぅ return 0; } ========================== *わからないところはスルーだよ
- 25 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:46:00.99 ID:BirDbrIUO]
- あぁ、懐かしいです。
夢を追い掛けていた頃を思い出すです。
- 26 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:47:05.59 ID:4/9/sa+x0]
- / ̄ ̄\
/ _ノ \ 次だ次! | ( ●)(●) . | (__人__) ウィンドウを開いたら、次はウィンドウの中身を描く準備が必要だ! | ` ⌒´ノ . | } つまり、ウィンドウの中身を描く「関数」をGLUTに「登録する」。 . ヽ } ヽ ノ \ つまり下のようなプログラムになるぞ / く \ \ | \ \ \ | |ヽ、二⌒)、 \ ================================ #include <GL/glut.h> void display() { /* ここにディスプレイの中身を描くためのプログラムを書くよ */ } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutCreateWindow(argv[0]); glutDisplayMode(GLUT_RGBA); // これは秘密のおまじないですぅ glutDisplayFunc(display); // ここでウィンドウの中身を描く関数「diplay()」を登録するですぅ glutMainLoop(); return 0; } ================================ *わからないところはスルーしよう
- 27 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:48:59.58 ID:tlVRxrRy0]
- 期待
- 28 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:49:05.66 ID:4/9/sa+x0]
- ____
/::::::─三三─\ /:::::::: ( ○)三(○)\ 気がついたらやらない夫が暴走してたお…… |::::::::::::::::::::(__人__):::: | ________ \::::::::: |r┬-| ,/ .| | | それに「秘密のおまじない」とかって何だお? ノ:::::::::::: `ー'´ \ .| | | ,, -‐ 、 /' ヽ それは色について決めてるんだ。 / ̄ ̄\ ./ i / ._ノ ヽ、\ / ...........i 光の3原色って知ってるか? | (●)(●) | / ..:::::::::::::::| | (__人__) | / ..::::::::::::::::::l 赤(R)、緑(G)、青(B)の三色さえあれば、 .| ` ⌒´ .} ./ ..::::::::::::::::::::! | }/ .::::::::::::::::::::/ どんな色でも作れるんだ。 ヽ ./ .:::::::::::::::::::/ .ヽ . ./ .:::::::::::::::::::/ GLUTではこの3原色に加えて透明度(A)も使える。 ,. ‐'"´ `'‐,r''"~ .:::::::::::::::::/ ..:./,. -‐‐- 、 l′ ..:::::::::::::/| :,' / !.:::::::/:i..:..l r 、 / !::::::::::: i..:..i 「GLUT_RGBA」というのは、赤(R)、緑(G)、青(B)、透明(A)の四つで l .......`:i i !:::::::::: ゙、:.i ! ::::::::::/ i i:::::::::: ヽ:i 色を表現することを宣言してるんだ。 .! ::::::::/ i .....i::::::::::: ヽ .ヽ ::::::| `、 `、 .....::::::::::::l:::::::::::: `, ちなみに、それぞれの色の強さは0〜1までの数値で表すぞ。 / \:::l. `、 ヽ::::::::::::::::::::l::::::::::: /'''ー─----、 `ヽ `、 .::::\:::::::::::::::|::::::::: /,, ,. ‐;''
- 29 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:51:05.81 ID:Qw1da+t80]
- 中身全然わからないまま丸暗記するくらいなら関数とかラップした初心者向けライブラリ使ったほうがマシだろJK
- 30 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:51:27.78 ID:4/9/sa+x0]
- ____
/\ /\ よくわからないけど、色なんてどうでもいいんじゃないかお? /( ●) (●)\ / :::::⌒(__人__)⌒:::::\ なんでそんなことわざわざ宣言しないといけないのかお? | |r┬-| | \ ` ー'´ / ., ──‐、 / \ . .| _ノ ヽ それに関してだが、GLUTはもう一つ色の仕組みを持っていてな、 | ( ●) (●) | (__人__) , -―ーっ 「インデックスカラーモード」とか言うらしいんだ。 | ` ⌒´ノ ( ゝ彡 ̄ . ン } ゙| ̄'| それと区別するためにわざわざ「GLUT_RGBA」を宣言してる。 /⌒ヽ、 ノ .|, | __/ ノ \_ィ ´ー‐ィ' ∫ ま、俺もよくわからないからスルーしてるんだが。 | | / / r_____ ∬ | | / / |i ┌‐┐ | | ( 〆⌒'──r─≒、.((| |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄└‐┘ ̄ ̄ ̄ ̄ ̄ ̄
- 31 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:53:09.02 ID:4/9/sa+x0]
- / ̄ ̄\
/ _ノ \ それはさておき、今度はウィンドウの背景色を決めるぞ。 | ( ●)(●) . | (__人__) とりあえず真っ白に染め上げる方法だが | ⌒ノ . | } glClearColor()関数で背景色を指定して、 . ヽ } ヽ ノ glCClear()関数で実際に背景を塗りつぶす。 今回のプログラムは上のやつに追加する形になる。 ============================================ (略) void display() { glClear(GL_COLOR_BUFFER_BIT); // ウィンドウの背景を下で決めた色で塗りつぶす予定を入れるです。 glFlush(); // 予定された事を実行するですぅ } int main(int argc, char *argv[]) { (略) glutCrearColor( 1.0, 1.0, 1.0, 1.0 ); // 色を決めるです。左から赤(R)、緑(G)、青(B)、透明(A)になってるですぅ。 glutMainLoop(); return 0; } ============================================ *わからない言葉はスルーだよ♪
- 32 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:53:17.94 ID:vkoHd9Sc0]
- コレは支援せざるを得ない
が この鯖状況で、最後まで投下し切れるのか?
- 33 名前:以下、名無しにかわりましてVIPがお送りします mailto:sage [2008/12/18(木) 14:53:30.98 ID:Hqh5uwmN0]
- 頭痛い
- 34 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:55:04.18 ID:4/9/sa+x0]
- ____
/_ノ ヽ、_ \ o゚((●)) ((●))゚o なんかもう、やる夫が理解しようとしまいとお構い無しに /::::::⌒(__人__)⌒::::::\ | |r┬-| | 話が進められてる気がするお。 \ `ー'´ / _ 巛.4゛\ _ ⊂ ̄ ヽ,, O(((<ヽ ~゛.-=ニニi お前が理解するのを待ってたら陽が暮れるだろ常考 .\^( .|_,,,,....,,,,_| .| ,,.. -=彡 ̄ .| .|,,丶 今のうちに俺がハッスルしながらプログラム書いていくから、 / /. | | \ \ // _/ _,,...,,_,. ..,,__,」、 | \ \ 3Dプログラミングがどういうものか ./y' > / / ノ !\. | Yコl二i /」 / ./._( ノ .| ! . ヽ! よく見ておけよ / イ .i ̄ \、_____,,... -ー'' | \i / ̄ ̄\ | ヽ、 ,,,,.. ー-<_,,... | | { \ ノ 〜彡='^゛ i\ .| | { ,ー、 ヽ | ゛ヾ . | | ( ̄人 ̄) } L,,_ .| .| (●)(●) | |゛ー-= 、 | .| ヽ / .! !~゛〜 . | \__/ . ヾ ! .| | ! .|
- 35 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:57:42.79 ID:Qw1da+t80]
- C言語一通り理解できる人なら大体わかるかもだけど、素人は意味不明だろうなこれ
- 36 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:57:53.61 ID:4/9/sa+x0]
- , ⌒ハ ハ⌒ 、
j:::::::::ヽ ,ヘ^ ⌒ Y ⌒ヽ/ .::::::::i ノ:::::::::j(ノ ..::::....::::..:::: ::. .ヾ)':::::::::::i ル:::::リγ::..:::::..:::...ヘ、: : : :: ノy:::::::リ Yyノ ノ :ノ...:ノ ノ ヽ ::::::) ルリノ リ::::::( ( ●) (<::( もう、お兄ちゃんったらはりきっちゃって。 . ハ::::ハ ,, r‐フ リ) ) ) ) )、  ̄ノくハ( そんなことしてたら腰を痛めるわ。 (,(.( ' ヘ い ノ:::)) ノ/)` ヾ ソ ̄(( 、 常識的に考えなさいよ.。 ,' ノ Y Y l: ( ...... ..... i lヾ. .. :::::::: ::::: .ノ あとでお茶でも入れてあげる。 / ̄ ̄\ / _ノ \ | ( ●)(●) ああすまないな、やらない子。 . | (__人__) | ` ⌒´ノ . | } . ヽ } ヽ ノ \ / く \ \ | \ \ \ | |ヽ、二⌒)、 \
- 37 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 14:59:17.06 ID:4/9/sa+x0]
- / ̄ ̄\
/ ノ ⌒ \ 次は、ビューポートの設定だ。 | (●)(●) | . | (__人__) | これは単にウィンドウのどこに絵を描くのか決めるだけだ。 | ` ⌒´ ノ . | } ちなみに、glutReshapeFunc()で登録した関数は . ヽ } ヽ ノ \ ウィンドウの大きさが変わった時に呼び出されるぞ。 / く \ \ | \ \ \ ウィンドウの大きさが変わるたびにビューポートを設定しなおしてやる | |ヽ、二⌒)、 \ と良いだろう。(仕様的に考えて) ===================================== void resize(int w, int h) { glViewport(0, 0, w, h); // ビューポートを設定するですぅ。 } int main(int argc, char *argv[]) { (略) glutReshapeFunc(resize); // resize()関数を登録するですぅ glutMainLoop(); return 0; } =====================================
- 38 名前:以下、名無しにかわりましてVIPがお送りします mailto:sage [2008/12/18(木) 15:00:03.30 ID:lUB48O+l0]
- 支援
- 39 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:01:05.32 ID:4/9/sa+x0]
- / ̄ ̄\
/ ヽ_ .\ 次にカメラの設定を決める。 ( ●)( ●) | (__人__) | ここでいう「カメラ」ってのは3Dの世界をディスプレイに l` ⌒´ | { | 投影するためのメタファであるので厳密にはうんたらかんたら…… { / ヽ ノ ▼/ ̄  ̄ ̄)____ 〃(⊥) ´/ / ̄ ̄/ / 〃 ⌒i ___i /⌒\./ /∧ ∧し' __|;;;;;;;;;;i / ̄ ̄\ / U _ノ \ まあ、その、なんだ。 | ( ー)(ー) . | u (__人__) カメラとレンズの設定をしようぜってことだ。 | ` ⌒´ノ . | / ̄) gluPerspective()で、レンズの調整。 . ヽ / / ̄ ヽ / / gluLookAt()で、カメラの位置と向きを調整するぞ。 / ̄ ̄/ |  ̄~~|\_ | |\_)
- 40 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:03:04.08 ID:4/9/sa+x0]
- / ̄ ̄ ̄ \ ホジホジ
/ ― ― \ / (●) (●) \ ……ぶーん | (__人__) | \ mj |⌒´ / 〈__ノ ノ ノ ======================================== GLdouble sx, sy, sz; // カメラの位置ですぅ GLbouble dx, dy, dz; // カメラの向きですぅ void resize(int w, int h) { glViewport(0,0,w,h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(90.0, (double)w/(double)h, 1.0, 10000.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(sx,sy,sz, sx+dx*300,sy+dy*300,sz+dz, 0.0, 0.0, 1.0); } ======================================== *くわしいことはマニュアルか何か読んでね。ここではスルーしちゃうから。
- 41 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:03:24.62 ID:Qw1da+t80]
- 初心者向けじゃないが、Cの扱いを心得てる奴が、とりあえず使ってみる時の手順としては参考になりそうだ。
だれかdat保存してまとめてくれたら需要ありそうだな。
- 42 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:05:09.23 ID:4/9/sa+x0]
- / ̄ ̄\
/ _ノ \ ところでやる夫、紙に絵を描くとき、見える所を描くよな? | (● )(─) | (__人__) . | ノ | ∩ ノ ⊃ / ./ _ノ (. \ / ./_ノ │ \ “ /___| | . \/ ___ / (( (ヽ三/) (ヽ三/) )) . (((i ) ___ ( i))) あたりまえだお! / / /_ノ ヽ_\ ヽ \ ( く /( ●) (●)\ > ) 見えないところなんて描けるわけないお。 \ `/::::::⌒(__人__)⌒:::::\' / ヽ|  ̄ |/ \ /
- 43 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:07:07.60 ID:4/9/sa+x0]
-
/ ̄ ̄\ / _ノ \ そう、つまり物陰に何かが隠れていたとしても、 | ( ー)(ー) . | (__人__) それを描く必要は無い。 | ` ⌒´ノ .l^l^ln } ところが、3DCGの場合、物陰に隠れているネコやドラム缶の情報も . ヽ L } ゝ ノ ノ あらかじめ持ってしまってるわけだ。 / / \ / / \ . / / |ヽ、二⌒)、 ヽ__ノ ____ / \ / ─ ─\ 意味がわからないお。 / (●) (●) \ | (__人__) | )) / ∩ノ ⊃ / ( \ / _ノ | | .\ “ /__| | |\ /___ /|
- 44 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:09:13.54 ID:4/9/sa+x0]
- / ̄ ̄\
/ _ノ \ | ( ●)(●) 奥にあるものから描いていけば問題ないんだ。 . | (__人__) | ` ⌒´ノ でも、デフォルトではどっちが奥にどっちが後ろにいるのかわからない。 . | } . ヽ } だから間違えて手前にあるものを先に描いてしまうと、 ヽ ノ \ / く \ \ 奥にあるはずの画像で上書きして、 | \ \ \ | |ヽ、二⌒)、 \ 画面がめちゃくちゃになることがあるんだ。 ____ / \ / ─ ─\ ますますわからんお。 / (ー) (ー) \ | (__人__) | )) / ∩ノ ⊃ / ( \ / _ノ | | .\ “ /__| | |\ /___ /|
- 45 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:11:06.74 ID:4/9/sa+x0]
- / ̄ ̄\
/ .― / \ | ( ●)(●) | とにかくだ。 . | (__人__) | | ` ⌒´ ノ デプスバッファ(別名:深度バッファ/Zバッファ)を使えっていうことだ。 . ∧ .} /\ヽ / ,r―''''''ヽ, \__,ノヽ ,r‐' ,、;-‐''''""''ヾ、、, l デプスバッファを使うために、 / ./ r''"ヽ, \, l`ヽ、 glClearのフラグにGL_DEPTH_BUFFER_BITを追加する j l ,. / ' l ヽ、 ト, ヽ 初期化時にglEnable(GL_DEPTH_TEST);を追加する .Lj∠、'´ , i, / `ヾ、`'ヽゝ ディスプレイモードに GLUT_DEPTHフラグを追加するだろ。 , / 二'''" ,;、, `''ー゙--、 ゙ヽ-ッ-‐'´ ./`ト-:rイ「´ ゙l;:`''ト-、,_ ノ'i, ======================================= void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // デプスバッファも一緒にクリアするですぅ glFlush(); } int main(int argc, char *argv[]) { (略) glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH); // デプスバッファを追加するですぅ glutCreateWindow(argv[0]); (略) glEnable(GL_DEPTH_TEST); // デプスバッファ出撃ですぅ! glutMainLoop(); return 0; } =======================================
- 46 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:13:56.10 ID:4/9/sa+x0]
- ,-‐-、 ,rー-、
j::::::::::.ヽ ,ヘ^ ⌒ Y ⌒ヽ/ .:::::::.i ,ノ::::::::::j(ノ ..::::....::::..:::: ::. .ヾ)':::::::::.i ル:::::リγ::..:::::..:::.:..ヘ、: : : :: ノy:::::リ よく頑張るわねー。 Yyノ ノ :ノ...:ノ _ノ ヽ ::::::) ルリノ リ::::::( ( ●) (●::( お兄ちゃん、やる夫、お茶が入ったわよ。 . ハ::::ハ '' r‐ァ リ) ) ) ) )、 ⌒ ノくハ( (,(.( ' ヘ (´ ノ:::)) ノ/)` ヾ ソ ̄(( 、 / / ノ Y ヾ. / | ( ...... ..... i/ 旦 | ヽ::::::. .:::: .ノ ヽ `ー──--r'う 旦 )`ー───、))) 旦 / ____ / ⌒ ⌒ \ ./( ―) ( ●) \ ありがとだお。 /::⌒(_人_)⌒::::: | | ー .| やらない夫の話がむずかしすぎて、困ってたところなんだお。 \ /
- 47 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:15:48.62 ID:4/9/sa+x0]
- / ̄ ̄\
/ _ノ \ | ( ●)(●) 次は、マス目を描いてみる。 . | (__人__) | ` ⌒´ノ 直線を描くためには、頂点を二つ指定する必要がある。 . | } . ヽ } glBegin(GL_LINE)とglEnd()で、直線のための頂点を指定するぞ。 ヽ ノ \ / く \ \ wktk.vip2ch.com/dl.php?f=vipper2843.png | \ \ \ | |ヽ、二⌒)、 旦 \ ======================================= void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); // いろいろ初期化するですぅ gluLookAt(sx,sy,sz, sx+dx*300,sy+dy*300,sz+dz, 0.0, 0.0, 1.0); // カメラ位置を調整するですぅ for ( i=0; i<MAZE_WIDTH; i++ ) { glBegin(GL_LINE); glVertex2d(i*BLOCKSIZE,0); // 始点を登録するですぅ glVertex2d(i*BLOCKSIZE,MAZE_HEIGHT*BLOCKSIZE); // 終点を登録するですぅ glEnd(); } for ( i=0; i<MAZE_HEIGHT; i++ ) { glBegin(GL_LINE); glVertex2d(0,i*BLOCKSIZE); // 始点を登録するですぅ glVertex2d(MAZE_WIDTH*BLOCKSIZE,i*BLOCKSIZE); // 終点を登録するですぅ glEnd(); } glFlush(); }
- 48 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:17:26.18 ID:4/9/sa+x0]
- / ̄ ̄\
/ _ノ \ | ( ●)(●) さて、いよいよ迷路を描いていくぞ。 . | (__人__) | ` ⌒´ノ GLUTには立方体を描くためにglutSolidCube()関数というのがある。 . | } . ヽ } あと、この立方体の位置を調整するのにglTranslated()関数も使う。 ヽ ノ \ / く \ \ 迷路情報は >>15 で書いた通りだ。 | \ \ \ | |ヽ、二⌒)、 旦 \ wktk.vip2ch.com/dl.php?f=vipper2844.png ======================================= void display() { for ( i=0; i<MAZE_HEIGHT; i++ ) { for ( j=0; j<MAZE_WIDTH; j++ ) { glPushMatrix(); glTranslated((0.5+j)*BLOCKSIZE,(0.5+i)*BLOCKSIZE,5); // これから描く物の位置を調整するですぅ if ( maze[i][j] == 1 ) { glutSolidCube(BLOCKSIZE); // 迷路の壁を描くことを予定するですぅ } else if ( maze[i][j] == 2 ) { drawLady(); // 美少女を描くですぅ } else { /* 何もしない */ } glPopMatrix(); } } =======================================
- 49 名前:以下、名無しにかわりましてVIPがお送りします mailto:sage [2008/12/18(木) 15:20:32.84 ID:05BQ1Hyh0]
- わずかに支援
- 50 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:21:06.78 ID:vkoHd9Sc0]
- 頑張れ支援
- 51 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:21:25.01 ID:vkoHd9Sc0]
- もっと支援
このままじゃサル食らうな
- 52 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:21:53.73 ID:vkoHd9Sc0]
- つうわけで、こっちがサル食らうまで支援しつづける
頑張れ>>1
- 53 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:22:03.53 ID:4/9/sa+x0]
- / ̄ ̄\
/ _ノ \ | ( ー)(ー) 仕上げに美少女を描く関数を作って、 . | /// (__人__) | ` ⌒´ノ あとはキーボードでダンジョン内を歩けるようにすれば . | } . ヽ } とりあえず完成だろ常考。 ヽ ノ \ / く \ \ あ、そうそう。glEnable(GL_LIGHTING);glEnable(GL_LIGHT0);で、 | \ \ \ 空間にライトもつけとくだろ。 | |ヽ、二⌒)、 \ ____ /⌒ ⌒\ お?適当に割愛するなんていい加減な奴だお。 /( >) (<)\ /::::::⌒(__人__)⌒::::: \ でも、これで3D美少女ダンジョンRPGが完成だお! | /| | | | | | \ (、`ー―'´, /  ̄ ̄ ̄ *ソース: wktk.vip2ch.com/dl.php?f=vipper2845.zip
- 54 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:22:17.74 ID:vkoHd9Sc0]
- 支援
- 55 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:23:40.72 ID:4/9/sa+x0]
- ____
/::::::─三三─\ /:::::::: ( ○)三(○)\ ついにゴールイン……!!!!? |::::::::::::::::::::(__人__):::: | ________ \::::::::: |r┬-| ,/ .| | | ノ:::::::::::: `ー'´ \ .| | | wktk.vip2ch.com/dl.php?f=vipper2846.png / ̄ ̄\ / _ノ \ | ( ー)(ー) 言い忘れてたけど、OpenGL/GLUTだけだと、 . | /// (__人__) | ` ⌒´ノ 画像を「読み込む」関数が無いから、 . | } . ヽ } 自分でいろいろと作らないといけないみたいなんだよな。 ヽ ノ \ / く \ \ でもそんなのやってられるわけないだろ常考。 | \ \ \ | |ヽ、二⌒)、 \ おしまい
- 56 名前:以下、名無しにかわりましてVIPがお送りします mailto:sage [2008/12/18(木) 15:23:43.09 ID:jIxDLa040]
- 支援
- 57 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:25:28.10 ID:4/9/sa+x0]
- うん、これで終わりなんだ。
- 58 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:25:49.31 ID:Qw1da+t80]
- なんというやっつけ
- 59 名前:以下、名無しにかわりましてVIPがお送りします mailto:sage [2008/12/18(木) 15:27:23.14 ID:05BQ1Hyh0]
- あ、おつかれっす
- 60 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:32:51.64 ID:ONGk6hTI0]
- 僕はIrrlichtたんをおすすめするお!
- 61 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:33:08.10 ID:vkoHd9Sc0]
- まてこらwwwwwww
- 62 名前:以下、名無しにかわりましてVIPがお送りします mailto:sage [2008/12/18(木) 15:36:20.02 ID:GbCBiTmL0]
- (^o^) 乙
- 63 名前:以下、名無しにかわりましてVIPがお送りします [2008/12/18(木) 15:38:20.84 ID:4/9/sa+x0]
- あ、そうそう。
>>53のソースをコンパイルするには gcc dungeon.c -lglut で、おkだよ。(某*nixの場合) Windowsとか他のマシンではやったことないからてきとーに調整してね(はあと) >>60 参考にさせてもらうお(^ω^)
|
|