sgl 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. data/ChangeLog +234 -0
  2. data/Manifest.txt +94 -0
  3. data/Rakefile +16 -5
  4. data/examples/cocoa1-basic.rb +14 -0
  5. data/examples/cocoa10-transparent.rb +26 -0
  6. data/examples/cocoa11-application.rb +13 -0
  7. data/examples/cocoa2-draw.rb +23 -0
  8. data/examples/cocoa3-affine.rb +29 -0
  9. data/examples/cocoa4-font.rb +24 -0
  10. data/examples/cocoa5-image.rb +22 -0
  11. data/examples/cocoa6-sound.rb +24 -0
  12. data/examples/cocoa7-movie.rb +40 -0
  13. data/examples/cocoa8-movieoverlay.rb +42 -0
  14. data/examples/cocoa9-streaming.rb +40 -0
  15. data/examples/opengl1-basic.rb +14 -0
  16. data/examples/opengl11-application.rb +13 -0
  17. data/examples/opengl2-draw.rb +23 -0
  18. data/examples/opengl3-affine.rb +29 -0
  19. data/examples/sample1.rb +11 -0
  20. data/examples/sample10.rb +16 -0
  21. data/examples/sample11.rb +22 -0
  22. data/examples/sample11a.rb +33 -0
  23. data/examples/sample12.rb +30 -0
  24. data/examples/sample12a.rb +35 -0
  25. data/examples/sample13.rb +116 -0
  26. data/examples/sample15.rb +24 -0
  27. data/examples/sample16.rb +31 -0
  28. data/examples/sample16a.rb +35 -0
  29. data/examples/sample6.rb +18 -0
  30. data/examples/sample7.rb +16 -0
  31. data/examples/sample9.rb +20 -0
  32. data/examples/sgl-sound1.rb +6 -0
  33. data/examples/sgl-sound2.rb +19 -0
  34. data/examples/sine.ogg +0 -0
  35. data/examples/testgl.rb +169 -0
  36. data/lib/sgl/bass-api.rb +202 -0
  37. data/lib/sgl/bass-sample.rb +106 -0
  38. data/lib/sgl/bass.rb +46 -0
  39. data/lib/sgl/cocoa-app.rb +43 -0
  40. data/lib/sgl/cocoa-color.rb +65 -0
  41. data/lib/sgl/cocoa-draw.rb +72 -0
  42. data/lib/sgl/cocoa-event.rb +229 -0
  43. data/lib/sgl/cocoa-media.rb +144 -0
  44. data/lib/sgl/cocoa-notuse.rb +493 -0
  45. data/lib/sgl/cocoa-window.rb +203 -0
  46. data/lib/sgl/cocoa.rb +8 -0
  47. data/lib/sgl/notuse-objs.rb +358 -0
  48. data/lib/sgl/opengl-app.rb +38 -0
  49. data/lib/sgl/opengl-color.rb +44 -0
  50. data/lib/sgl/opengl-draw.rb +260 -0
  51. data/lib/sgl/opengl-event.rb +325 -0
  52. data/lib/sgl/opengl-modules.rb +22 -0
  53. data/lib/sgl/opengl-window.rb +224 -0
  54. data/lib/sgl/opengl.rb +7 -0
  55. data/lib/sgl/sgl-basic.rb +61 -0
  56. data/lib/sgl/sgl-button.rb +135 -0
  57. data/lib/sgl/sgl-client.rb +21 -0
  58. data/lib/sgl/sgl-color.rb +82 -0
  59. data/lib/sgl/sgl-connect.rb +9 -0
  60. data/lib/sgl/sgl-objlib.rb +0 -0
  61. data/lib/sgl/sgl-objs.rb +0 -0
  62. data/lib/sgl/sgl-server.rb +58 -0
  63. data/lib/sgl/sgl-sound.rb +24 -0
  64. data/lib/sgl/sgl-spring.rb +216 -0
  65. data/lib/sgl/sgl-timer.rb +72 -0
  66. data/lib/sgl/sgl.rb +5 -0
  67. data/lib/sgl/version.rb +2 -2
  68. data/scripts/makemanifest.rb +20 -0
  69. data/test/test_bass.rb +27 -0
  70. data/test/test_cocoa_app.rb +5 -5
  71. data/test/test_helper.rb +9 -1
  72. data/test/test_module_ruby16.rb +22 -21
  73. data/test/test_opengl_app.rb +4 -5
  74. data/test/test_opengl_basic.rb +3 -4
  75. data/test/test_opengl_fullscreen.rb +4 -6
  76. data/test/test_opengl_novice.rb +3 -6
  77. data/test/test_sgl.rb +4 -27
  78. data/test/test_sound.rb +15 -0
  79. data/website/challenge1.html +91 -0
  80. data/website/challenge1.txt +30 -0
  81. data/website/challenge2.html +144 -0
  82. data/website/challenge2.txt +73 -0
  83. data/website/challenge3.html +63 -0
  84. data/website/challenge3.txt +15 -0
  85. data/website/cocoa.html +88 -0
  86. data/website/cocoa.txt +35 -0
  87. data/website/description.html +138 -0
  88. data/website/description.txt +90 -0
  89. data/website/exercise1.html +264 -0
  90. data/website/exercise1.txt +192 -0
  91. data/website/exercise2.html +683 -0
  92. data/website/exercise2.txt +597 -0
  93. data/website/exhibition.html +84 -0
  94. data/website/exhibition.txt +24 -0
  95. data/website/howto.html +134 -0
  96. data/website/howto.txt +56 -0
  97. data/website/index.html +17 -9
  98. data/website/index.txt +13 -4
  99. data/website/sound.html +141 -0
  100. data/website/sound.txt +87 -0
  101. data/website/stylesheets/grade.png +0 -0
  102. data/website/stylesheets/screen.css +21 -20
  103. metadata +109 -3
