- Timestamp:
- 05/15/08 23:39:54 (5 years ago)
- Location:
- lang/ruby/StarLife/star_life
- Files:
-
- 6 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/ruby/StarLife/star_life/config.rb
r11352 r11657 2 2 3 3 module StarLife 4 GAME_TITLE = 'Star Life'5 4 FONT_SIZE = 16 6 5 CELL_WIDTH = 16 7 6 CELL_HEIGHT = 16 7 8 8 MAP_WIDTH = 20 9 9 MAP_HEIGHT = 20 … … 12 12 MAP_WINDOW_WIDTH = CELL_WIDTH * MAP_WIDTH 13 13 MAP_WINDOW_HEIGHT = CELL_HEIGHT * MAP_HEIGHT 14 14 15 STATUS_WINDOW_X = MAP_WINDOW_WIDTH + CELL_WIDTH * 2 15 16 STATUS_WINDOW_Y = CELL_HEIGHT 16 17 STATUS_WINDOW_WIDTH = 128 17 18 STATUS_WINDOW_HEIGHT = 128 19 20 GAME_TITLE = 'Star Life' 18 21 SCREEN_WIDTH = STATUS_WINDOW_WIDTH + MAP_WINDOW_WIDTH + CELL_WIDTH * 3 19 22 SCREEN_HEIGHT = MAP_WINDOW_HEIGHT + CELL_HEIGHT * 2 -
lang/ruby/StarLife/star_life/controller.rb
r11638 r11657 1 1 module StarLife 2 2 StarRuby::Input.instance_eval do 3 # 1 �t���[�������������Ȃ��悤�ɂ��� keys �̃��b�p�[3 # 1 フレーム分しか押せないようにした keys のラッパー 4 4 def triggers(device) 5 # duration �̓L�[�����������牟�����������f������������(�t���[����) 6 # ���̏ꍇ�A������ςȂ��ɂ��Ă� �t���[�������������ĂȂ��̂Ɠ������ƂɂȂ� keys(device, :duration => 1) 5 # duration はキーが押されてから押されていると判断される持続時間 (フレーム数) 6 # この場合、押しっぱなしにしても 1 フレーム分しか押してないのと同じことになる 7 keys(device, :duration => 1) 7 8 end 8 9 9 10 def repeatings(device) 10 # delay ��2 ��ȍ~�u�����ꂽ�v�Ɣ��ʂ����܂ł̒x������(�t���[����)11 # interval ��2 ��ȍ~�u�����ꂽ�v�Ɣ��f�������ԊԊu (�t���[����)12 # 2 ��́u�����ꂽ�v�����f�����̂�1 �����elay �t���[����13 # ���̌� ��ȍ~�́u�����ꂽ�v�����f�����܂łɂ�������interval �t���[��14 # ��ė������Ă�11 # delay は 2 回目以降「押された」と判別されるまでの遅延時間 (フレーム数) 12 # interval は 2 回目以降「押された」と判断される時間間隔 (フレーム数) 13 # 2 回目の「押された」が判断されるのは 1 回目から delay フレーム後で 14 # その後 3 回目以降の「押された」が判断されるまでにかかるのは interval フレーム 15 # って理解であってる? 15 16 # 16 # ����Ă܂�(by hajimehoshi)17 # 合ってます (by hajimehoshi) 17 18 keys(device, { 18 19 :duration => 1, :delay => 2, :interval => 0 -
lang/ruby/StarLife/star_life/life.rb
r11352 r11657 1 1 module StarLife 2 2 class Life 3 INITIAL_PD = 0.3 # �l��3 INITIAL_PD = 0.3 # 一番最初の人口密度 4 4 5 5 attr_accessor :alive, :score -
lang/ruby/StarLife/star_life/map.rb
r11352 r11657 44 44 end 45 45 end 46 47 # class Fixnum48 # def convert2mapx49 # self / CELL_WIDTH * CELL_WIDTH - CELL_WIDTH50 # end51 52 # def convert2mapy53 # self / CELL_HEIGHT * CELL_HEIGHT - CELL_HEIGHT54 # end55 # end -
lang/ruby/StarLife/star_life/model.rb
r11352 r11657 64 64 @time = Time.new 65 65 66 # �X�R�A�̌v�Z 67 # �X�R�A�͈� score_map �ɕۑ����Ă���ife.score �ɃR�s�[���Ă��� # ����Life.score �ɕۑ��������܂������Ȃ��B����� 66 # スコアの計算 67 # スコアは一旦 score_map に保存してから Life.score にコピーしている 68 # 直接 Life.score に保存するとうまくいかない。原因不明 68 69 score_map = MapArray.new(@map.height) { MapArray.new(@map.width) { 0 } } 69 70 @map.height.times do |cell_y| -
lang/ruby/StarLife/star_life/view.rb
r11352 r11657 48 48 49 49 if [:playing].include?(model.state) 50 # �}�b�v�E�B���h�E�̕`�� window = @textures[:map_window] 50 # マップウィンドウの描画 51 window = @textures[:map_window] 51 52 map = model.map 52 53 map.height.times do |y| … … 56 57 end 57 58 end 58 # �f�o�b�O���[�h�̂Ƃ��̓X�R�A���� if model.debug_mode 59 # デバッグモードのときはスコアも描画 60 if model.debug_mode 59 61 map.height.times do |y| 60 62 map.width.times do |x| … … 64 66 end 65 67 66 # �J�[�\���̕`�� x, y = Input.mouse_location 68 # カーソルの描画 69 x, y = Input.mouse_location 67 70 if map.in?(x, y) 68 71 x = x / CELL_WIDTH * CELL_WIDTH - CELL_WIDTH … … 71 74 end 72 75 73 # �X�e�[�^�X�E�B���h�E�̕`�� window = @textures[:status_window] 76 # ステータスウィンドウの描画 77 window = @textures[:status_window] 74 78 render_text(window, "Generation : #{model.generation}", 0, 0, true) 75 79 render_text(window, "Interval : #{model.interval}", 0, CELL_HEIGHT, true)
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)