【Ruby/SDL他】Rubyでゲーム制作・総合スレッド
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2008/04/02(水) 02:11:27ID:cxIG00d1情報交換したり雑談したり質問したりするためのスレッドです。
ツクールXP(RGSS)についてはツクールスレ等でお願いします。
Ruby/SDL
http://www.kmc.gr.jp/~ohai/rubysdl.html
StarRuby
http://www.starruby.info/ja/
0084名前は開発中のものです。
2008/06/25(水) 10:43:04ID:pFm8UCsUたぶん描画より、「画面を覆い尽くす弾幕」の更新、ヒット判定の方がボトルネックになると思うぜ
0085名前は開発中のものです。
2008/06/25(水) 11:43:05ID:0H1XKKpHニコ動に動画あたよ
Ruby のゲーム開発の現状と自作ゲームライブラリ Star Ruby - 星一‐ニコニコ動画(SP1)
http://www.nicovideo.jp/watch/sm3733775
0086名前は開発中のものです。
2008/06/25(水) 13:33:39ID:JUyYpQJeSDLでシューティング作ってるんですけど 被弾した時に 画面全体を赤っぽくしたいんですが、画面全体を赤で塗りつぶして半透明にするような処理ってできますか?
0087名前は開発中のものです。
2008/06/25(水) 18:46:42ID:v4+cr6Bpどの辺に?
ソースコード見ても、C言語でガリガリ書いてるようにしか見えないし
ダウンロードページにも「Ruby/SDL は不要です。」って書いてあるよ
もしかして「RubyとSDLを使ってる」っていうオチか
俺が言ってるのは固有名詞の「Ruby/SDL」なんだが
>>86
Surface#fill_rectで塗りつぶした別サーフェス(screenと同じサイズの)を生成し
Surface#set_alphaでαブレンディングを有効にしてから重ねる
0088名前は開発中のものです。
2008/06/25(水) 19:19:29ID:JUyYpQJe0089名前は開発中のものです。
2008/06/25(水) 19:21:07ID:JUyYpQJe自分もそれでやろうとしたけどなんか出来ないんですよ・・・ もうちょいグーグル先生と逆引きに聞きながらがんばってみます
0090名前は開発中のものです。
2008/06/25(水) 20:01:53ID:JUyYpQJe初心者すぎて死にたい
orz
0091名前は開発中のものです。
2008/06/25(水) 20:08:50ID:nTAJQ39k(A) 書いたコード(抜粋でも可)
(B) 期待する結果
(C) 実際に起きた結果
を書くと良いかも。
「できない」だけではエスパーじゃないと答えづらいはず。
0092名前は開発中のものです。
2008/06/25(水) 22:14:00ID:JUyYpQJeSDL::Surface.new(SDL::HWSURFACE,640,480,8,220,10,20,70)
SDL::Surface#fill_rect(0,0,640,480,[220,10,20])
SDL::Surface#set_alpha(SDL::SRCALPHA,70)
ここらへんつかうのわかったんですけど書き方がわからなくて・・・;初心者すぎてごめんなさい;
0093名前は開発中のものです。
2008/06/25(水) 22:58:32ID:kaYQXnzU暇人は多い。でも、現在のコードが判らないと修正のしようもない。
0094名前は開発中のものです。
2008/06/25(水) 23:30:47ID:JUyYpQJeとりあえず適当に書いて抜粋したけど頭こんがらがってパニックになってます; 初心者にはムリっぽそうです
def act(input)
@pache.act(input)
is_crashed,books = @items.act(@pache)
if is_crashed
SDL::Mixer.halt_music
aka = SDL::Surface.new(SDL::HWSURFACE,640,480,8,220,10,20,70) #←ここで画面全体を赤くしたいです;。
def pityu(aka)
SDL::Surface#fill_rect(0,0,640,480,[220,10,20])
SDL::Surface#set_alpha(SDL::SRCALPHA,50)
end
pityu
sleep 2
# (4) ゲームオーバーになったらハイスコアを更新する
@high_score = @score if @high_score < @score
score #scoreをインスタンスクラスからグローバルクラスに
return :game_over
else
@score += books * 100 # (3) 本を 1 個取るごとに 100 点加算する
return nil
end
end
0095名前は開発中のものです。
2008/06/25(水) 23:51:55ID:JUyYpQJe汚いソースですけどマジでごめんなさいorz うpする自分も初心者丸出しで恥ずかしい
0096名前は開発中のものです。
2008/06/26(木) 00:41:08ID:uCUDTTyx実際に動くかどうかは未検証
screen = SDL::Screen.get
aka = SDL::Surface.new(screen.flags, screen.w, screen.h, screen.format)
aka.fill_rect(0, 0, aka.w, aka.h,[220,10,20])
aka.set_alpha(SDL::SRCALPHA, 50)
screen.put(aka, 0, 0)
0097名前は開発中のものです。
2008/06/26(木) 00:48:21ID:Y1fNGck7マジありがとうございます; 書き方全然違ってて恥ずかしい・・・;
いまからいれてきてみます。
0098名前は開発中のものです。
2008/06/26(木) 01:34:03ID:Y1fNGck7009996
2008/06/26(木) 09:43:49ID:uCUDTTyx実際にはrenderメソッドの中に入れる必要がある
(画面に地形やキャラクターを描いた後で赤くする)
それ以外の部分は、手元でRuby/SDLのサンプル使って検証してみたところ動いたので問題なさそう
0100名前は開発中のものです。
2008/06/27(金) 00:50:18ID:OOVE5AKfもうマジ初心者の質問すぎてごめんなさい・・・ リファレンスマニュアル読んでもわからないんです・・
0101名前は開発中のものです。
2008/06/27(金) 02:46:41ID:bltVx0hU2.x(最新は2.0.1)という二つのバージョンがあって、
>>96が書いているSDL::Screen.getは2.xにしかない。
リファレンスマニュアルもバージョン毎にある(1.xと2.xは別)ので要注意。
SDL::Screen.getがうまくいかないという>>100は1.xを使っているのではないか。
念のために、SDL::VERSIONの値を教えてほしい。
require 'sdl'
p SDL::VERSION
0102名前は開発中のものです。
2008/06/27(金) 13:19:02ID:FLBA5DaJけどたぶんスターター使って起動してるから多分そっちのバージョンが低いのかも・・・('A`)
0103名前は開発中のものです。
2008/06/27(金) 14:02:06ID:FLBA5DaJでもactの中でスクリーンプット置くにはどうしたらいいんだろう・・・
render(screen)のところにそのまんま全部おいたら常に赤くなるのは確認できたんですけど 死んだときに赤くするって処理がいまだにできないですor2
いろいろためしてますが・・・もうダメぽ
http://www.uploda.org/uporg1507985.rar.html とりあえずmainソースです;
0104名前は開発中のものです。
2008/06/27(金) 21:06:56ID:l2w5o4Csもう消えてる
0105名前は開発中のものです。
2008/06/29(日) 09:23:06ID:+QlqCrVnなんとか自己解決しました。
被弾した時にすぐに別のシーンに移動してしまっていたようで 新しくスクリーンアップデートをつくってあげたらなんとかあかくなりましたor2お騒がせしてごめんなさい
0106名前は開発中のものです。
2008/07/11(金) 19:52:05ID:iVchH/POhttp://ruby-game-dev.org/
まだほとんど何もないけど。
0107名前は開発中のものです。
2008/07/11(金) 20:14:05ID:zL2sa+vS俺がプレイした中でハマったのはSOAR(ただしプレイスタイルはボタン連打)だけなんだが
0108名前は開発中のものです。
2008/07/13(日) 07:03:02ID:XXccfbsjRubyでゲーム開発のコミニティがほしいといってたから作ったんだね
0109名前は開発中のものです。
2008/07/16(水) 00:25:20ID:tEiF1FT20110名前は開発中のものです。
2008/07/23(水) 12:43:57ID:XJisHIkxイベント画像がフォルダ開いて丸見えってのはやっぱツライよな。
0111名前は開発中のものです。
2008/07/23(水) 13:33:03ID:09s8RLrZ0112名前は開発中のものです。
2008/07/23(水) 14:23:56ID:jaDqW5960113名前は開発中のものです。
2008/07/23(水) 19:13:56ID:IFZqEpkn今のStarRubyでもTexture#dump/undumpあたりを使えばできるかもしれないけど、どっちにしても面倒そうだな
Ruby/SDLで言う、load_from_ioみたいなメソッドを実装してもらえるように
要望出してみたらどうだろう
もしくはもっとダイレクトに、暗号化機能そのものを提案するとか
0114名前は開発中のものです。
2008/07/23(水) 21:51:17ID:XJisHIkxたしかに、IOオブジェクトから画像をロードできればいいんだよな。
Rubyスクリプトが読める人には意味ないけど、とりあえず一般ユーザーの目をごまかせればいいんだし。
とか思ってたら、すでに星さんがこの話題を取り上げていたぜ
http://groups.google.com/group/starruby/browse_thread/thread/4029a1fa5486ee01
0115名前は開発中のものです。
2008/07/24(木) 12:17:59ID:vi/50UDV利便性との両立がフレームワーク作者の勘所だったりするわけですな。
0116名前は開発中のものです。
2008/07/24(木) 21:06:36ID:KjJDp2BX拡大縮小が使い物にならん気がする。
HDDまでアクセスし始める始末だから、メモリかなり使ってるのかなぁ。
結局SDLを直にやるか、代替クラス作らんといかんっぽいのが難か・・・。
0117名前は開発中のものです。
2008/07/24(木) 21:31:06ID:ZAyfyp08MyGameって、拡大縮小になんか特殊な処理やってるのか?
普通のRuby/SDLと同じだと思うが
0118名前は開発中のものです。
2008/07/24(木) 22:12:58ID:b4aMzTsiSDL経由でOpenGLを使うと楽かもね。
ttp://www.kmc.gr.jp/~ohai/sgt.rb とか。
0119名前は開発中のものです。
2008/07/26(土) 16:27:16ID:IqVhnzGT0120名前は開発中のものです。
2008/07/26(土) 16:38:03ID:LYWnlODe0121名前は開発中のものです。
2008/07/26(土) 16:53:45ID:IqVhnzGTただXcodeで書きたかったっていう、それだけ
0122名前は開発中のものです。
2008/07/27(日) 19:39:57ID:L0iN1u/r0123名前は開発中のものです。
2008/07/28(月) 19:29:54ID:9GhNVVJ30124名前は開発中のものです。
2008/08/03(日) 17:47:55ID:W/zmysiG0125名前は開発中のものです。
2008/08/03(日) 17:49:53ID:Fm7SEmEsPythonだとpycみたいなの
r2eの類だと全部一緒のexeになってまうでしょ?そんなのじゃなくて・・・
0126名前は開発中のものです。
2008/08/03(日) 17:50:25ID:Fm7SEmEsこっちより本スレで聞いてきまつ
0127名前は開発中のものです。
2008/08/03(日) 18:05:27ID:+gPnPllxyarvでバイトコード化はやってる筈だし検討はしてるみたいな事言ってた記憶はあるんだけどな
バイトコード化と暗号化は別もんだけど。
現状、上にも出てるけど手動でダンプしたのロードするとかが正攻法かもな
0128名前は開発中のものです。
2008/08/04(月) 08:00:58ID:2UcTdZru全然認識が間違ってたらすまんけど、RubyってGPLだよね。
ソースを暗号化してもGPLを盾にソース公開を要求されたら暗号化意味無くない?
(上のdumpの例は画像だから有効だろうけど)
0129名前は開発中のものです。
2008/08/04(月) 11:02:51ID:0vDDSQkq間違ってる
「GPLのツールを使って開発したソフトウェアはGPLでなければならない」というのは間違い。
GPLのソースコードを含む。GPLのライブラリーをリンクしている 場合にのみ感染する。
・自分が書いたRubyのスクリプトには任意のライセンスを適用できる。よってソース公開の義務はない。
あとRubyは、GPLとArtisticに似た独自ライセンスのデュアルライセンス
0130名前は開発中のものです。
2008/08/04(月) 14:55:29ID:JBgDhP6y拡張モジュールを使って、暗号化したソースを読む、という難読化を実現してる
例はあるよ。1.9 のバイトコードの外部化は検討中の段階。
0131名前は開発中のものです。
2008/08/04(月) 22:56:25ID:2UcTdZruレスTHX
ということは、
1.自作のRubyソースでGPLのソースを使わない。
2・GPLのRuby実行環境とリンクしない。
に気をつければGPL回避はできるわけですね。
(2.があるからmkexyはアウトですか。)
暗号化したRubyソースを復号化する外部プログラムを作って、
そのプログラムがRubyソースを復号化&system("ruby.exe 復号化したソースファイル")とかすれば
一応、Ruby.exeとはリンクしてないわけだから問題ない?
0132名前は開発中のものです。
2008/08/04(月) 23:05:09ID:nwnG0EQa0133名前は開発中のものです。
2008/08/04(月) 23:32:20ID:q0P6gIfFruby.exeにリンクしたからといってGPLに感染するわけではない
詳しくはRubyライセンスを読め
ttp://www.ruby-lang.org/ja/LICENSE.txt
また、exerbで生成したファイルも、GPL(LGPL)に感染はしない
ttp://exerb.sourceforge.jp/man/doc/license.ja.html
0134名前は開発中のものです。
2008/08/05(火) 22:47:08ID:9DK3Bk0RExerbで固めてUPXで圧縮とかで目的は果たせそう
ウィルス判定されそうだけどなw
0135名前は開発中のものです。
2008/08/09(土) 05:55:33ID:XTb0A79HRPGツクールXPなんかはファイル単位の暗号化やってるみたいだよね。
RPGツクールVXの方は、さらに進化していて1つのアーカイブにまとめているみたい。
こういうのって拡張モジュールのレベルで可能なのかな?
require上書きして・・・と思ったけど、組み込み関数だよな・・・
って、そろそろスレ違いなので本スレで聞いてくる
0136名前は開発中のものです。
2008/08/09(土) 15:58:15ID:Bpln2nruexerbでもrubygemsでもやってる
0137名前は開発中のものです。
2008/08/14(木) 20:24:31ID:q15OOEOgゲームループは、各オブジェクトの更新(update)と各オブジェクトの描画(render)の2ステップに分かれると思うのですが、各オブジェクトの更新のメソッド名が決められません
updateにしようとも思ったのですが、それではObservableから呼び出されるupdateとかぶってしまいます
いまは第二候補としてiterateを考えていますがいまいちです
ほかに良い名前があればお願いします
0138名前は開発中のものです。
2008/08/14(木) 21:06:08ID:+Csgcr000139名前は開発中のものです。
2008/08/15(金) 00:55:57ID:S09k7UOGもしくはイベント駆動的にon_every_frameとか
0140名前は開発中のものです。
2008/08/15(金) 16:44:29ID:3xc17uVBシンプルでタイプ量が少ないstepを使うことにします
ありがとうございました
0141名前は開発中のものです。
2008/08/26(火) 22:40:24ID:YnC+NSXLなにも考えずに1.9にしたら露骨に速くなったりするものかな
拡張ライブラリのコンパイルしなおしとかが面倒でなかなか試せなくて
0142名前は開発中のものです。
2008/08/27(水) 12:10:36ID:tSXh0P22もともとコアのライブラリは高速化のためにCで書かれてる
まあRubyで書かれた部分が
処理に大きなウェイトを占めるのなら、あるいは・・・・
0143名前は開発中のものです。
2008/08/27(水) 22:28:44ID:eVcLY6Kwやっぱりそんなに期待しちゃ駄目か
まずプロファイル取る所から真面目にやって見るよ
0144名前は開発中のものです。
2008/09/01(月) 18:36:52ID:Zwq+vFb8これだという情報を探し当てられなくて、行き詰まってしまいました。
解決方法をご存知の方がいらっしゃいましたら、どうか教えていただけませんでしょうか。
【状況】
sdlをインストールして更に
rubysdl(2系)をgemにてインストールし、
rsdlを opt/local/bin に入れました。
この状態で、下のサンプルプログラムを実行すると、窓は出ないでエラーが出ます。
【サンプル】
_______________________________
# ライブラリの読み込み
require "sdl"
# 定数の定義
SCREEN_W = 640
SCREEN_H = 480
# SDL の初期化
SDL.init(SDL::INIT_EVERYTHING)
SDL.set_video_mode(SCREEN_W, SCREEN_H, 16, SDL::SWSURFACE)
# 2 秒間待つ
sleep(2)
_______________________________
【エラー内容】
_NSAutoreleaseNoPool(): Object 0x3529b0 of class NSImage autoreleased with no pool in place - just leaking
2008-09-01 18:26:33.147 ruby[28998] *** _NSAutoreleaseNoPool(): Object 0x3e1e90 of class _NSThemeWidget autoreleased with no pool in place - just leaking
2008-09-01 18:26:33.147 ruby[28998] *** _NSAutoreleaseNoPool(): Object 0x3e16a0 of class NSFont autoreleased with no pool in place - just leaking
こういうのが沢山
0145名前は開発中のものです。
2008/09/02(火) 12:51:42ID:h/fuKRtUruby hoge.rb
じゃなくて
rsdl hoge.rb
で実行するんだぞ
0146名前は開発中のものです。
2008/09/02(火) 17:14:35ID:ezlAUq6Nご指摘の通りでした。
素人考えでIDE(netbeans)から動かそうとしていましたが、ターミナルから
rsdl hoge.rbで実行したら動きました。
どうもありがとうございました!
うれしいです。
0147名前は開発中のものです。
2008/09/16(火) 13:10:54ID:Yf+0nKT9どなたかご教示ください。
0148名前は開発中のものです。
2008/09/17(水) 01:24:40ID:DBB0kkz+MyGame使ってないんで間違ってたらごめん
0149名前は開発中のものです。
2008/09/17(水) 02:08:51ID:6SEPyg3M返信ありがとうございます。
実は、
ttp://mono.kmc.gr.jp/~yhara/d/?date=20080710#p05
このruby・SDLをインストールしていないPCでも動かせるようにするパッケージを使用したいと思っていまして、
このパッケージの中のrubyにmygameをインストールしたいのです。
わかりにくくてすみません。
最初に申し上げておくべきでした。
0150名前は開発中のものです。
2008/09/18(木) 01:02:57ID:RVpg2t6eそのままだとフォントの位置が問題出そうだな
mygame.rbを310行目付近をいじるなり参考にして対処してみてくれ
0151名前は開発中のものです。
2008/09/18(木) 11:29:45ID:H2tmF02M返信ありがとうございます。
うーん、やはりできません。
Resourcesの中にコピーして、フォントの入っているディレクトリのパスを相対パスで適切に直したのですが、なぜかできません。
requireで参照するパスを組み込み定数$:で調べたところ、lib/ruby/1.8やlib/ruby/site_ruby/1.8だったので、それらのディレクトリにmygameディレクトリおよびmygame.rbをコピーしてみる、ということも試したのですがうまくいきません。
require 'mygame'の時点でスクリプトが終了してしまいます。
いったい何が悪いのでしょうか。
0152名前は開発中のものです。
2008/09/18(木) 23:17:18ID:RVpg2t6e0153名前は開発中のものです。
2008/09/19(金) 00:11:41ID:AMcmg5Cjややっ!こんなところにきっちりログが保存されているとは!
どうもありがとうございます。
チェックしてみます。
0154147
2008/09/19(金) 16:50:49ID:AMcmg5Cjmygameディレクトリ及びmygame.rbをlib/ruby/1.8にコピーし、
FontsディレクトリはResources直下にコピー。
その時点で起動したところコンソール.appにはkconv.rbがnkfをrequireできていないとのエラーが出ていたので、
起動するrubyスクリプトに
$: << "lib/ruby/1.8/i686-darwin9,2,2"
としてnkf.bundleがあるディレクトリを、libを読み込むディレクトリに追加。
そして、今度はrbconfig.rbがおかしいというエラーが出たので、mygame.rbの297行目、require 'rbconfig'をコメントアウト。
311行目を
datadir = Dir.pwd
と書き換えました。
これでrbconfig.rbを使わずに、起動するrubyスクリプトと同ディレクトリのFontsディレクトリからフォントを読み込むようになり、無事起動いたしました。
なんだか拙い解決方法ですが、一応解決できたので、ほかの方の参考になれば、と思います。
繰り返しになりますが、回答してくださったみなさんどうもありがとうございました。
これからゲーム制作にのめりこみたいと思います。
0155名前は開発中のものです。
2008/10/19(日) 01:33:54ID:5gugO+Xs0156名前は開発中のものです。
2008/10/19(日) 22:40:14ID:rF3bgZLP簡単な2Dゲーなら他のライブラリを使った方がいいかも、とかあります?
やりたいのは、とりあえずテーブルゲーム系で、派手な画像処理はいらなくて、
音楽好きなんで音はちょっと拘りたいのと、入力はマウスよりキーボードからの方が多いかも、で、
http://ruby-game-dev.org/wiki/index.php?%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA
ここの紹介を見てるとmiyakoがいいのかなって感じなんですが、どでしょうか
プログラミング入門者なんでドキュメントが多いと助かります
0157名前は開発中のものです。
2008/10/19(日) 23:08:24ID:o251uXL90158名前は開発中のものです。
2008/10/19(日) 23:50:28ID:Mq2HTqU9俺の知ってる範囲では
かなり低レベルなところ(SDLに近い部分)までいじくれて、ドキュメントが充実してるRuby/SDL
仕様がシンプルで、拡大縮小などの画像処理機能が充実してるStarRuby
あたりが良いライブラリだと思う(両方とも日本語文書あり)
Miyakoについてはきちんと触ったことないから分からない
Ruby/SDLのラッパーだったはずなので、とりあえず動作速度には注意
0159名前は開発中のものです。
2008/10/19(日) 23:59:06ID:rF3bgZLPドキュメントが頼りなくてもなんとかしてみようって思えるんですけどね
だったらruby以外で…って話になってしまうのかもしれませんが
rubyはやっぱり既に出来る人向けの環境なのかなあ
結局、ツクールやHSPあたりからやっとけ、みたいな…
まあじっくり焦らず色々やってみます
キーを叩くより、紙の上でゲームのアイデアを考えたりしてるほうが
時間的にはだいぶ多くなるわけだし
>>158さん
StarRubyは画像処理にスーファミ的具体例wがあったので
つかみはOKだったんですが、できる人向けっぽい印象がありました
動作速度に関しては、アクションゲーム的なのは気になるのかもしれませんね
自分は思考タイプのゲームが好みなんで、たぶんなにを使っても問題なさそうです
Flashでもなんとかなりそうな感じなんで
GRikoは入力がゲームパッド仕様だったので、アクションゲーム寄りの
ライブラリなのかな?と思い、それで他が知りたくなったわけです
0160名前は開発中のものです。
2008/10/21(火) 01:19:43ID:SjJ19aHPStarRubyは良いと聞くし、使ってる人も結構いそう
MyGameは本も出てるのでRuby自体の勉強も一緒にできる
初めてなら「Rubyではじめるゲームプログラミング」を読んでMyGameを使ってみたらどうだろう
0161名前は開発中のものです。
2008/11/10(月) 18:07:48ID:jzB6LQreでマリオ的なゲーム作りたいんですけど、
今やっと、背景、キャラ表示して
左右に動けるようになったんですが
徐々に走るスピードを上げるってどうやるんですかね?
0162名前は開発中のものです。
2008/11/10(月) 20:50:12ID:DwNpP07eキー操作に反応して速度を上げていけばおk
0163名前は開発中のものです。
2008/11/10(月) 21:25:26ID:mVuGBL+Mif (Bボタン)
VX+=1
end
X+=VX
0164名前は開発中のものです。
2008/11/10(月) 21:26:08ID:mVuGBL+M0165>>161
2008/11/11(火) 00:25:28ID:A5AdEiUE@x -= 8 if input.left
@x += 8 + x(input) if input.right
@x = 0 if @x < 0
@x = SCREEN_W-@image.w if @x >= SCREEN_W-@image.w
end
def render(screen)
screen.put(@image, @x, @y)
end
end
def x(input)
if input.b
vx += 1
end
end
>>162 >>163ありがとう!
始めたばかりで手探り状態なんだが、
こんな感じかな?
上手く起動できない、見てくれ。
0166名前は開発中のものです。
2008/11/11(火) 07:03:14ID:J8rpg6TXぱっと見で分かること
・renderメソッドの後ろのendが一つ多い
・xメソッドの中にあるvxがローカル変数
0167>>161
2008/11/11(火) 17:29:14ID:A5AdEiUEendが1つ多いのはこの上にclassがあったから。
消し忘れスマン
ローカル変数をインスタンス変数に変えてみたけど結果は同じだった。
思ったんだけど、これがもしできたとしても
ボタン押してる間(この処理が行われるとき)ずっと1づつ足されるわけだから
一瞬で画面外に出るぐらいのスピードになるんじゃないかな?
って馬鹿なこと言ってるなと思わないでくれ・・・
0168名前は開発中のものです。
2008/11/11(火) 17:39:59ID:sZyTNaq5何回リピートしたらいくつ増やす、とかいくつ以上は増えない、とか離したら0に戻す、とかやるけど
動かしながら試すのがいいと思うよ。
0169名前は開発中のものです。
2008/11/11(火) 18:09:28ID:J8rpg6TXエラーに関する質問をするときに、そのエラーの詳細を書くのは基本だ
とりあえず、Bボタンを押してないときに
xメソッドがnilを返して落ちるだろうということは想像がつく
0170>>161
2008/11/11(火) 18:49:12ID:A5AdEiUE・前回も押してたかチェックする これどういうことですか
・何回リピートしたらいくつ増やす これは条件式(if)でおkだよね?
>>169
スマン。 エラーの詳細って言うのは
タイプ ArgumentError
メッセージ wrong number of arguments (1 or 0)
バックとレース 'x' 'act' って所か?初心者でスマン(汗
def act(input)
@x -= 8 if input.left
@x += 8 + x(input) if input.right
@x = 0 if @x < 0
@x = SCREEN_W-@image.w if @x >= SCREEN_W-@image.w
end
def render(screen)
screen.put(@image, @x, @y)
end
def x(input)
if input.b
if (@vx <= 4)
@vx += 2
elsif (@vx <= 6)
@vx += 1
end
else
@vx = 0
end
end
やっぱり、起動して→ボタン押すと止まる・・・
→ + B ボタンも止まる
0171名前は開発中のものです。
2008/11/11(火) 19:06:55ID:J8rpg6TXwrong number of arguments (1 of 0)、つまり引数の数が0個であるべきところに1個の引数を渡している
エラー表示のときに行番号が出てるから、その行番号のところを見れば分かるはず
0172>>161
2008/11/11(火) 19:20:01ID:A5AdEiUEありがとう!
ということは、
@x += 8 + x(input) if input.right
この行になるんだけど、引数ってことは
文字列として認識されてるって事?でも@vxって変数でしょ?
0173名前は開発中のものです。
2008/11/11(火) 19:53:02ID:sZyTNaq50174>>161
2008/11/11(火) 21:52:05ID:A5AdEiUEx = 0
x += 8 if input.b
@x -= 8 + x if input.left
@x += 8 + x if input.right
@x = 0 if @x < 0
@x = SCREEN_W-@image.w if @x >= SCREEN_W-@image.w
end
全然分からないから関数にせずに中に入れたら上手く動いたww
でもこれじゃあ、条件式とか書き入れたらメチャ長くなっちゃうんだよな
誰か関数の定義の仕方教えてくれ。
0175名前は開発中のものです。
2008/11/12(水) 09:00:05ID:QWqH0Tgg本を一冊買ってよむとかしようぜ・・・
0176名前は開発中のものです。
2008/11/12(水) 10:04:02ID:I5KMEUtV前にclassがあったからと言ってるが、そのエラーが出ることとendの位置は無関係ではないと思う。
0177名前は開発中のものです。
2008/11/14(金) 00:53:02ID:voiQCPZrhttp://jp.rubyist.net/magazine/?0018-GameProgramingForRubySDL
これをネットワーク越しに(LAN内のみ)二人対戦できるようにするには
どのような方法がありますでしょうか?
指針だけでもいいのでご教授お願いします。
0178名前は開発中のものです。
2008/11/14(金) 15:10:15ID:qoYS2Mxu(1)TCPServer+TCPSocket(2)UDPSocket(3)drbの三択だと思う
俺だったら(1)を選びます
rubyforge探せばお手軽ライブラリがあるかもしれないしないかもしれない
0179名前は開発中のものです。
2008/11/15(土) 01:28:13ID:MKGPYG8uどれでやるにしても
キー入力を送る、相手の入力を受け取るまで待つ、とかやるのが一番簡単
0180>>161
2008/11/17(月) 19:42:37ID:1Kh+3A4u一度ダッシュボタンを押すのを止め、その後またダッシュボタンを押してもスピードが
最高速度のままなんですがどうすれば、どのような文を入れれば上手いこと初期化されますかね?
ご指南お願いします。
def act(input)
#移動
move(-4 - spup(input)) if input.left
move(+4 + spup(input)) if input.right
#アニメーション
@img_ct += 1
@img_ct = 0 if @img_ct >= 40
end
def spup (input)
if input.b && input.right || input.b && input.left
if @spup <= 4
@spup += 0.2
elsif @spup <= 8
@spup += 0.1
else
@spup += 0
end
else
@spup = 0
end
end
0181名前は開発中のものです。
2008/11/17(月) 19:55:17ID:JYTy/RrD0182名前は開発中のものです。
2008/11/17(月) 23:46:58ID:ZZzCfwZC0183名前は開発中のものです。
2008/11/18(火) 06:11:27ID:inHKvQ4tまず速度増加の処理と、座標移動の処理を別々にした方が良い
下手にまとめるとバグの特定がしづらくなる
>>182
コードを見ると、一応意図としてはそうなってるっぽいな
■ このスレッドは過去ログ倉庫に格納されています