トップページ⇒mac
523コメント189KB

みんなでゲーム作ろうかPart2 〜 METALとかで

■ このスレッドは過去ログ倉庫に格納されています
0001名称未設定03/06/15 10:12ID:mpwUgOu/
ここはゲームを作るスレ。
共同制作、メンボスレだったのが次第にみんなの発表、相談スレに。
ちょっくら主旨は変わったものの活気があるのはいいことだ。
参加は自由、関連リンクは>>2-5辺りに。
じゃ、みんなでゲーム作ろうか。
023222904/02/16 00:27ID:xKhJ0cns
>>231
36行目
 INPUT M$
この行を
 M$ = INPUT$(1)
にかえてみ。INPUT$()は括弧内の数だけ文字を入力する命令でエンター不要。
余裕があればINKEY$とKEYMAP SCANも調べてみ。

> もしかして私、調子乗ってます?
> こういう投稿っていうのはどうなんでしょう
漏れは好きだよ。なんとなくくすぶってるだけの自分も頑張ろうと思える。
がんがれ。
023322604/02/16 00:35ID:Z7mrHPox
>>232
解説ありがとうございます
同じ事をするにもいろいろな方法があるっていうのが奥深い部分ですね
なにより暖かい言葉ありがとうございます
かなり手探り状態ではありますが自分なりにガンバってこうと思います
0234名称未設定04/02/16 00:46ID:sLlJkVeI
ここからこのスレは
ID:Z7mrHPoxを育てるスレになりました
023522904/02/16 05:38ID:GmBoAzgC
触発されたので自分のも作ってみたじょ。解凍ソフトはLHAExpanderきぼん。
http://monnnasite.s25.xrea.com/bj.lzh
023622604/02/16 20:11ID:Z7mrHPox
http://www.kari.to/upload/source/d/3721.sit
今回のは結構酷いです…
一応、じゃんけんゲームみたいなノリを目指して、過去の成果を元に作ってみたんですが、ちょっとというかかなり酷いです
INPUT$(1)を使用して、作ったんですが、>>232さんにおそわったKEYMAP SCANとかいうのを使わないと無理ですかね…
後、結構動きが複雑なんであんまりデバッグしてません…
今日はひとまず、これを自分なりに作り込んでみようかなと

>>234
感謝の反面、結構プレッシャーですね…
>>235
自分もガンバって早く画像とか使えるようになりたいです。
023722904/02/16 20:48ID:K/izV9PV
昨晩全く同じところで詰まったよ。INPUT$がなんか変? 例えば

K$ = 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)
023822604/02/16 21:19ID:Z7mrHPox
229さんありがとうございます
これは仕様なんですかね?
これとはちがうんですが、変数の足し引きを行おうと文を入れてみたらエラーが出て、
なぜダメなのかいろいろ試行錯誤してみて、最終的に1回消して、もう一度入れ直してみたら正常に動いたとかいうのがあるんですが、
ファミコンのカセットに息吹き掛けるような感覚で、どうしてエラーだったのかがまったくつかめなかったんですが…
これも仕様なんですかね?
023922304/02/17 07:02ID:YOU/6EHV
>>224
トロイじゃねえです、、、でも、まあ、ハイパカスレでもうpしたら
不評でした。
もっとこったやつをメタルでやってみたいです。まえにこのスレで
アクションをやろうとして、それからかなり時間がたって、プログラムを
忘れてしまっているので、今度はアドベンチャものからやりなおそうかと
思います。
024022304/02/17 07:26ID:YOU/6EHV
ちなみにこれがアクションのテスト版です。もう再開発は無理です。
ttp://www.pandora.nu/tv/src/img20040217072152.sit
テンキーの1と3が左右、zがジャンプ。
実はこのさらに進化したやつがすでにできていて、あるアニメや
武器を投げたり、階段移動なども可能になったんだけど、しばらく
手を休めていたら、自分のプログラムなのに訳がわかんなくたっていたという、、
0241名称未設定04/02/18 04:27ID:lj9GgDKE
あげ
0242名称未設定04/02/18 22:26ID:OgpHuKVZ
METAL版ツインビ〜くらいのやつならつくれるか?
024322904/02/18 23:47ID:eyR3eN0E
>>235を合計点と役をちゃんと判定するように。
工房時代ゲーセンのブラックジャックに入れあげてた。
コイン持ってくと店長がカップ麺に替えてくれてた。