data/test/test_helper.rb CHANGED
@@ -1,2 +1,10 @@
1
+ # Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
2
+ # License: Ruby License
3
+
4
+ $__test_sgl__ = true
5
+
6
+ libdir = File.expand_path(File.dirname(__FILE__) + '/../lib')
7
+ $LOAD_PATH.unshift(libdir) if !$LOAD_PATH.include?(libdir)
8
+
1
9
  require 'test/unit'
2
- require File.dirname(__FILE__) + '/../lib/sgl'
10
+ require 'sgl'
@@ -1,29 +1,30 @@
1
- # Copyright (C) 2004-2005 Kouichirou Eto, All rights reserved.
1
+ # Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
2
+ # License: Ruby License
2
3
 
3
- =begin
4
4
  # only for Ruby 1.6
5
- class Array
6
- def fetch(n)
7
- a = self[n]
8
- if a.nil?
9
- a = yield
5
+ if /\A1\.6/ =~ RUBY_VERSION
6
+ class Array
7
+ def fetch(n)
8
+ a = self[n]
9
+ if a.nil?
10
+ a = yield
11
+ end
12
+ a
10
13
  end
11
- a
12
14
  end
13
- end
14
15
 
15
- module Enumerable
16
- def sort_by
17
- self.collect {|i| [yield(i), i]}.
18
- sort {|a,b| a[0] <=> b[0]}.
19
- collect! {|i| i[1]}
16
+ module Enumerable
17
+ def sort_by
18
+ self.collect {|i| [yield(i), i]}.
19
+ sort {|a,b| a[0] <=> b[0]}.
20
+ collect! {|i| i[1]}
21
+ end
20
22
  end
21
- end
22
23
 
23
- alias org_exit exit
24
- def exit(n)
25
- n = 0 if n == true
26
- n = 1 if n == false
27
- org_exit(n)
24
+ alias org_exit exit
25
+ def exit(n)
26
+ n = 0 if n == true
27
+ n = 1 if n == false
28
+ org_exit(n)
29
+ end
28
30
  end
29
- =end
@@ -1,9 +1,8 @@
1
- #!/usr/bin/env ruby
2
- # Copyright (C) 2004-2005 Kouichirou Eto, All rights reserved.
1
+ #!/usr/bin/env ruby -w
2
+ # Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
3
+ # License: Ruby License
3
4
 
4
- $LOAD_PATH.unshift("..") if !$LOAD_PATH.include?("..")
5
- require "sgl/opengl-app"
6
- require "test/unit"
5
+ require File.dirname(__FILE__) + '/test_helper.rb'
7
6
 
8
7
  class TestOpenglBasic < Test::Unit::TestCase
9
8
  def test_basic
@@ -1,9 +1,8 @@
1
1
  #!/usr/bin/env ruby -w
