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. タルト
  2. EMOBILE
  3. ラップトップ
  4. Webコミュシステム用ページ
  5. OpenWRT設定
  6. 安物電波時計+Arduino+LaFoneraでNTPサーバ
  7. ネットワーク系
  8. リッチクライアント
  9. DD-WRT化したLaFonera 3台をWDSで接続して、ネットワークを中継する
  10. 朝食
もっと見る
最近更新されたページ
  • 5257日前

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

    トップページ
  • 5569日前

    メンバー紹介
  • 5588日前

    OpenSuSE
  • 5949日前

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

    リゾット
  • 5985日前

    食材
  • 5985日前

    テンプレート
  • 5985日前

    PC DIY
  • 5985日前

    超コンピ研宣言
もっと見る
人気タグ「Redmine」関連ページ
  • DebianでSVN+Redmineサーバーを作ってみる
もっと見る
人気記事ランキング
  1. タルト
  2. EMOBILE
  3. ラップトップ
  4. Webコミュシステム用ページ
  5. OpenWRT設定
  6. 安物電波時計+Arduino+LaFoneraでNTPサーバ
  7. ネットワーク系
  8. リッチクライアント
  9. DD-WRT化したLaFonera 3台をWDSで接続して、ネットワークを中継する
  10. 朝食
もっと見る
最近更新されたページ
  • 5257日前

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

    トップページ
  • 5569日前

    メンバー紹介
  • 5588日前

    OpenSuSE
  • 5949日前

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

    リゾット
  • 5985日前

    食材
  • 5985日前

    テンプレート
  • 5985日前

    PC DIY
  • 5985日前

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

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. NIKKEぺでぃあ
  2. 聖帝語録@wiki
  3. イナズマイレブンGO2 クロノ・ストーン ネップウ/ライメイ 攻略wiki
  4. テレビ番組スポンサー表 @ wiki
  5. EDF5:地球防衛軍5@Wiki
  6. EDF4.1:地球防衛軍4.1 THE SHADOW OF NEW DESPAIR @Wiki
  7. Wizardry外伝 ~五つの試練~@Wiki
  8. ホワイトハッカー研究所
  9. Abiotic Factor 日本語攻略Wiki
  10. マージマンション@wiki
もっと見る
人気Wikiランキング

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

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

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

  1. MADTOWNGTAまとめwiki
  2. MadTown GTA (Beta) まとめウィキ
  3. ステラソラwiki
  4. 首都圏駅メロwiki
  5. まどドラ攻略wiki
  6. Last Z: Survival Shooter @ ウィキ
  7. ちいぽけ攻略
  8. シュガードール情報まとめウィキ
  9. ソニックレーシング クロスワールド 攻略@ ウィキ
  10. 戦国ダイナスティ攻略Wiki@ウィキ
もっと見る
全体ページランキング

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

  1. ブラック・マジシャン・ガール - アニヲタWiki(仮)
  2. Pokémon LEGENDS Z-A - アニヲタWiki(仮)
  3. 真崎杏子 - 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  4. 参加者一覧 - MADTOWNGTAまとめwiki
  5. - 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  6. ブラックマジシャンガールのエロ動画 - イナズマイレブンの人気投票で五条さんを一位にするwiki 五条さんおめでとう
  7. 破壊神マハデーヴァ - モンスター烈伝オレカバトル2@wiki
  8. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  9. カラスバ(ポケモン) - アニヲタWiki(仮)
  10. XVI - MADTOWNGTAまとめwiki
もっと見る

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

2019 AtWiki, Inc.