>>238
自分でする時は動くならそれでいいと思ってるよ。
エラーメッセージは覚えてる?
0244名称未設定04/02/19 00:13ID:YPtglNx1
たとえサンプル1個でも、100の能書きよりずっと説得力があるな。
0245名称未設定04/02/20 15:49ID:+a2yYo89
漏れもスレ活性の為に燃料投下しようかな
024622904/02/21 00:31ID:Me3d6E3k
>>235をブラッシュアップ。
同画面上に絵をロードして行き当たりばったりにcopyrectしてたのを
オフスクリーンとスプライトで少し改善。
0247突然すいません04/02/22 20:40ID:5hoVb+ZK
アメリカズアーミーのゲームのシステムを開くには、中身を見る、で見れたのですが
その中の白い書類を開くには、デフォルトのアプリケーションがありませんっていわれるの
ですが、どうすれば少し奥までひらけますか?
024822904/02/22 23:57ID:nejcN2pu
>>235をマウス対応、コイン計算、
ディーラーが多少真面目にカードを引くように変更。
まっとうなBlackJackを目指すとまだ全然だけど
自分的に結構満足したのでなんか次の作ってみるよ。
0249名称未設定04/02/23 00:45ID:BmKqSOqO
解凍前のファイル名に.exeというのがあって驚いた。
0250名称未設定04/02/23 03:28ID:iaPCFImu
すいません、OSX用の麻雀ゲームつくってください。
0251名称未設定04/02/27 10:46ID:xiM0fQi4
自給自足しなくちゃいけないので、まずは絵を描けるよう修行してます
0252名称未設定04/02/27 15:13ID:pq3DfD7N
漏れも何かコツコツ作ろうかと画策中。
最近のゲームとか見てもあまり「俺も作りてー」とか思わんかったけど
ファミやスーファミ辺りのウィザドリイとか見たら滅茶作りたくなった。
漏れの場合はもうちょっとプログラムの方修行しなきゃな…
0253名称未設定04/02/27 17:43ID:hBk4b7u7
>>251
絵や音楽なんて通してプレイできるくらいに仕上げて
絵は棒人間、音楽なしで晒せば、誰か描いてくれる人が現れると思う。
何にも形になっていないのに、脳内イメージだけ伝えて手伝わせるのは難しい。
モチベーション続かないと思う。
0254名称未設定04/02/28 00:23ID:v7O3TQGe
>>253
自給自足って書いてあるから違うのでは?
人それぞれだと思うけど、棒人間や既製のキャラクターではモチベーション続かないと思う。
自分が創造したキャラクターが動くというのはやる気に大きく影響するし、描いてくれる
人が都合良く現れるなんてアマチュアゲームの世界は甘くはないと思う。
0255名称未設定04/02/28 02:27ID:sx6c5tM9
カラーでかっこいい絵を描けなくても、
http://members.at.infoseek.co.jp/Y_S_500/index.html
これでいいじゃんと思う
0256名称未設定04/02/28 02:42ID:hx/G6I+D
>>254
> 自給自足って書いてある

そういうことじゃなくて、手伝ってくれる人が身近にいないから
プログラミングだけでなく、作画まで自分で面倒を見る、と解釈しました。

絵を描くのが好きなら別に構わないんだけど
そうじゃないのなら、得意な人に手伝ってもらえばいいと主張したのです。
俺の身近には絵を描くのが好きな人は結構います。
たいして上手いわけじゃないけど。

で、その際に何にも形になっていない妄想を語って付き合ってくれる人は稀だろうと。
たとえば友達に「RPG作ろうと思うんだけど、迫力のある戦闘シーンがいいよね、
俺は絵が下手だから代わりに描いてくれない?」と頼まれたとします。
そのとき、入魂の作品を提供する気になるか、というと俺はなりません。

相手が最後まで続けるかもわからないものに、貴重な余暇を削って
真面目に付き合うのも馬鹿馬鹿しい。
プロだったら途中で放棄されても制作料を貰えればそれでいいんですが。
それに対して、テストプレイできるくらいのものを見せられて、
「絵に魅力がないんだが、得意なおまえが協力してくれればいいものになる」と言われれば
余裕があれば手伝ってやろうって気になるかな、と俺は思うわけです。
0257名称未設定04/02/28 02:54ID:hx/G6I+D
蛇足、作業量が全然違うものを引き合いに出して恐縮だけど
よくできたフリーウェアを公開したが、アイコンがダサいって場合、
結構代わりに描いてくれる人は現れるように見うけられます。

