みんなでゲーム作ろうかPart2 〜 METALとかで
■ このスレッドは過去ログ倉庫に格納されています
0001名称未設定
03/06/15 10:12ID:mpwUgOu/共同制作、メンボスレだったのが次第にみんなの発表、相談スレに。
ちょっくら主旨は変わったものの活気があるのはいいことだ。
参加は自由、関連リンクは>>2-5辺りに。
じゃ、みんなでゲーム作ろうか。
0232229
04/02/16 00:27ID:xKhJ0cns36行目
INPUT M$
この行を
M$ = INPUT$(1)
にかえてみ。INPUT$()は括弧内の数だけ文字を入力する命令でエンター不要。
余裕があればINKEY$とKEYMAP SCANも調べてみ。
> もしかして私、調子乗ってます?
> こういう投稿っていうのはどうなんでしょう
漏れは好きだよ。なんとなくくすぶってるだけの自分も頑張ろうと思える。
がんがれ。
0233226
04/02/16 00:35ID:Z7mrHPox解説ありがとうございます
同じ事をするにもいろいろな方法があるっていうのが奥深い部分ですね
なにより暖かい言葉ありがとうございます
かなり手探り状態ではありますが自分なりにガンバってこうと思います
0234名称未設定
04/02/16 00:46ID:sLlJkVeIID:Z7mrHPoxを育てるスレになりました
0235229
04/02/16 05:38ID:GmBoAzgChttp://monnnasite.s25.xrea.com/bj.lzh
0236226
04/02/16 20:11ID:Z7mrHPox今回のは結構酷いです…
一応、じゃんけんゲームみたいなノリを目指して、過去の成果を元に作ってみたんですが、ちょっとというかかなり酷いです
INPUT$(1)を使用して、作ったんですが、>>232さんにおそわったKEYMAP SCANとかいうのを使わないと無理ですかね…
後、結構動きが複雑なんであんまりデバッグしてません…
今日はひとまず、これを自分なりに作り込んでみようかなと
>>234
感謝の反面、結構プレッシャーですね…
>>235
自分もガンバって早く画像とか使えるようになりたいです。
0237229
04/02/16 20:48ID:K/izV9PVK$ = INPUT$(2)
PRINT K$
とプログラミングし実行、キーボードのsを押すと
画面上にはssと表示される。
実行後にキーボードをslと素早くスライドさせると
画面上にはslと表示される。
------------------------------------------------------------
どうもMetalのINPUT$では"キーを押し下げた時"と"キーを離した時"で入力2回、と数えるようだ。
これの回避方法は単純。INPUT$(1)を2回置けば良い。
>>236のプログラムの場合、28行目と60行目を増やす。これで交互にコマンド入力できるはずだ。
〜28行目〜
1PS$ = INPUT$(1)
1PS$ = INPUT$(1)
〜60行目〜
2PS$ = INPUT$(1)
2PS$ = INPUT$(1)
0238226
04/02/16 21:19ID:Z7mrHPoxこれは仕様なんですかね?
これとはちがうんですが、変数の足し引きを行おうと文を入れてみたらエラーが出て、
なぜダメなのかいろいろ試行錯誤してみて、最終的に1回消して、もう一度入れ直してみたら正常に動いたとかいうのがあるんですが、
ファミコンのカセットに息吹き掛けるような感覚で、どうしてエラーだったのかがまったくつかめなかったんですが…
これも仕様なんですかね?
0239223
04/02/17 07:02ID:YOU/6EHVトロイじゃねえです、、、でも、まあ、ハイパカスレでもうpしたら
不評でした。
もっとこったやつをメタルでやってみたいです。まえにこのスレで
アクションをやろうとして、それからかなり時間がたって、プログラムを
忘れてしまっているので、今度はアドベンチャものからやりなおそうかと
思います。
0240223
04/02/17 07:26ID:YOU/6EHVttp://www.pandora.nu/tv/src/img20040217072152.sit
テンキーの1と3が左右、zがジャンプ。
実はこのさらに進化したやつがすでにできていて、あるアニメや
武器を投げたり、階段移動なども可能になったんだけど、しばらく
手を休めていたら、自分のプログラムなのに訳がわかんなくたっていたという、、
0241名称未設定
04/02/18 04:27ID:lj9GgDKE0242名称未設定
04/02/18 22:26ID:OgpHuKVZ0243229
04/02/18 23:47ID:eyR3eN0E工房時代ゲーセンのブラックジャックに入れあげてた。
コイン持ってくと店長がカップ麺に替えてくれてた。
>>238
自分でする時は動くならそれでいいと思ってるよ。
エラーメッセージは覚えてる?
0244名称未設定
04/02/19 00:13ID:YPtglNx10245名称未設定
04/02/20 15:49ID:+a2yYo890246229
04/02/21 00:31ID:Me3d6E3k同画面上に絵をロードして行き当たりばったりにcopyrectしてたのを
オフスクリーンとスプライトで少し改善。
0247突然すいません
04/02/22 20:40ID:5hoVb+ZKその中の白い書類を開くには、デフォルトのアプリケーションがありませんっていわれるの
ですが、どうすれば少し奥までひらけますか?
0248229
04/02/22 23:57ID:nejcN2puディーラーが多少真面目にカードを引くように変更。
まっとうなBlackJackを目指すとまだ全然だけど
自分的に結構満足したのでなんか次の作ってみるよ。
0249名称未設定
04/02/23 00:45ID:BmKqSOqO0250名称未設定
04/02/23 03:28ID:iaPCFImu0251名称未設定
04/02/27 10:46ID:xiM0fQi40252名称未設定
04/02/27 15:13ID:pq3DfD7N最近のゲームとか見てもあまり「俺も作りてー」とか思わんかったけど
ファミやスーファミ辺りのウィザドリイとか見たら滅茶作りたくなった。
漏れの場合はもうちょっとプログラムの方修行しなきゃな…
0253名称未設定
04/02/27 17:43ID:hBk4b7u7絵や音楽なんて通してプレイできるくらいに仕上げて
絵は棒人間、音楽なしで晒せば、誰か描いてくれる人が現れると思う。
何にも形になっていないのに、脳内イメージだけ伝えて手伝わせるのは難しい。
モチベーション続かないと思う。
0254名称未設定
04/02/28 00:23ID:v7O3TQGe自給自足って書いてあるから違うのでは?
人それぞれだと思うけど、棒人間や既製のキャラクターではモチベーション続かないと思う。
自分が創造したキャラクターが動くというのはやる気に大きく影響するし、描いてくれる
人が都合良く現れるなんてアマチュアゲームの世界は甘くはないと思う。
0255名称未設定
04/02/28 02:27ID:sx6c5tM9http://members.at.infoseek.co.jp/Y_S_500/index.html
これでいいじゃんと思う
0256名称未設定
04/02/28 02:42ID:hx/G6I+D> 自給自足って書いてある
そういうことじゃなくて、手伝ってくれる人が身近にいないから
プログラミングだけでなく、作画まで自分で面倒を見る、と解釈しました。
絵を描くのが好きなら別に構わないんだけど
そうじゃないのなら、得意な人に手伝ってもらえばいいと主張したのです。
俺の身近には絵を描くのが好きな人は結構います。
たいして上手いわけじゃないけど。
で、その際に何にも形になっていない妄想を語って付き合ってくれる人は稀だろうと。
たとえば友達に「RPG作ろうと思うんだけど、迫力のある戦闘シーンがいいよね、
俺は絵が下手だから代わりに描いてくれない?」と頼まれたとします。
そのとき、入魂の作品を提供する気になるか、というと俺はなりません。
相手が最後まで続けるかもわからないものに、貴重な余暇を削って
真面目に付き合うのも馬鹿馬鹿しい。
プロだったら途中で放棄されても制作料を貰えればそれでいいんですが。
それに対して、テストプレイできるくらいのものを見せられて、
「絵に魅力がないんだが、得意なおまえが協力してくれればいいものになる」と言われれば
余裕があれば手伝ってやろうって気になるかな、と俺は思うわけです。
0257名称未設定
04/02/28 02:54ID:hx/G6I+Dよくできたフリーウェアを公開したが、アイコンがダサいって場合、
結構代わりに描いてくれる人は現れるように見うけられます。
それに対して、アイディアだけで全然形になってないもので
アイコンだけ募集してもたぶん相手にされないし、
プログラムを書く人が最初にアイコンのデザインやるとも思えません。
ex.これからMac版のWinny作りたいんだけど、アイコンを募集します
まったく知らない人だって成果を見せられれば手伝うこともあるし、
まして、身近にイラスト描くのが好きだとか、
そういう人がいれば協力も取り付けやすいと俺は思います。
0258名称未設定
04/02/28 10:09ID:mT+c5IKk0259名称未設定
04/02/28 19:17ID:hx/G6I+D0260名称未設定
04/02/28 21:44ID:in0SuIVX0261名称未設定
04/02/28 22:50ID:hx/G6I+D>>>> なんの形にもなってない脳内イメージ
かと。
妄想だけよりは遥かにマシだと思います。
他の皆さんの周りの人は知らないけど、
自分のWebページにあまり上手いとは言えないけど絵を載せたり
年賀状にイラスト付けてくる友人は数人俺の周りにはいます。
0262名称未設定
04/02/29 00:44ID:NGzq61keマシって、この並びの順位で何が決まるんだ?
0263名称未設定
04/02/29 00:48ID:ck0ue8O20264前スレ454
04/02/29 03:25ID:dPFV1M2Dでも、棒人間だとモチベーションが続かないってのも本当にわかる。
漏れの場合、全部描いてくれとは思わないけど、テスト用のサンプル
キャラクター1体欲しいなと思うことはよくある。
0265名称未設定
04/03/01 22:13ID:m1DbxuwThttp://www.eonet.ne.jp/~fuge/nakiwo/software.htm
0267名称未設定
04/03/03 22:52ID:emVdRxFyプロ(といってもFFとかドラクエとかコンシューマの大作ではない)の現場を
本で見たことがあるけど、作画とか作曲と平行してやるから
ゲームのエンジンは手抜きな絵でやっているのが普通らしいよ。
絵が全部できるまでプログラム書く気になりませんってのは
プロとアマチュアの差があるにしても、ちょっと虫が良すぎるんじゃないか?
0268名称未設定
04/03/03 23:31ID:f0a1SHOjスレタイにあるMETALが多いのかな。
0270名称未設定
04/03/05 00:03ID:CcJgKqyNゲームプログラマって器用な人が多いのね ....._| ̄|○
0271名称未設定
04/03/05 02:03ID:sjEDuXwA絵もそこそこ。
音楽もなんとか。
シナリオに必要な常識も備えてないと。
ゲームのアイディアでの独創性も。
最悪でも、上記に関する善し悪しぐらいは分からんと困ると思われ。
0272名称未設定
04/03/05 03:39ID:vwJttUL6あるゲームクリエータのページ
http://www.campus.ne.jp/~ishigami/CREATION/GENERAL/MYSELF.htm
物のデザインを身に付けるにはゲームの全作業についてある程度は
習熟しなくてはいけない、という考えから、下のスキルシートに示すように、
ゲーム製作に関わる多くのスキルをつまみ食い的に習得している。
だって。
0273名称未設定
04/03/05 11:07ID:ospunTxX・誰も絵を描いてくれないから自分で描いた
・誰も音楽作ってくれないから自分で作った
って感じで、不本意にもいつのまにかいろいろできるようになったって人が多いのかも
0274名称未設定
04/03/05 21:56ID:ocuMGdixギャグなのだろうけど、マジに受け取る香具師もいたりするから気をつけんとな。
でもいい加減そのサイト例に挙げるのはやめい。
0275名称未設定
04/03/06 00:32ID:NA18cpKc0276名称未設定
04/03/06 00:43ID:JvoIiXfGProjectBuilderとx-codeってどう違うんでしょうか?
os10.2持ってるんでProjectBuilderはあるんですが・・
os10.3にはx-codeが付いてくるらしいので、どちらにしようか迷っています。
0277名称未設定
04/03/06 00:46ID:7QrlBobu0278名称未設定
04/03/06 08:40ID:JvoIiXfG先生aligatouございます!
0279名称未設定
04/03/06 10:45ID:DiVWlnbS0281名称未設定
04/03/23 11:14ID:JjZE/6ulおしえてください!
0282名称未設定
04/03/23 11:14ID:AFZQIGEkおしえてください!
0283281
04/03/23 11:15ID:AFZQIGEkなぜか2重にカキコってる。。。バグですか?
0284名称未設定
04/03/23 18:37ID:OL1lsYWb0285名称未設定
04/03/23 19:43ID:EVKjHiUdもちつけYO!(;´Д`)
(10進) ... (キー)
-------------
55 ... command
56 ... shift
57 ... caps
58 ... option
59 ... control
123 ... ←
124 ... →
125 ... ↓
126 ... ↑
0286281
04/03/23 19:51ID:947rWu770287名称未設定
04/03/27 17:51ID:nctcj5jN0288名称未設定
04/03/27 22:07ID:51CV1NUe0289名称未設定
04/03/27 22:20ID:GOalsg2B0290名称未設定
04/03/27 23:53ID:MYHGiRu+0291名称未設定
04/03/28 00:05ID:PgVk1ruBむしろそれだけ気をつけていれば、他の事は何とかなる
↓モチベーションが消滅した例
ttp://www1.linkclub.or.jp/%7Erien/
0292名称未設定
04/03/28 00:17ID:o5d1TD/4真っ当なゲームを共同制作してみたい気も
0293名称未設定
04/03/28 00:22ID:PgVk1ruB0294名称未設定
04/03/28 01:06ID:aNH3d8xk昔のゲームにはよく出てくる
>>292
誰かがリードしないと難しそう
>>293
過去の例だと全部AAのギャルゲーなんか笑えた
0295名称未設定
04/03/28 01:12ID:maLBwJtDいろいろ試してみます。
0296名称未設定
04/03/28 01:26ID:NA55LdkIttp://www.wasurena.sakura.ne.jp/~rien/cgi-bin/clip-a/clip.cgi
どうやらアルバトロスって香具師がモチベーションを消滅させた模様
0297名称未設定
04/03/28 10:48ID:OrzpasVs0298名称未設定
04/03/28 14:14ID:RG+mCjTYおれはCopyrectだったかがよくわからない。
スプライトは、サンプルゲームを調べると
仮想空間みたいなのをつくって、そこにいったんリソースから
絵を読み込んで、それをメインの画面に書き出すという
感じのようだった。
0299298
04/03/28 15:40ID:0wQa+kGxこれモナシューって試作なんだけど、。
モナーシューティング。
プログラムに、分かる部分は日本語で解説つけてみた。意味不明なのもあり。
こういうのでいーのか分かんないけど
参考になるかな >>295
0300名称未設定
04/03/28 15:45ID:0wQa+kGxです。画面256色にしてくんさい。
0301名称未設定
04/03/28 18:28ID:5mzi8JHCわざわざさんきゅ。
同じスプライトをいくつも表示すると、表示はされても表示が生きてる(という表現じゃわかんないよな)のが最後に表示した分だけっぽいんだよね。
当たり判定の際とか、スプライトをひとつひとつrenderするのではなくてrender spritesで一気に表示してみたりすると、それがわかる。
自分がつくろうとしてるのはアクション・シューティングの類ではなくてシミュレーションだから、表示できればあとはなんとでもなるんだけどさ。
気になっちゃって。
昨日いろいろ試してスプライトの挙動はだいたいわかった感じです。
0302名称未設定
04/03/28 18:42ID:5mzi8JHCMETALでは容量が許す限りいくらでもスクリーン(仮想スクリーン)を持つことができるっぽい。
たとえば背景スクリーンとしてbackscreenを設定し、
キャラクターを描くスクリーンとしてmainscreenを設定したら、
それぞれのスクリーンに背景とキャラクターを描いた後(この時点では画面には表示されない)
copyrectで背景とキャラクターのスクリーンをそれぞれカレントスクリーン(0)にcopyすることで表示されます。
ただし、コピーした順にそのまま重なって表示されることになるので、
同じ位置大きさの画像ならば最後にコピーしたものが表示されることになってしまうけど、
一応、重なり方はいろいろ設定できる(試してないのでよくわからないけど)。
でもキャラクターをスプライトで描けばスプライトは特定色を透明とできるから、都合良く使えて便利だよ。
0303名称未設定
04/03/28 18:55ID:5mzi8JHCテストとしてかな。
スプライトでだと当たり判定はたしかに楽だけど。
ただ横スクロールの面をまるまるスクリーンで確保するのはちょっときついかもよ。
スクリーンはかなりメモリを食うのか、あまりいっぱい確保できなかったように思う。
256色だから多少は余裕あるのかもしれないけど。
地形をパーツに分解してデータ化するのが一般的なのかなあ。たぶん。
あと当たり判定用のスプライトを使ってるけど、
自機のスプライトをそのまま当たり判定に使えるよ。
あるいは当たり判定用のスプライトを使うにしても
renderは必要なくてset spriteだけでオーケーだと思う。
しかしこういうBASICってなんだかすごく懐かしいな笑
ほんとはいじってる場合なんかじゃないんだが、他にすべきことあると余計ついつい苦笑
0305名称未設定
04/03/28 23:39ID:IfMeeCvg0306名称未設定
04/03/29 02:35ID:pBUG3R7R表示されているキャラ全てにスプライトを持たせる方法と
同じ絵なら一つしかスプライトを持たせない方法。
方式1 (render sprite"s")
全てのキャラにスプライトを持たせ
レンダリング(描画)は render sprites を一回呼び出す事で
全てのスプライトを一度に描画する。
個々のキャラの座標等はスプライト毎に保持されているので
そのまま当たり判定できる。
方式2 (render sprite)
一方、Marin の弟の Frane の提案により導入された render sprite は
指定したスプライトを一つだけ描画するものだ。
敵戦闘機が5個あったら5回座標をセットして render sprite を
呼ぶ事をくり返す事になる。
こちらを利用している場合は当たり判定の直前に
座標をセットし直さなければならない。(描画の必要はない)
方式1の場合にはバックグラウンドの画面を利用できる。
render spritesが呼び出される時にバックグラウンドが指定されていると
まずバックグラウンドの絵をレンダリングスクリーンにコピーしてから
個々のスプライトがレンダリングされる。
方式2の場合はバックグラウンドは指定しても利用されない。
(render spritesが呼び出された時だけに処理される為)
方式2は個々のキャラ毎にCopyrectしているような感じだが
不要なスプライトを隠したり等の処理がいらない分
こちらの方が使いやすい気もする。
0307名称未設定
04/03/29 03:23ID:pBUG3R7R各フレームの描画に先立ってCLSで画面を消去しなければならない等
自然と理解されると思う。
方式1でバックグラウンドが指定されていれば
それが最初にコピーされるのでCLSは不要となる。
0308名称未設定
04/03/29 03:43ID:pBUG3R7Rガチガチに固められたものでなく、割とルーズというか手を入れやすいというか。
個々のスプライトは
・キャラの絵のビットイメージ
・絵のサイズ(縦×横)
・座標
・表示/非表示スイッチ
・プライオリティ(描画順。手前の方にあるか奥の方にあるか)
などの情報を保持している。
スプライトシステムは描画命令が呼び出された時に
上記スプライトの情報を利用しながら
指定されたレンダリング用のスクリーンに対して描画をするだけと思えばよい。
だからレンダリング用のスクリーンに line, text, circle等
グラフィック命令を使用して任意の図形を書き込む事も可能だ。
(普通の仮想スクリーンと同じと考えて良い)
1フレームの描画が完了したらこれをコンソールに転送(copyrect)する事で画面に絵が表示される。
0309名称未設定
04/03/29 03:54ID:pBUG3R7Rスプライトシステムが必要とする情報は
・レンダリングスクリーンはどれか
・バッググラウンドとして利用するスクリーンがあれば、それはどれか
・スプライトの透明として扱う色は何色か
の3つ。それぞれ
set sprite render port to
set sprite back port to もしくは no sprite background
set sprite mask color to
で設定する。
スプライトの作成
grab sprite でスプライト情報を格納する領域が新たに確保され、
そこに画像イメージをコピーして保持、サイズなどが設定される。
clone spriteはスプライトの複製を作る。
複数の敵キャラを、render sprites で一度に扱う場合などに利用する。
どうもうまく説明できてないけど
以上、スプライトシステムの構造を説明したつもりです。
0310名称未設定
04/03/29 18:35ID:9NgXLnpl...でも理解できるほど技術ないんで、分からないですほとんど。
でも、後から助かると思うのでコピペ保存させてもらいました。
いまのところ困ってるのは、スプライト(敵キャラ)を複数出すのが
大変らしいということ。いちいち敵キャラ一体づつセットスプライトとレンダースプライト
速度や判定とか、割り当てないとダメなんですよね?
プログラムの文章がどこまでもつづきそうな感じですよ。
アクション&シーュティングよりは、格ゲーのように、スクロールや敵キャラが
少ないゲームじゃないと作れないのかな、、METAL。
一面クリアしても、2面や3面のことまでつくるの大変そうだ。
0311名称未設定
04/03/29 19:49ID:pBUG3R7R>速度や判定とか、割り当てないとダメなんですよね?
そうですね。AstroBlasterでもそうやってます。
Copyrectで処理するより
・マスク処理がいらない
・キャラの幅と高さを気にしなくて良い
・当たり判定はおまかせなので楽
というメリットがある程度だと思っていればよいかも。
処理は敵キャラの数だけループを回せば良いので慣れればルーチンワークになるかも。
render spritesでまとめて扱う場合、敵キャラの画像が一種類ならいいけど
AstroBlasterみたいに10個も20個も回転パターンがあると
どう管理して良いのかちょっと分からないです。
一連の画像パターンをまとめて管理してくれる高級な命令でもあればと思うのですが
人によってはスプライトの代わりにアイコンを使っている人もいる様です。
参考:AstroBlaster中にあるコメント
' We also use 'render sprite' here extensively.
' I thought we would never need it, but Frane proved me wrong.
' It is very useful for managing many sprites on screen and
' animating them (no need to hide the old sprites, etc.)
我々はここで'render sprite'命令を多用している。
私(Marin)は最初こんな命令は必要無いだろうと思っていたが
弟Franeがそれは間違いだと証明してくれた。
'render sprite'は多数のスプライトを管理したり
アニメーション効果を扱ったりするのに大変有用な命令である。
(古いスプライトを隠したりする必要がない等)
0312290=295=301
04/03/30 11:41ID:0aU7KORrえーと、render sptritesでもひとつひとつrenderでも同じキャラは最後のものしか生きてないようなんだけど。
同じキャラというのもわかりにくいけど、同じ変数で表されるものではなくて、同じリソースの画像(なのかな?)。
0313290=295=301
04/03/30 11:49ID:0aU7KORrTmp1 = init screen(0,0,40,10)
set screen to Tmp1:cls
load pict rsrc 130
img = grab sprite (0, 0, 10, 10) '変数imgにリソースをスプライトとして読み込む
kill screen Temp
dim x(10),y(10),character(10)
for i=1 to 10
read x(i), y(i): character(i) = img ' character(1〜10)にimgを読み込む
next
data 0,0,0,20,0,40,0,60,0,80,0,100,0,120,0,140,0,160,0,180
for i=1 to 10
set sprite character(i), Hhx(i), Hhy(i)
render sprite character(i) 'スプライトを表示
next
0314290=295=301
04/03/30 12:03ID:0aU7KORr3段目のset spriteのHhx→x、Hhy→yで。
で、この場合、たしかに10個のスプライトをそれぞれの座標に描く。
これが、render sprite character(i)を省いて、最後にrender spritesで描くようにすると、
最後の1個しか表示されない(描かれない)。
でも、1個1個renderで描いた場合でも、その情報が生きている(という言い方でいいのか)は、
render spritesと同じように最後の1個だけのようです。
たとえばこの10個を敵機とし、このまま自機との当たり判定を行っても、
最後の1個とのあたり判定しかなされなかったはず。具体的にはcharacter(10)しか生きていない。
と書きながら今思い出すと、character(1〜9)がまったく死んでいるのとも違った。
ただ、すべてのキャラがx(10),y(10)の位置にあることになってしまう。
0315290=295=301
04/03/30 12:11ID:0aU7KORrたとえば、
for i=1 to 10
set sprite character(i), x(i), y(i)
next
render sprite character(5)
こうした場合、x(5),y(5)の位置にスプライトcharacter(5)が表示されるのではなく、
x(10),y(10)の位置に表示される。
あー、renderではなくset spriteのほうが原因だな。
つまり最初のようにして10個それぞれ描くことはできても、
character(1〜9)はx(10),y(10)の位置にセットされなおされてしまってるので、
最後の1個との当たり判定しかなされていないような形になります。
これを避けるためには、当たり判定のたびに
1〜10までの座標にまたスプライトをsetしなおして当たり判定をする(10回当たり判定を行う)
ようにしなければならない。
と思うのですが。
なんか自分、根本的な間違いかなにか起こしてるのかなあ。
0316290=295=301
04/03/30 12:33ID:0aU7KORrcharacter(1〜10) それぞれに直接grabしておけば問題ない模様でした。。。
うーんなるほど。。。
0317306
04/03/30 19:12ID:7RE2ztXXあ、解決されましたか。
スプライトというのは画像イメージだけでなく、
附随する情報(座標やプライオリティなど)も一緒に保持しています。
CやPascalで構造体というのを知っていると
イメージがつかめるかと思うのですが。
0318306
04/03/30 20:19ID:7RE2ztXX┌──────────┐
│画像イメージ │
├──────────┤
│座標 │
├──────────┤
│表示/非表示フラグ │
├──────────┤
│プライオリティ │
└──────────┘
img = grab sprite (0, 0, 10, 10)
と、grab spriteを呼び出すと、上記のデータの固まりがメモリ上に確保され
画像イメージをここにコピーした後
データの固まりの先頭アドレスがimgに渡されます。
imgに入っているのはこのデータの固まりのメモリーアドレスと思って下さい。
set sprite img, 100,100
このようにset spriteが呼び出されると、imgで指されるデータの固まりの中の
座標部分に与えられた座標が格納される事になります。
render sprite img
render spriteはimgに格納されている座標データを読み
その場所に格納されているイメージを描画します。
0319306
04/03/30 20:20ID:7RE2ztXXfor i=1 to 10
character(i) = img
next
で何が起きているかと言うと
character(1) 〜 character(10)にimgのアドレスがコピーされているだけです。
character(1)からcharacter(10)まですべてが
一つの同じスプライトを指し示しているだけで
スプライトの実体は1つしか存在しません。
for i=1 to 10
set sprite character(i), x(i), y(i)
next
すると、この命令は
その同じ1つのスプライトに対して
何度も座標を設定し直しているだけ
という事になります。
スプライトはgrab spriteもしくはclone spriteによってのみ生成されます。
0320306
04/03/30 20:21ID:7RE2ztXXimg1 = grab sprite (0, 0, 10, 10)
img2 = grab sprite (0, 0, 10, 10)
こうすると下のように2つのスプライトが作られます。
img1→┌──────────┐
│画像イメージ │
├──────────┤
〜 〜(略)
img2→┌──────────┐
│画像イメージ │
├──────────┤
〜 〜
また
img1 = grab sprite (0, 0, 10, 10)
img2 = img1: im3 = img1
とすると
img1,img2,img3→┌──────────┐
│画像イメージ │
├──────────┤
〜 〜
こんな状況になってしまいます。
0321290=295=301
04/03/30 20:44ID:iEG9nw1UCも少しはかじったことあるから理解したよ。
0322名称未設定
04/03/30 22:17ID:WFKwopdOむずかしいなあ、、OTL
でも勉強になります本当に。試しに290=295=301 さんの for~nextの
方法でスプライトやってみたら、ズラ〜と表示されてました!
でもバグりましたっ!むずかしい。
きになるのが全部のスプライトが一個の分身にすぎないって部分です。
これはマズいんじゃないかと、、たとえば当たり判定で全部に同じ結果が
でるってことですよね。クローンスプライトならできるんですか?
ちなみに、今一個の敵キャラに速度x乱数で動きをギコちなくする作戦をやっていて
壊しにくくさせて、少ないキャラでどうにかゲームを長続きさせる努力を
してたんですが、、
0323306
04/03/31 02:11ID:T1zE+nfg>これはマズいんじゃないかと、、
同じものを複数の変数で参照するのはちょっと気持ち悪いかも知れませんね。
ポイントはimg2 = img1といった代入ではスプライトの複製が出来ないという事で
動作を理解しているなら後は自己責任で。
>たとえば当たり判定で全部に同じ結果がでるってことですよね。
そうですね。
clone spriteは同じ絵のスプライトを複数作る時に使われるもので
動作はスプライト構造体(データの固まり)が新たにメモリ上に確保され
もとのスプライトの中味がコピーされます。
spr1 = grab sprite (0, 0, 10, 10)
spr2 = clone sprite (spr1)
spr1→┌──────────┐
│画像イメージ │
├──────────┤
〜 〜(略)
spr2→┌──────────┐
│画像イメージ │←spr1と同じ内容
├──────────┤
〜 〜
複製されたものは別々のスプライトなので座標等、個別に設定できます。
※実際はメモリ節約の為、画像イメージは同じものを共有しているようです。
(おそらく画像イメージは別の場所におかれ、スプライト構造体自身には画像イメージへのポインタが格納されている。)←理解できなくても別に問題ないです。
0324名称未設定
04/03/31 16:40ID:tFVqKQAu>spr1 = grab sprite (0, 0, 10, 10)
>spr2 = clone sprite (spr1)
いつも説明ありがとうございます。
clone spriteって、こういう使い方だったんですか。 grab spriteでまた
作りなおすより、簡単そうな感じじゃないですか。
また実験します。
0325名称未設定
04/03/31 18:01ID:tFVqKQAuせっかくモナーを自機にしてるんで、
モナンビーとかモナディウスって名前にしたら、ヤバイですか?
これはきっとマズいですよね。
モナーの他に2chキャラってギコしか知りません。モナ太郎とかモナ島太郎なんて
いま思い付いたんですけど。
本当に著作権ないんですか?
0326324〜
04/03/31 19:42ID:Pn4Tl0xJ試作ゲームは「モナリス」、この板用のオープンソースってことにして
(需要あるかどうかわからないけど)みます。
後はこれからオリジナルの製作を真面目にやっていこうと。
この試作は著作権はないと思うので、自由に改造してくれたらいいですね。
敵キャラは複数出すのは今実験中なんで、このモナリスは一匹の変なヤツしか
でませんよ。
あとは質問とか以外はロムになります。
0327名称未設定
04/03/31 19:44ID:Pn4Tl0xJ0329名称未設定
04/04/01 12:22ID:m4Ru0+/B2chキャラってたしかどっかの板でタカラの商標とかなんとか、、やめとこう。
ところで、この板でみんなで作るのが目的なんでしょ。?だったら
共通のキャラとか、設定があったほうが、うpするゲーム作りやすいんですけど。
オリキャラや版権ものは、著作権で混乱しそうだ。
0330名称未設定
04/04/01 13:03ID:VTZewcCY★厳密にはAAにも著作権があるんだろうけど、
誰が著作権者かなんて調査できない
★作った人も、2ちゃんねるで公表してる時点で、
コピペされることは承知のうえ
★48ドットまでのアイコンには、著作権が無い
★ギコ猫が商標登録されてる
★最初から使うつもりなんて無くて、何か金儲けできそうになったら
「ウチが先に商標登録していました!」とか言い出す可能性。
これらをみると、、
つまり、目立ったことや、商売などにしなけりゃイイらしいということが。
とりあえずAAを直接、またはドット化したキャラでこのスレ用の
ゲーム作りは大丈夫みたいだ。
0331名称未設定
04/04/01 15:28ID:6gRL+sZN> 共通のキャラとか、設定があったほうが、うpするゲーム作りやすいんですけど。
それはいいアイデアかも。
言い出しっぺの法則で、 取りまとめヨロスコ
■ このスレッドは過去ログ倉庫に格納されています