2
- # Copyright (C) 2004-2005 Kouichirou Eto, All rights reserved.
2
+ # Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
3
+ # License: Ruby License
3
4
 
4
- $LOAD_PATH.unshift("..") if !$LOAD_PATH.include?("..")
5
- require "sgl/opengl"
6
- require "test/unit"
5
+ require File.dirname(__FILE__) + '/test_helper.rb'
7
6
 
8
7
  class TestOpenGLBasic < Test::Unit::TestCase
9
8
  def test_all
@@ -1,18 +1,16 @@
1
1
  #!/usr/bin/env ruby -w
2
- # Copyright (C) 2004-2005 Kouichirou Eto, All rights reserved.
2
+ # Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
3
+ # License: Ruby License
3
4
 
4
- $LOAD_PATH.unshift("..") if !$LOAD_PATH.include?("..")
5
- require "sgl/opengl"
6
- require "test/unit"
5
+ require File.dirname(__FILE__) + '/test_helper.rb'
7
6
 
8
7
  class TestOpenGLFullscreen < Test::Unit::TestCase
9
8
  def test_all
10
9
  app = SGL::Application.new
11
10
  app.set_setup {
12
11
  app.useFullscreen(1024, 768)
13
- #app.useFullscreen(640, 480)
14
12
  app.window(100, 100)
15
- app.runtime = 10.1
13
+ app.runtime = 0.1
16
14
  }
17
15
  @i = 0