それに対して、アイディアだけで全然形になってないもので
アイコンだけ募集してもたぶん相手にされないし、
プログラムを書く人が最初にアイコンのデザインやるとも思えません。

ex.これからMac版のWinny作りたいんだけど、アイコンを募集します

まったく知らない人だって成果を見せられれば手伝うこともあるし、
まして、身近にイラスト描くのが好きだとか、
そういう人がいれば協力も取り付けやすいと俺は思います。
0258名称未設定04/02/28 10:09ID:mT+c5IKk
それはよくできたフリーウェアだからではないかね?
0259名称未設定04/02/28 19:17ID:hx/G6I+D
良くできたフリーウェア>並のソフト>>>>>なんの形にもなってない脳内イメージ
0260名称未設定04/02/28 21:44ID:in0SuIVX
初心者が作ったソフトやバグのあるソフトはどの辺にはいるのでしょうか。
0261名称未設定04/02/28 22:50ID:hx/G6I+D
良くできたフリーウェア > 並のソフト >  初心者が作ったソフトやバグのあるソフト
>>>> なんの形にもなってない脳内イメージ

かと。
妄想だけよりは遥かにマシだと思います。

他の皆さんの周りの人は知らないけど、
自分のWebページにあまり上手いとは言えないけど絵を載せたり
年賀状にイラスト付けてくる友人は数人俺の周りにはいます。
0262名称未設定04/02/29 00:44ID:NGzq61ke
お、なんだなんだ?
マシって、この並びの順位で何が決まるんだ?
0263名称未設定04/02/29 00:48ID:ck0ue8O2
ここはゲームができたらいいなと妄想するスレですか?
0264前スレ45404/02/29 03:25ID:dPFV1M2D
能書きはいいから、動くものつくれってのはわかる。
でも、棒人間だとモチベーションが続かないってのも本当にわかる。

漏れの場合、全部描いてくれとは思わないけど、テスト用のサンプル
キャラクター1体欲しいなと思うことはよくある。
0265名称未設定04/03/01 22:13ID:m1DbxuwT
こういうゲームをつくってほしい
http://www.eonet.ne.jp/~fuge/nakiwo/software.htm
0266名称未設定04/03/03 22:00ID:AKblM4yI
>>265
オリジナルの開発室Pixelの作風ってなんか漏れのストライクゾーン直撃だ
他も移植してホスィイ
0267名称未設定04/03/03 22:52ID:emVdRxFy
>>264
プロ(といってもFFとかドラクエとかコンシューマの大作ではない)の現場を
本で見たことがあるけど、作画とか作曲と平行してやるから
ゲームのエンジンは手抜きな絵でやっているのが普通らしいよ。
絵が全部できるまでプログラム書く気になりませんってのは
プロとアマチュアの差があるにしても、ちょっと虫が良すぎるんじゃないか?
0268名称未設定04/03/03 23:31ID:f0a1SHOj
みんな開発環境何使ってるの?
スレタイにあるMETALが多いのかな。
0269名称未設定04/03/03 23:44ID:K5fprYo2
>>267
> 絵が全部できるまでプログラム書く気になりません
 誰もそんなこと言ってないと思うが
0270名称未設定04/03/05 00:03ID:CcJgKqyN
実際ウィソとかでゲーム開発してる人のサイトとか見ると、絵も結構描ける人が多いと思った。
ゲームプログラマって器用な人が多いのね ....._| ̄|○
0271名称未設定04/03/05 02:03ID:sjEDuXwA
プログラムは必須。
絵もそこそこ。
音楽もなんとか。
シナリオに必要な常識も備えてないと。
ゲームのアイディアでの独創性も。

最悪でも、上記に関する善し悪しぐらいは分からんと困ると思われ。
0272名称未設定04/03/05 03:39ID:vwJttUL6
>>270
あるゲームクリエータのページ

 http://www.campus.ne.jp/~ishigami/CREATION/GENERAL/MYSELF.htm

 物のデザインを身に付けるにはゲームの全作業についてある程度は
 習熟しなくてはいけない、という考えから、下のスキルシートに示すように、
 ゲーム製作に関わる多くのスキルをつまみ食い的に習得している。

だって。
0273名称未設定04/03/05 11:07ID:ospunTxX
器用な人が多いっていうか、
・誰も絵を描いてくれないから自分で描いた
・誰も音楽作ってくれないから自分で作った
って感じで、不本意にもいつのまにかいろいろできるようになったって人が多いのかも
0274名称未設定04/03/05 21:56ID:ocuMGdix
>>272
ギャグなのだろうけど、マジに受け取る香具師もいたりするから気をつけんとな。

