atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
超コンピ研 - コンピュータ&クッキング研究会@中京大学豊田キャンパス
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
超コンピ研 - コンピュータ&クッキング研究会@中京大学豊田キャンパス
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
超コンピ研 - コンピュータ&クッキング研究会@中京大学豊田キャンパス
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • 超コンピ研 - コンピュータ&クッキング研究会@中京大学豊田キャンパス
  • 逆引きRuby/SDL

超コンピ研 - コンピュータ&クッキング研究会@中京大学豊田キャンパス

逆引きRuby/SDL

最終更新:2008年06月28日 03:49

Bot(ページ名リンク)

- view
メンバー限定 登録/ログイン
ただの団員用メモです。
一般的な逆引きRuby/SDLを必要としている方はこちら。
何か解釈が変なところとか間違ってるとことか動くけどまずいようなところがあったらコメで教えてください。

  • インストール
  • 学内のマシンにインストール
  • 描画した円を動かす
  • HWSURFACEを利用して描画を高速化する

インストール

ActiveScriptRubyをインストールしている場合
  1. RubyForgeからrubysdl-win32-binの最新版をダウンロードします。
  2. 解凍したら、install.rbをダブルクリックします。こんだけ。

ActiveScriptRubyをインストールしていない場合
  1. まずActiveScriptRubyをインストールしてください。

学内のマシンにインストール

中京大の演習室のマシンではRubyは動きますがSDLはインストールされていないため動きません。
家のマシンなら前述の方法でSDLはインストールできますが、大学のマシンはCドライブいじくれないためインストールできません。
仕方ないので自由に弄れるHドライブにRubyの実行環境ごと放り込んでパスを通す方法を試してみました。

  • RubyForgeから、rubysdl-win32-packageの最新版をDL
  • 展開したらrubyという名前のディレクトリが生成されるのでH:\に置く
  • 環境変数を設定するためのバッチ(setrubesdlenv.bat)をDLして、H:\に置く

使い方
コマンドプロンプトを立ち上げたら、
setrubysdlenv.bat
を実行

あとは普通にRuby/SDLのプログラムが実行できます。

描画した円を動かす

SDLはサーフェスという単位で画面内に描画するものを管理しているので、描画した円とか線とかを直接オブジェクトとしては扱えません。
  1. 新しいサーフェスを作る
  2. 作ったサーフェスに描画
  3. メインのサーフェスに貼り付け
こうやってやらないといけないんですよね。
最初これに気付かず、画像を読み込むときの
image = SDL::Surface.loadImage("filename")
を真似て、
ball = SDL::Surface.drawFilledCircle(x, y, r, color)
みたいなことやってました。
drawFilledCircle()メソッドはSDL::Surfaceのインスタンスに対してはたらくメソッドで、勝手に新しいサーフェスを生成してくれるわけじゃないようです。
そういうメソッドもつくってくれないでしょうかねぇ・・・。

↓テスト用のプログラム。きたないけど一応貼っときます。
require 'sdl'
require 'fpstimer'
 
class Ball
  def initialize(x, y, color, screen)
    @screen = screen
    @x = x
    @y = y
    @x_direction = 1
    @y_direction = 1
    @c = SDL::Surface.new(SDL::SWSURFACE, 10, 10, 16, 0x00000000, 0x00000000, 0x00000000,x00000000)
    @c.displayFormat
    @c.drawFilledCircle(5,5,5,color)
  end
 
  def move
    if (@x == 310) or (@x == 0)
      @x_direction *= -1
    end
    if (@y == 230) or (@y == 0)
      @y_direction *= -1
    end
    @x += (5 * @x_direction)
    @y += (2 * @y_direction)
    @screen.put(@c, @x, @y)
  end
end
 
SDL.init(SDL::INIT_VIDEO)
screen = SDL.setVideoMode(320, 240, 16, SDL::SWSURFACE) 
 
ball_a = Ball.new(10, 20, [0, 0, 255], screen)
ball_b = Ball.new(30, 100, [255, 0, 0], screen)
 
 
timer = FPSTimerSample.new
timer.reset
 
loop do
  while event = SDL::Event2.poll
    case event
    when SDL::Event2::Quit 
      exit
    end
  end
 
  screen.fillRect(0, 0, 320, 240, [ 0, 0, 0 ])
  ball_a.move
  ball_b.move
 
  timer.wait_frame do
    screen.updateRect(0, 0, 0, 0)
  end
 
end

fsptimerは必須じゃないけど一応使ってみました。
入手はRuby/SDL本家からどうぞ。