18
16
  app.set_display {
@@ -1,11 +1,8 @@
1
1
  #!/usr/bin/env ruby -w
2
- # Copyright (C) 2004-2005 Kouichirou Eto, All rights reserved.
2
+ # Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
3
+ # License: Ruby License
3
4
 
4
- $LOAD_PATH.unshift("..") if !$LOAD_PATH.include?("..")
5
- require "sgl/opengl"
6
- require "test/unit"
7
- #puts $LOAD_PATH
8
- #puts $"
5
+ require File.dirname(__FILE__) + '/test_helper.rb'
9
6
 
10
7
  if $0 == __FILE__
11
8
  class TestOpenGLNovice < Test::Unit::TestCase
data/test/test_sgl.rb CHANGED
@@ -1,32 +1,9 @@
1
1
  #!/usr/bin/env ruby -w
2
2
  # Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
3
+ # License: Ruby License
3
4
 
4
5
  require File.dirname(__FILE__) + '/test_helper.rb'
5
6
 
6
- =begin
7
-
8
- $LOAD_PATH.unshift("..") if !$LOAD_PATH.include?("..")
9
-
10
- $VERBOSE = true
11
-
12
- require 'test_helper'
13
- require 'test_cocoa_app'
14
- require 'test_module_ruby16'
15
- require 'test_opengl_app'
16
- require 'test_opengl_basic'
17
- require 'test_opengl_fullscreen'
18
- require 'test_opengl_novice'
19
-
20
- def load_files(dir, base)
21
- Dir.chdir(dir)
22
- Dir.glob(base+"*.rb") {|filename|
23
- require filename
24
- }
25
- end
26
-
27
- def main(argv)
28
- load_files("..", "sgl/test-opengl-")
29
- load_files("..", "sgl/sgl-")
30
- end
31
- main(ARGV)
32
- =end
7
+ require 'sgl/sgl-button'
8
+ require 'sgl/sgl-color'
9
+ require 'sgl/sgl-spring'
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby -w
2
+ # Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
3
+ # License: Ruby License
4
+
5
+ require File.dirname(__FILE__) + '/test_helper.rb'
6
+
7
+ class TestSound < Test::Unit::TestCase
8
+ TEST_FILENAME = "c:/WINDOWS/Media/start.wav"
9
+
10
+ def test_all
11
+ useSound
12
+ sound = loadSound(TEST_FILENAME)
13
+ sound.play; sleep 0.05
14
+ end
15
+ end
@@ -0,0 +1,91 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <title>
8
+ 特別課題1
9
+ </title>
10
+ <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
11
+ <style>
12
+
13
+ </style>
14
+ <script type="text/javascript">
15
+ window.onload = function() {
16
+ settings = {
17
+ tl: { radius: 10 },
18
+ tr: { radius: 10 },
19
+ bl: { radius: 10 },
20
+ br: { radius: 10 },
21
+ antiAlias: true,
22
+ autoPad: true,
23
+ validTags: ["div"]
24
+ }
25
+ var versionBox = new curvyCorners(settings, document.getElementById("version"));
26
+ versionBox.applyCornersToAll();
27
+ }
28
+ </script>
29
+ </head>
30
+ <body>
31
+ <div id="main">
32
+
33
+ <h1>特別課題1</h1>
34
+ <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/sgl"; return false'>
35
+ <p>Get Version</p>
36
+ <a href="http://rubyforge.org/projects/sgl" class="numbers">0.4.0</a>
37
+ </div>
38
+ <h2> テーマに沿ったアニメーション</h2>
39
+
40
+
41
+ <ul>
42
+ <li>課題: ある一つのテーマを選択し,5個のアニメーションによって表現する.
43
+ <ul>
44
+ <li>テーマ設定の例: 奥行感,透明性,虫の動き,色の対比,など.</li>
45
+ </ul></li>
46
+ </ul>
47
+
48
+
49
+ <h2>絵コンテ</h2>
50
+
51
+
52
+ <p>まず課題のテーマを考え,どのような動きをプログラムで実現するべきかを絵コンテにまとめる.</p>
53
+
54
+
55
+ <p>次回の授業の最初に絵コンテを提出する.授業時間内に絵コンテは返却する.</p>
56
+
57
+
58
+ <h2>発表</h2>
59
+
60
+
61
+ <p>次次週の授業時間内にプレゼンテーション形式で発表する.</p>
62
+
63
+
64
+ <p>テーマ説明,プログラムを実行する(5個を順番に見せる),プログラムの内容
65
+ 説明(工夫した点など),という順番で発表する.</p>
66
+
67
+
68
+ <h3>プログラムの注意点</h3>
69
+
70
+
71
+ <ul>
72
+ <li>windowの大きさは自由.最低200&#215;200以上とする.</li>
73
+ <li>コマンドを定義する機能を最低3個は使うこと.</li>
74
+ <li>ファイル名は指定のものにすること.</li>
75
+ <li>ファイル名: special1a.rb, special1b.rb, special1c.rb, special1d.rb, special1e.rb</li>
76
+ </ul>
77
+
78
+
79
+ <h3>採点</h3>
80
+
81
+
82
+ <p>テーマ選び,絵コンテも含め,内容を重視した採点をします.</p>
83
+ <p class="coda">
84
+ 20th June 2007<br>
85
+ </p>
86
+ </div>
87
+
88
+ <!-- insert site tracking codes here, like Google Urchin -->
89
+
90
+ </body>
91
+ </html>
@@ -0,0 +1,30 @@
1
+ h1. 特別課題1
2
+
3
+ h2. テーマに沿ったアニメーション
4
+
5
+ * 課題: ある一つのテーマを選択し,5個のアニメーションによって表現する.
6
+ ** テーマ設定の例: 奥行感,透明性,虫の動き,色の対比,など.
7
+
8
+ h2. 絵コンテ
9
+
10
+ まず課題のテーマを考え,どのような動きをプログラムで実現するべきかを絵コンテにまとめる.
11
+
12
+ 次回の授業の最初に絵コンテを提出する.授業時間内に絵コンテは返却する.
13
+
14
+ h2. 発表
15
+
16
+ 次次週の授業時間内にプレゼンテーション形式で発表する.
17
+
18
+ テーマ説明,プログラムを実行する(5個を順番に見せる),プログラムの内容
19
+ 説明(工夫した点など),という順番で発表する.
20
+
21
+ h3. プログラムの注意点
22
+
23
+ * windowの大きさは自由.最低200x200以上とする.
24
+ * コマンドを定義する機能を最低3個は使うこと.
25
+ * ファイル名は指定のものにすること.
26
+ * ファイル名: special1a.rb, special1b.rb, special1c.rb, special1d.rb, special1e.rb
27
+
28
+ h3. 採点
29
+
30
+ テーマ選び,絵コンテも含め,内容を重視した採点をします.
@@ -0,0 +1,144 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <title>
8
+ 特別課題2
9
+ </title>
10
+ <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
11
+ <style>
12
+
13
+ </style>
14
+ <script type="text/javascript">
15
+ window.onload = function() {
16
+ settings = {
17
+ tl: { radius: 10 },
18
+ tr: { radius: 10 },
19
+ bl: { radius: 10 },
20
+ br: { radius: 10 },
21
+ antiAlias: true,
22
+ autoPad: true,
23
+ validTags: ["div"]
24
+ }
25
+ var versionBox = new curvyCorners(settings, document.getElementById("version"));
26
+ versionBox.applyCornersToAll();
27
+ }
28
+ </script>
29
+ </head>
30
+ <body>
31
+ <div id="main">
32
+
33
+ <h1>特別課題2</h1>
34
+ <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/sgl"; return false'>
35
+ <p>Get Version</p>
36
+ <a href="http://rubyforge.org/projects/sgl" class="numbers">0.4.0</a>
37
+ </div>
38
+ <h2>マウスの動きに反応するアニメーション</h2>
39
+
40
+
41
+ <ul>
42
+ <li>課題: ある一つのテーマを選択し,マウスの動きに反応する5個のプログラムで表現する.
43
+ <ul>
44
+ <li>前回と違い,マウスを動かすと反応するアニメーションでなくてはならない.</li>
45
+ <li>テーマ設定は前回と同じテーマを選択してもよい.違うテーマでもよい.</li>
46
+ <li>前回作成したプログラムを再利用してもかまわない.</li>
47
+ <li>テーマ設定の例: 奥行感,透明性,虫の動き,色の対比,など.</li>
48
+ </ul></li>
49
+ </ul>
50
+
51
+
52
+ <h2>絵コンテ</h2>
53
+
54
+
55
+ <p>次週の授業の最初に絵コンテを提出する.その場で見て返却する.絵コンテは
56
+ その後の授業でもずっともってくること.プレゼンの日には必ず持ってくること.</p>
57
+
58
+
59
+ <p>絵コンテには,学籍番号,名前,選んだテーマ,作品のタイトルを記入する.
60
+ 一枚の用紙に一つのアニメーションというフォーマットで描くこと.</p>
61
+
62
+
63
+ <p>マウスを動かすとどう動きに反映されるかを考え,その反応をできるだけ詳細に
64
+ 絵コンテに描くこと.</p>
65
+
66
+
67
+ <h2>発表</h2>
68
+
69
+
70
+ <p>課題は,授業時間内にプレゼンテーション形式で発表する.</p>
71
+
72
+
73
+ <p>プレゼンテーション方法は前回と同じ.テーマの説明,最初に考えた絵コンテ,
74
+ プログラムを実行させる(5個を順番に見せる),プログラムの内容の説明(工夫
75
+ した点など),という順番.</p>
76
+
77
+
78
+ <h2>ファイル名</h2>
79
+
80
+
81
+ <p><code>sp2a.rb, sp2b.rb, sp2c.rb, sp2d.rb, sp2e.rb</code></p>
82
+
83
+
84
+ <p>指定のファイル名が存在するかどうかで課題(プログラム)提出を判定している
85
+ ため,必ず指定のファイル名を用いること.</p>
86
+
87
+
88
+ <h2>プログラムの注意点</h2>
89
+
90
+
91
+ <ul>
92
+ <li>windowの大きさは自由だが,最低200&#215;200以上にする.</li>
93
+ <li>コマンドを定義する機能を最低5個は使うこと.</li>
94
+ <li>ファイル名は指定のものにすること.</li>
95
+ </ul>
96
+
97
+
98
+ <h2>作品制作にかかわる注意</h2>
99
+
100
+
101
+ <p>絵コンテで考えた動きを実現するのが基本だが,難しいと思った場合は簡略化
102
+ してよい.絵コンテで考えた動きを実際にプログラムで作りはじめるのが理想
103
+ だが,実際に作り初めてみると,どう作っていいのかわからない,難しすぎて
104
+ 作れないということがある.その場合はあきらめるのではなく,いままで学ん
105
+ だことの範囲でどのような動きを実現できるかを考える.とにかく何かを実現
106
+ することが重要である.</p>
107
+
108
+
109
+ <p>必ず作品制作に取り組む前に絵コンテを描き,見せにくることが必要.まずど
110
+ のような動きを作るかを考えてから,プログラミングを開始する.絵コンテを
111
+ 見せにこないでプログラムだけ作っても,課題提出とは見なしません.</p>
112
+
113
+
114
+ <p>必ず5つのプログラムを作る.1つのプログラムで5つのアニメーション,では
115
+ だめです.</p>
116
+
117
+
118
+ <p>コマンドを定義する機能を最低5個は使うこと.5つのプログラムで5つのコマ
119
+ ンドでよい.5つのプログラムで共通に使いまわせるようなコマンドを作れる
120
+ とよい.ある一つのテーマを5つのプログラムで実現すると,同じ形が複数の
121
+ プログラムにでてくることがある.そのとき,その形を書くコマンドを定義し
122
+ て,それを使い回すことによってプログラムを簡略化できることがある.その
123
+ ようにプログラムのテクニックとしてのコマンドの使い方を体験することも課
124
+ 題の一つである.コマンド機能を使ってないプログラムの場合は課題提出とは
125
+ 見なしません.</p>
126
+
127
+
128
+ <p>アニメーションの長さは指定しないが,短くコンパクトにまとめること.長く
129
+ ても5つで3分以内におさめること.</p>
130
+
131
+
132
+ <h2>採点</h2>
133
+
134
+
135
+ <p>テーマ選び,絵コンテも含め,内容を重視した採点をします.</p>
136
+ <p class="coda">
137
+ 20th June 2007<br>
138
+ </p>
139
+ </div>
140
+
141
+ <!-- insert site tracking codes here, like Google Urchin -->
142
+
143
+ </body>
144
+ </html>
@@ -0,0 +1,73 @@
1
+ h1. 特別課題2
2
+
3
+ h2. マウスの動きに反応するアニメーション
4
+
5
+ * 課題: ある一つのテーマを選択し,マウスの動きに反応する5個のプログラムで表現する.
6
+ ** 前回と違い,マウスを動かすと反応するアニメーションでなくてはならない.
7
+ ** テーマ設定は前回と同じテーマを選択してもよい.違うテーマでもよい.
8
+ ** 前回作成したプログラムを再利用してもかまわない.
9
+ ** テーマ設定の例: 奥行感,透明性,虫の動き,色の対比,など.
10
+
11
+ h2. 絵コンテ
12
+
13
+ 次週の授業の最初に絵コンテを提出する.その場で見て返却する.絵コンテは
14
+ その後の授業でもずっともってくること.プレゼンの日には必ず持ってくること.
15
+
16
+ 絵コンテには,学籍番号,名前,選んだテーマ,作品のタイトルを記入する.
17
+ 一枚の用紙に一つのアニメーションというフォーマットで描くこと.
18
+
19
+ マウスを動かすとどう動きに反映されるかを考え,その反応をできるだけ詳細に
20
+ 絵コンテに描くこと.
21
+
22
+ h2. 発表
23
+
24
+ 課題は,授業時間内にプレゼンテーション形式で発表する.
25
+
26
+ プレゼンテーション方法は前回と同じ.テーマの説明,最初に考えた絵コンテ,
27
+ プログラムを実行させる(5個を順番に見せる),プログラムの内容の説明(工夫
28
+ した点など),という順番.
29
+
30
+ h2. ファイル名
31
+
32
+ @sp2a.rb, sp2b.rb, sp2c.rb, sp2d.rb, sp2e.rb@
33
+
34
+ 指定のファイル名が存在するかどうかで課題(プログラム)提出を判定している
35
+ ため,必ず指定のファイル名を用いること.
36
+
37
+ h2. プログラムの注意点
38
+
39
+ * windowの大きさは自由だが,最低200x200以上にする.
40
+ * コマンドを定義する機能を最低5個は使うこと.
41
+ * ファイル名は指定のものにすること.
42
+
43
+ h2. 作品制作にかかわる注意
44
+
45
+ 絵コンテで考えた動きを実現するのが基本だが,難しいと思った場合は簡略化
46
+ してよい.絵コンテで考えた動きを実際にプログラムで作りはじめるのが理想
47
+ だが,実際に作り初めてみると,どう作っていいのかわからない,難しすぎて
48
+ 作れないということがある.その場合はあきらめるのではなく,いままで学ん
49
+ だことの範囲でどのような動きを実現できるかを考える.とにかく何かを実現
50
+ することが重要である.
51
+
52
+ 必ず作品制作に取り組む前に絵コンテを描き,見せにくることが必要.まずど
53
+ のような動きを作るかを考えてから,プログラミングを開始する.絵コンテを
54
+ 見せにこないでプログラムだけ作っても,課題提出とは見なしません.
55
+
56
+ 必ず5つのプログラムを作る.1つのプログラムで5つのアニメーション,では
57
+ だめです.
58
+
59
+ コマンドを定義する機能を最低5個は使うこと.5つのプログラムで5つのコマ
60
+ ンドでよい.5つのプログラムで共通に使いまわせるようなコマンドを作れる
61
+ とよい.ある一つのテーマを5つのプログラムで実現すると,同じ形が複数の
62
+ プログラムにでてくることがある.そのとき,その形を書くコマンドを定義し
63
+ て,それを使い回すことによってプログラムを簡略化できることがある.その
64
+ ようにプログラムのテクニックとしてのコマンドの使い方を体験することも課
65
+ 題の一つである.コマンド機能を使ってないプログラムの場合は課題提出とは
66
+ 見なしません.
67
+
68
+ アニメーションの長さは指定しないが,短くコンパクトにまとめること.長く
69
+ ても5つで3分以内におさめること.
70
+
71
+ h2. 採点
72
+
73
+ テーマ選び,絵コンテも含め,内容を重視した採点をします.
@@ -0,0 +1,63 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <title>
8
+ 最終課題
9
+ </title>
10
+ <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
11
+ <style>
12
+
13
+ </style>
14
+ <script type="text/javascript">
15
+ window.onload = function() {
16
+ settings = {
17
+ tl: { radius: 10 },
18
+ tr: { radius: 10 },
19
+ bl: { radius: 10 },
20
+ br: { radius: 10 },
21
+ antiAlias: true,
22
+ autoPad: true,
23
+ validTags: ["div"]
24
+ }
25
+ var versionBox = new curvyCorners(settings, document.getElementById("version"));
26
+ versionBox.applyCornersToAll();
27
+ }
28
+ </script>
29
+ </head>
30
+ <body>
31
+ <div id="main">
32
+
33
+ <h1>最終課題</h1>
34
+ <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/sgl"; return false'>
35
+ <p>Get Version</p>
36
+ <a href="http://rubyforge.org/projects/sgl" class="numbers">0.4.0</a>
37
+ </div>
38
+ <h2>レポート: プログラミングにふれてみての感想</h2>
39
+
40
+
41
+ <p>課題: この授業では,プログラミングによってコンピュータ上に形を作るとい
42
+ うことを学んだ.授業を受ける前と後とでは,プログラミングというものにつ
43
+ いて,どのような考え方の変化があったか.受ける前はプログラミングについ
44
+ てこう考えていた,受けた後ではプログラミングとはこのようなものだと思う
45
+ ようになった,というこのような形式で,この授業で学んだことをレポートと
46
+ して書く.</p>
47
+
48
+
49
+ <ul>
50
+ <li>字数: 600字以上〜1200字以内</li>
51
+ <li>提出: メールで提出する.</li>
52
+ <li>レポートの最初に必ず,タイトル,学籍番号,名前を書いてください.</li>
53
+ <li>レポートはメールの本文に書く.(ワード・ドキュメントの添付は禁止.)</li>
54
+ </ul>
55
+ <p class="coda">
56
+ 20th June 2007<br>
57
+ </p>
58
+ </div>
59
+
60
+ <!-- insert site tracking codes here, like Google Urchin -->
61
+
62
+ </body>
63
+ </html>
@@ -0,0 +1,15 @@
1
+ h1. 最終課題
2
+
3
+ h2. レポート: プログラミングにふれてみての感想
4
+
5
+ 課題: この授業では,プログラミングによってコンピュータ上に形を作るとい
6
+ うことを学んだ.授業を受ける前と後とでは,プログラミングというものにつ
7
+ いて,どのような考え方の変化があったか.受ける前はプログラミングについ
8
+ てこう考えていた,受けた後ではプログラミングとはこのようなものだと思う
9
+ ようになった,というこのような形式で,この授業で学んだことをレポートと
10
+ して書く.
11
+
12
+ * 字数: 600字以上〜1200字以内
13
+ * 提出: メールで提出する.
14
+ * レポートの最初に必ず,タイトル,学籍番号,名前を書いてください.
15
+ * レポートはメールの本文に書く.(ワード・ドキュメントの添付は禁止.)