でもいい加減そのサイト例に挙げるのはやめい。
0275名称未設定04/03/06 00:32ID:NA18cpKc
ギャグなのか?
0276名称未設定04/03/06 00:43ID:JvoIiXfG
ゲームつくろうと思うのですが
ProjectBuilderとx-codeってどう違うんでしょうか?

os10.2持ってるんでProjectBuilderはあるんですが・・
os10.3にはx-codeが付いてくるらしいので、どちらにしようか迷っています。
0277名称未設定04/03/06 00:46ID:7QrlBobu
Xcodeは、早くなってすごく使いづらくなったPBだと思えばよろしい。
0278名称未設定04/03/06 08:40ID:JvoIiXfG
>277
先生aligatouございます! 
0279名称未設定04/03/06 10:45ID:DiVWlnbS
ツクールで作ったゲームってVPCでも動作するの?
0280名称未設定04/03/06 11:08ID:XT2HD0z+
>>279
その前に藻前の環境と、ツクールとは何かを説明してくれと小一時間
0281名称未設定04/03/23 11:14ID:JjZE/6ul
メタルのキーマップビット用のシフトキーの番号しりませんか?
おしえてください!
0282名称未設定04/03/23 11:14ID:AFZQIGEk
メタルのキーマップビット用のシフトキーの番号しりませんか?
おしえてください!
028328104/03/23 11:15ID:AFZQIGEk
うお!
なぜか2重にカキコってる。。。バグですか?
0284名称未設定04/03/23 18:37ID:OL1lsYWb
メタルのキーマップビット用のシフトキーの番号って何ですか?
0285名称未設定04/03/23 19:43ID:EVKjHiUd
>>281-284
もちつけYO!(;´Д`)

(10進) ... (キー)
-------------
55 ... command
56 ... shift
57 ... caps
58 ... option
59 ... control
123 ... ←
124 ... →
125 ... ↓
126 ... ↑
028628104/03/23 19:51ID:947rWu77
285殿ありがと〜
0287名称未設定04/03/27 17:51ID:nctcj5jN
モナーのシューティングってつくってイイのか?
0288名称未設定04/03/27 22:07ID:51CV1NUe
いけなかったらほとんどのFlashゲーは存在しない、しかしクソゲーはつくってはイクナイ
0289名称未設定04/03/27 22:20ID:GOalsg2B
クソゲーでも大いに結構。
0290名称未設定04/03/27 23:53ID:MYHGiRu+
spriteがいまいちよくわからない
0291名称未設定04/03/28 00:05ID:PgVk1ruB
オンラインメンバーで何か作る時はモチベーション維持が必要不可欠だね
むしろそれだけ気をつけていれば、他の事は何とかなる

↓モチベーションが消滅した例
ttp://www1.linkclub.or.jp/%7Erien/
0292名称未設定04/03/28 00:17ID:o5d1TD/4
「え?これ2チャンコロが作ったの?」とか言われそうな
真っ当なゲームを共同制作してみたい気も
0293名称未設定04/03/28 00:22ID:PgVk1ruB
笑えるクソゲーって最高だよね
0294名称未設定04/03/28 01:06ID:aNH3d8xk
>>290
昔のゲームにはよく出てくる

>>292
誰かがリードしないと難しそう

>>293
過去の例だと全部AAのギャルゲーなんか笑えた
0295名称未設定04/03/28 01:12ID:maLBwJtD
いや、METALのSPRITE機能がどうもいまいちよくわからん。
いろいろ試してみます。
0296名称未設定04/03/28 01:26ID:NA55LdkI
>>291
ttp://www.wasurena.sakura.ne.jp/~rien/cgi-bin/clip-a/clip.cgi
どうやらアルバトロスって香具師がモチベーションを消滅させた模様
0297名称未設定04/03/28 10:48ID:OrzpasVs
どこかで見たな
0298名称未設定04/03/28 14:14ID:RG+mCjTY
>>295
おれはCopyrectだったかがよくわからない。
スプライトは、サンプルゲームを調べると
仮想空間みたいなのをつくって、そこにいったんリソースから
絵を読み込んで、それをメインの画面に書き出すという
感じのようだった。
029929804/03/28 15:40ID:0wQa+kGx
ttp://www.pandora.nu/tv/src/img20040328153358.sit
これモナシューって試作なんだけど、。
モナーシューティング。
プログラムに、分かる部分は日本語で解説つけてみた。意味不明なのもあり。
こういうのでいーのか分かんないけど
参考になるかな >>295
0300名称未設定04/03/28 15:45ID:0wQa+kGx
方向キー移動、Kがショット、終了はQ 。
です。画面256色にしてくんさい。
0301名称未設定04/03/28 18:28ID:5mzi8JHC
>>298
わざわざさんきゅ。
同じスプライトをいくつも表示すると、表示はされても表示が生きてる(という表現じゃわかんないよな)のが最後に表示した分だけっぽいんだよね。
当たり判定の際とか、スプライトをひとつひとつrenderするのではなくてrender spritesで一気に表示してみたりすると、それがわかる。

自分がつくろうとしてるのはアクション・シューティングの類ではなくてシミュレーションだから、表示できればあとはなんとでもなるんだけどさ。
気になっちゃって。
昨日いろいろ試してスプライトの挙動はだいたいわかった感じです。
0302名称未設定04/03/28 18:42ID:5mzi8JHC
で、copyrectはそのまま、スクリーンを他のスクリーンにcopyする命令です。
METALでは容量が許す限りいくらでもスクリーン(仮想スクリーン)を持つことができるっぽい。
たとえば背景スクリーンとしてbackscreenを設定し、
キャラクターを描くスクリーンとしてmainscreenを設定したら、
それぞれのスクリーンに背景とキャラクターを描いた後(この時点では画面には表示されない)
copyrectで背景とキャラクターのスクリーンをそれぞれカレントスクリーン(0)にcopyすることで表示されます。
ただし、コピーした順にそのまま重なって表示されることになるので、
同じ位置大きさの画像ならば最後にコピーしたものが表示されることになってしまうけど、
一応、重なり方はいろいろ設定できる(試してないのでよくわからないけど)。
でもキャラクターをスプライトで描けばスプライトは特定色を透明とできるから、都合良く使えて便利だよ。
0303名称未設定04/03/28 18:55ID:5mzi8JHC
試作だけど、地形まるまるをスプライトで作ってるのね。
テストとしてかな。
スプライトでだと当たり判定はたしかに楽だけど。
ただ横スクロールの面をまるまるスクリーンで確保するのはちょっときついかもよ。
スクリーンはかなりメモリを食うのか、あまりいっぱい確保できなかったように思う。
256色だから多少は余裕あるのかもしれないけど。
地形をパーツに分解してデータ化するのが一般的なのかなあ。たぶん。

あと当たり判定用のスプライトを使ってるけど、
自機のスプライトをそのまま当たり判定に使えるよ。
あるいは当たり判定用のスプライトを使うにしても
renderは必要なくてset spriteだけでオーケーだと思う。


しかしこういうBASICってなんだかすごく懐かしいな笑
ほんとはいじってる場合なんかじゃないんだが、他にすべきことあると余計ついつい苦笑
0304名称未設定04/03/28 20:06ID:AyJQNXuL
>>296
みんな「忙しい」とか書いてるのが痛いなー
基本的に暇な人間なんていないんだから「忙しい」と言った時点で終わりの予感
0305名称未設定04/03/28 23:39ID:IfMeeCvg
どうでもいい私怨をここに持ち込まんでくれ
0306名称未設定04/03/29 02:35ID:pBUG3R7R
Metalのスプライトの使い方は二通りあると考えるとよい。
表示されているキャラ全てにスプライトを持たせる方法と
同じ絵なら一つしかスプライトを持たせない方法。

方式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
方式2の描画は単に絵を一つcopyrectしているだけ、と考えれば
各フレームの描画に先立ってCLSで画面を消去しなければならない等
自然と理解されると思う。
方式1でバックグラウンドが指定されていれば
それが最初にコピーされるのでCLSは不要となる。
0308名称未設定04/03/29 03:43ID:pBUG3R7R
Metalのスプライトシステムはそれ程複雑ではない。
ガチガチに固められたものでなく、割とルーズというか手を入れやすいというか。

個々のスプライトは
・キャラの絵のビットイメージ
・絵のサイズ(縦×横)
・座標
・表示/非表示スイッチ
・プライオリティ(描画順。手前の方にあるか奥の方にあるか)
などの情報を保持している。

スプライトシステムは描画命令が呼び出された時に
上記スプライトの情報を利用しながら
指定されたレンダリング用のスクリーンに対して描画をするだけと思えばよい。
だからレンダリング用のスクリーンに 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
>>>306~309 解説感謝。
...でも理解できるほど技術ないんで、分からないですほとんど。
でも、後から助かると思うのでコピペ保存させてもらいました。
いまのところ困ってるのは、スプライト(敵キャラ)を複数出すのが
大変らしいということ。いちいち敵キャラ一体づつセットスプライトとレンダースプライト
速度や判定とか、割り当てないとダメなんですよね?
プログラムの文章がどこまでもつづきそうな感じですよ。

アクション&シーュティングよりは、格ゲーのように、スクロールや敵キャラが
少ないゲームじゃないと作れないのかな、、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=30104/03/30 11:41ID:0aU7KORr
>>306
えーと、render sptritesでもひとつひとつrenderでも同じキャラは最後のものしか生きてないようなんだけど。
同じキャラというのもわかりにくいけど、同じ変数で表されるものではなくて、同じリソースの画像(なのかな?)。
0313290=295=30104/03/30 11:49ID:0aU7KORr
たとえば、

Tmp1 = 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=30104/03/30 12:03ID:0aU7KORr
スクリーン関係省略しました。って一部あるしおまけにミスってるな。無視して。
3段目の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=30104/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=30104/03/30 12:33ID:0aU7KORr
ちょっとためしなおしてみたら、
character(1〜10) それぞれに直接grabしておけば問題ない模様でした。。。
うーんなるほど。。。
0317306 04/03/30 19:12ID:7RE2ztXX
>316
あ、解決されましたか。
スプライトというのは画像イメージだけでなく、
附随する情報(座標やプライオリティなど)も一緒に保持しています。
CやPascalで構造体というのを知っていると
イメージがつかめるかと思うのですが。
0318306 04/03/30 20:19ID:7RE2ztXX
1つのスプライトは下のようなデータの固まりになっています。

┌──────────┐
│画像イメージ    │
├──────────┤
│座標        │
├──────────┤
│表示/非表示フラグ │
├──────────┤
│プライオリティ   │
└──────────┘


 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:7RE2ztXX
290さんの

 for 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:7RE2ztXX
まとめ

 img1 = 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=30104/03/30 20:44ID:iEG9nw1U
ありがとう。
Cも少しはかじったことあるから理解したよ。
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
>>306
>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
ttp://www.pandora.nu/tv/src/img20040331193332.sit
試作ゲームは「モナリス」、この板用のオープンソースってことにして
(需要あるかどうかわからないけど)みます。
後はこれからオリジナルの製作を真面目にやっていこうと。
この試作は著作権はないと思うので、自由に改造してくれたらいいですね。
敵キャラは複数出すのは今実験中なんで、このモナリスは一匹の変なヤツしか
でませんよ。
あとは質問とか以外はロムになります。
0327名称未設定04/03/31 19:44ID:Pn4Tl0xJ
あれ、モナニスだったみたいです。忘れてました。ゴメソ
0328名称未設定04/04/01 00:02ID:imvAYfsX
>>325
心配するなら、やめたほうがいいよ。
0329名称未設定04/04/01 12:22ID:m4Ru0+/B
う〜ん。そうかなあ。
2chキャラってたしかどっかの板でタカラの商標とかなんとか、、やめとこう。
ところで、この板でみんなで作るのが目的なんでしょ。?だったら
共通のキャラとか、設定があったほうが、うpするゲーム作りやすいんですけど。
オリキャラや版権ものは、著作権で混乱しそうだ。
0330名称未設定04/04/01 13:03ID:VTZewcCY
ちょっと2ch内を調査したら(以下引用)


★厳密にはAAにも著作権があるんだろうけど、

誰が著作権者かなんて調査できない


★作った人も、2ちゃんねるで公表してる時点で、

コピペされることは承知のうえ


★48ドットまでのアイコンには、著作権が無い



★ギコ猫が商標登録されてる


★最初から使うつもりなんて無くて、何か金儲けできそうになったら

「ウチが先に商標登録していました!」とか言い出す可能性。


これらをみると、、

つまり、目立ったことや、商売などにしなけりゃイイらしいということが。

とりあえずAAを直接、またはドット化したキャラでこのスレ用の

ゲーム作りは大丈夫みたいだ。
0331名称未設定04/04/01 15:28ID:6gRL+sZN
>>329
> 共通のキャラとか、設定があったほうが、うpするゲーム作りやすいんですけど。
それはいいアイデアかも。
言い出しっぺの法則で、 取りまとめヨロスコ
■ このスレッドは過去ログ倉庫に格納されています