HWSURFACEを利用して描画を高速化する

SDL.setVideoMode(320, 240, 16, SDL::SWSURFACE)
を、
SDL.setVideoMode(320, 240, 16, SDL::HWSURFACE)
に書き換えると、WindowsならDirectXを利用して描画してくれるので描画がかなり高速になります。


total
-
today
-
yesterday
-
「逆引きRuby/SDL」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • setrubesdlenv.bat
超コンピ研 - コンピュータ&クッキング研究会@中京大学豊田キャンパス
記事メニュー

メニュー

Meta

  • トップページ
  • メンバー紹介
  • この部活について
  • 入部案内
  • 編集ガイドライン
  • このwikiのページ一覧
  • タグ一覧
  • 最近のリンク元一覧
  • お問い合わせ

Develop

  • Ruby/Rails
  • リッチクライアント
  • データベース
  • 組み込みシステム

Using

  • Windows
  • Linux
  • PC DIY
  • NetBook
  • ネットワーク
  • Wi-Fi
  • FON
  • STドメイン裏利用ガイド
  • おすすめソフトウェア紹介
  • 団員に推奨される装備品

Cooking

  • 料理
  • ドルチェ

Other

  • 毎日見るべきサイト
  • 倉庫

講義連携ページ

  • 椙山の方専用足あと帳
  • Webコミュシステム用ページ

リンク

  • FON Japan
  • 山形県立産業技術短期大学校
  • 大阪産業大学
  • はなさかラジオ
  • 有限会社 ちた屋
  • その他のリンク





ここを編集
記事メニュー2

更新履歴

取得中です。


ここを編集
人気記事ランキング
  1. OpenWRT設定
  2. 組み込みシステム
  3. 安物電波時計+Arduino+LaFoneraでNTPサーバ
  4. 編集ガイドライン
  5. 入部案内
  6. 団員に推奨される装備品
  7. 激安サーバー機を改造して高性能PCとして使う
  8. Ubuntu 8.04でLet's note CF-R6のホイールパッドを利用する
もっと見る
最近更新されたページ
  • 5155日前

    安物電波時計+Arduino+LaFoneraでNTPサーバ
  • 5350日前

    トップページ
  • 5466日前

    メンバー紹介
  • 5486日前

    OpenSuSE
  • 5846日前

    Ruby on Rails で作る簡易掲示板
  • 5883日前

    リゾット
  • 5883日前

    食材
  • 5883日前

    テンプレート
  • 5883日前

    PC DIY
  • 5883日前

    超コンピ研宣言
もっと見る
人気記事ランキング
  1. OpenWRT設定
  2. 組み込みシステム
  3. 安物電波時計+Arduino+LaFoneraでNTPサーバ
  4. 編集ガイドライン
  5. 入部案内
  6. 団員に推奨される装備品
  7. 激安サーバー機を改造して高性能PCとして使う
  8. Ubuntu 8.04でLet's note CF-R6のホイールパッドを利用する
もっと見る
最近更新されたページ
  • 5155日前

    安物電波時計+Arduino+LaFoneraでNTPサーバ
  • 5350日前

    トップページ
  • 5466日前

    メンバー紹介
  • 5486日前

    OpenSuSE
  • 5846日前

    Ruby on Rails で作る簡易掲示板
  • 5883日前

    リゾット
  • 5883日前

    食材
  • 5883日前

    テンプレート
  • 5883日前

    PC DIY
  • 5883日前

    超コンピ研宣言
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. AviUtl2のWiki
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  6. ソードランページ @ 非公式wiki
  7. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  8. ドラゴンボール Sparking! ZERO 攻略Wiki
  9. 星飼いの詩@ ウィキ
  10. ヒカマーWiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 検索してはいけない言葉 @ ウィキ
  6. 発車メロディーwiki
  7. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  8. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  9. オレカバトル アプリ版 @ ウィキ
  10. 英傑大戦wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. モンスター一覧_第2章 - モンスター烈伝オレカバトル2@wiki
  3. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  4. 高崎線 - 発車メロディーwiki
  5. 近藤旬子 - 馬主データベース@Wiki
  6. 地獄のデザイナーさん1 - 【トレパク】 きりつき 検証まとめwiki 【地獄のデザイナーさん】
  7. 召喚 - PATAPON(パタポン) wiki
  8. 細田守 - アニヲタWiki(仮)
  9. ステージ攻略 - パタポン2 ドンチャカ♪@うぃき
  10. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.