テトリスを作る
みなさん言語は、javaでもHSPでもCでもいいからテトリス作って
ソースを載せてください d3dx9_30.dllは最新版のDirectXに更新するか↓からダウンロードしてEXEファイルがあるフォルダの中にいれればOKです
http://www.dll-files.com/dllindex/dll-files.shtml?d3dx9_30
DirectX9が初期化できない問題については調査中です 描画部分をDirectX8に下げてみました
たぶんこれで大丈夫かな?
http://gamdev.org/up/img/10601.zip
DirectX9のデバイス作成部分は日経ソフトウェアの2006年9月号にあったサンプルコードのコピペなので
それが動かなければ自分にはどうしようもありません(日経ソフトのサイトのダウンロードの項目に
実行形式を含んだサンプルがあるのでそれを試してもらえるとありがたいです)
・・・これでDirectX8Verが動いたのなら日経をうらむZE
動いたよ。なかなか良くできてると思う。
しかしやはりワールドルールはゴミだな。 操作感がいい。テトリスDSしかやりこんでないけど
かなりそれに近い漢字。 VBの亜種と考えれば技術的に不思議は無い
行動力はすごいかも いっその事ここでHeborisの後継を作ってしまうとか……
スレ違いですかね。 テトリスってただ作るだけなら超簡単だけど、
操作性を良くしようとしたら
回転法則とか面倒なんだよな。 お詫びにはなりそうにないですが。
ソースが酷く、Dxライブラリを使っていて、しかも説明が不親切です。
余計スレを汚すかもしれませんが、すいません。
http://www.csync.net/service/file/view.cgi?id=1197731850 >>630
出来が良いテトリスはカンパニーに目つけられるから丁度いいんじゃね? >>630
壁蹴りとか結構難しいですよね……フリーでも出てはいるものの、どれにも満足せず、結局自分で作ってしまうという経緯の人が多いんじゃないですか?私もですが。
図々しいですが、>>631の評価もお願いします。 デキはいいと思うよ。
クラシックでオレンジだけ回転が逆なのが気になるけど。 キーリピートの実装でいつも悩まされるんだよな。
キーを押しっぱにすると、ブロックの移動後にやや長めのブランクがあって、
その後は短いブランクで連続的にブロックが移動する、あの仕組みのこと。
GetAsyncKeyState でキーの状態を取得・記録してるんだけど、
DirectInput なんかだと、そのへんは楽に出来たりするのかな?
それとも、結局自前で処理するしかないのだろうか。 >>635
自前で処理するしかないでしょうね。私もそうですし。 >>636
やっぱり自前かあ。。(´・ω・`)ショボン
ブランク (というのか、ウェイトというのか) が一定なら楽なんだけどなー。
キーリピート何とかでけた。でも操作感の調整がいまいち。。
BGMと背景はネットで拾って勝手に使いました(ごめんちゃい)。
ttp://gamdev.org/up/img/10788.zip >>638
>でも操作感の調整がいまいち。。
下ボタンを押してブロックを地表まで落下させてもブロックが即固定されないので
ブロックが着地してから自然に固定されるまでの間に左右ボタンを押しっ放しにして次のブロックの操作の準備をする
という事ができないのと
単純に横移動が遅いのが気になりました >>640
おお。遊んでくれてありがとう。
リプレイ機能を足したのと、少し手直ししたバージョンれす。
ttp://gamdev.org/up/img/10973.zip
キーの操作性は序盤は良くても、高速落下時には悪かったり
その逆だったりで、こちらが立てばあちらが立たずというか、
いくら調整しても上手くいかない。計算じゃなくてレベル毎に
キーのウェイトを場合分けするのが普通なんだろうか。 >計算じゃなくてレベル毎に
>キーのウェイトを場合分けするのが普通なんだろうか。
俺は他のパズルゲームでそうしてるよ?
落下物を5マスで構成するとシベリア風になる
7マスだとゲームにならない
検証結果でした 今どこまで出来てて、いつまでに仕上げるつもりなんだ?
前から思ってたんだが、テトリミノって「S型」やら「L型」やら 名前がダサいから、
テトリスを開発するにあたって ひとつひとつの 型 に名前を付けたい
たとえば、
■ [THPIL] スパイル
■■■ T-SPINに使用するので「spin(スピン)」から
■■ [SCAVE] エスケイヴ
■■ 携帯ゲームの[SFCAVE(エスエフケイブ)]をヒントに S型のカーブということから
■■ [ZEXE] ゼグゼ
■■ Z型のカクカクした形「zigzag(ジグザグ)」から文字った
■ [LENGA] レンガ
■■■ 文字通りレンガ(Lから始まり そのまんまで面白い)
■ [JACK] ジャック
■■■ 尖った角「jag(ジャグ)」 …を省略したつもり
■■ [ORB] オーブ
■■ 水晶をイメージ、「O」から始まるのでピッタリ
■■■■ [IBIRD] アイバード
I型のバー(棒)だから …というのは建前で、本当は国際復興開発銀行「IBRD(アイビーアールディー)」からとった(汗)
といった感じですが 皆さんいかがですか?
なんか名前とイメージが合わない。
けどレンガはなんかいい感じ >国際復興開発銀行「IBRD(アイビーアールディー)」
これはテトリスと何の関係があるの? 全然 関係ありません。I から始まるカッコイイ横文字はないかなと考えて思いついたのは
自分の恩師が「IBRD」のことを『アイバード』と言っていたことをふと思い出し 付けました。
当初は I 型のバー(棒)という意味は考えていた訳ではなく後づけですが、意味的にはOKかなと思いました 黎明期あるいはパジトノフ氏自身がソースにコメント残してたら定着したかもしれんが、
個人的に「セガテトリス」の影響受けすぎてるんで、黄色だの赤だの言ってもらったほうが通じる。
面白いし、「ああ、あの人か」って言われるぐらいしつこく言い続けていれば定着するかもしれんね。 でもSEGAのテトリスの色と正式なテトリスの色とは違うから
やっぱり名前は欲しいかな …おれは >>653
アプレットでつくりたいんです。
でもまだ何も出来てません;;
1月中には完成させたくて。 Javaでテトリス作って、ソースも一緒に公開している人いるぞ。
ぐぐって参考にしてみれば?
あと、ここもいいかも。
ttp://javagame.skr.jp/index.php?FrontPage#mff5a158
っていうかこれぐらい自分で探せるだろ。 >>660
最低限の実装は1日もあればできるので
0からjavaを勉強し始めても余裕で間に合うよ
ちゃんと勉強すればね
あと662が言っているように自分で調べる力が何より重要
聞く前にググる、参考書・マニュアルを読むは
今後何を作るにしても必要な技術 Flashでテトリス作ってるんだけど、公開してもいいの??
著作権とかどうなん?? テトリスの場合は著作権よりも特許の問題(特許侵害は非親告罪)
BWKもそれで潰されたみたいだし、公開しないのが正しいが
公開している人はたくさんいる >>665
アイデアは著作権では保護されないので、自分で一からプログラムを
書くなら問題なし。
問題は特許権と、「テトリス」って名前を使うなら商標権もかな。
ただ、特許が取られているのかどうかは知らんし、「テトリス 特許」で
検索してもよく分からんかった。
ttp://www.tetrisonline.co.jp/tetris_license.pdf
ttp://ja.wikipedia.org/wiki/%E3%83%86%E3%83%88%E3%83%AA%E3%82%B9#.E3.83.A9.E3.82.A4.E3.82.BB.E3.83.B3.E3.82.B9
ttp://oshiete1.goo.ne.jp/qa3259818.html
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1121784821
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1419016159
ttp://www.geocities.co.jp/WallStreet/7506/gamepat.html
だれか詳しい人いない?
ただ、現実問題としては、グラフィックやBGMはオリジナルのものを使い、
お金を取ったりしてなければ何か言われることはまず無いだろうし、
万が一あったとしても公開停止すればそれで済むレベルだと思うよ。
どうしても心配ならここで検索してみれば?
ttp://www.ipdl.inpit.go.jp/homepg.ipdl 特許の有効期間は20年だからそろそろ切れるかもなあ
いつ頃、取ったのかわからないけど 誰かファミコンのエミュで動くアーケードの初代セガ版のテトリスを作ってくれないかな?
グラフィックはブロックの色が16色内で収まる範囲のアーケード準拠で(棒は赤系、四角は黄系等)背景なんかは正直真っ黒でOK。
サウンドはSEがあればBGMさえ無くてもいいくらい。
ゲームモードはエンドレスで続くモードだけあれば十分。
ただ、ゲームスタートからのカウントが始まってカンストすると止まるタイム表示があるとそれなりにやり込めるかと。
アーケードライクな操作感覚を重視してくれれば文句無いです。
ファミコンエミュで動かす理由は何?
nesは面倒な上に色や音の数に制限が多いから変人以外は使いたがらないよ
環境を指定しなくて正確な仕様が示せるなら作ってくれる人もいるかもしれないが 現在はdocomo携帯限定ですがNESのエミュレータがあるんです。
暇な時にそれでテトリスを遊んでいるのですがBPS製のテトリスは操作性が悪く
(エミュ本体でキーコンフィグはありますがセガ版と違い、落下させると落下中は操作不可能)
ゲームモードも一定ラインを消すとステージ終了となるモードしかなくてAC版が好きだった人間には熱くなれないのです。
テトリス関係は版権厳しいからなー
JAVAで自分で作ったほうがいいぞ HDD漁ってみたがNESで遊べるのはこれくらいかな
テトリス1 BPS版
テトリス1 任天堂版
テトリス1 TENGEN版
テトリス2
テトリス フラッシュ
デブロック >>671
わざわざエミュを使う必要があるのか?
携帯のアプリってnesより楽に作れるし、たぶん作動も軽いよ
俺はdocomoじゃないからiアプリのことはよく知らんが >>672
自分で作る技術があったら真っ先に作りたいのですが…
自分にはそんな知識や技術がある訳も無く…
>>673
NESに任天堂版のテトリスがあったとは知りませんでした。
ちょっと調べてみます!
>>674
前は携帯のアプリでACちっくなテトリスはあったんです。
が、数年前に作者がテトリスの公開をやめてしまい、機種変更をしてしまった今となってはプレイ出来ません。
以前、SEGAAGESのテトリスコレクションに収録されていたシステムE版(ほぼマスターシステム基板)をプレイしたのですが
やっぱり操作感覚等が厳しいなぁ〜と感じました。
それで最近、携帯電話でファミコンのエミュがある事を知り、この板に来たらこのスレを見付け
「この板に来る凄腕PGならばファミコンでもかなりの再現度の高いテトリスを作ってくれるのでは?」
そう思って>>669でレスをした訳です。
ちなみに最近こんなテトリスを見つけました(ネタとしては最高だと思いますw)
ttp://www.ngworks.net/game/tetoris.html
>675
>自分にはそんな知識や技術がある訳も無く…
今、持ってないだけだろ?
なんで学習して知識や技術を持とうと思わないんだ?
俺は自分の好きなゲームを作りたかったからプログラムを覚えたぞ。
自分で難易度やルールやブロックの種類を決められるんだからスゲー楽しいぞ。
学校の勉強で1教科増えるよりはるかにラクで楽しい。 みなさんだったらこれに終了判定つけるとしたらどうつける?
ttp://www.wacharo.net/Tetris/Tetris11.jsp >>677
ブロックを固定した後、新しいブロックを作るまでの間に新しいブロックが
出る予定の場所にブロックがあるかどうかを調べてあればブレイク チェーンゲームのテトリスってさ どのくらいの容量でできているんだろ?
ttp://circle.zoome.jp/apptown/media/659/ テトリスには下を押したときの落下、自動的な落下、ブロックが消えたときの
落下の3種類があるがどれのこと? >>684
あと、最近のだと上とか押して瞬間的に一番下まで落ちるのもあるよ ・下を押したときの落下
キーを押している間、落下中のテトリミノのyをインクリメントし続ける(着地したら停止)
・自動的な落下
インターバルをおいて落下中のテトリミノのyをインクリメント
・ブロックが消えたときの落下
消えたラインから上にある積まれたテトリミノすべてのyを、一度に消したライン数ぶんだけ加算
・上を押したときの落下(ハードドロップ)
落下中テトリミノのyインクリメントを着地するまで繰り返す >>686の説明でわかる人は683みたいな質問をしないと思うな
たぶんもっと基礎的なところで躓いている 質問じゃなくてただの愚痴じゃないのか。
答える必要ないかと。 こんなんみつけた。
一週間でテトリス
ttp://d.hatena.ne.jp/portown/20090415/1239801213
うん、二ヶ月近く経った今でもまだ完成はしてないようだけどね。
C++でデザインパターンも使いまくりで、まあなんというか
こういう人が開発する様子を眺めてみるってのもおもしろいかも。
>>690
昨日googleのロゴが変わっていてびっくりした。 テトリスが有名になった少しあとぐらいの時期に
BASIC+マシン語を使って一週間くらいでテトリス作った事があって
「テトリスなんてちょろいぜ」と思っていたが
三行テトリスを知って、自分の無力さを思い知った。
(当時とは環境が違うとはいえ……) >>692
マジレスすると
基本操作、列消えはすぐ作れるんだ
テトリスの一番難しい箇所は
下に付いてから位置が確定される時間差の処理
穴に回転させて入れる場合の確定要素
そう言った余剰処理の方が難しいのさ 分かりやすく言うと
□□□□
□□□□
□□□□
□□□□
これが一個の回転領域とすると
□□□□
□■□□
□■■□
□□■□
なのか?
□■□□
□■■□
□□■□
□□□□
なのか?で処理の仕方が変わるし
回転制御も
どのマスを最初に処理するソースにするかで隙間入れの処理が違う
初心者ほど
途中の回転と一列消ししか気にしない駄作作る事実
これ位覚えておけカス ここまで言っても分からないカスの為にもう一つ
□□□□
□■□□
□■■□
□□■□
↓
回転後は
□□□□
□□■■
□■■□
□□□□
なのか?
□□□□
□■■□
■■□□
□□□□
なのか?
どっちで処理するんだ?って話 >>683
抽象的な方が分かりやすいと思うから
■□□□
■□□□
■□□□
■□□□
□□□□
□□□□
□□□□
□□□□
↓
処理(タイム関数でループ処理)
↓
□□□□
■□□□
■□□□
■□□□
■□□□
□□□□
□□□□
□□□□
表示するプログラムと
処理するプログラムは別と考えるんだ クソースでもとりあえず動くもの作ればいいじゃない。 俺が一番悩んだのは
↓
■□■□■■
■□■□■■
■□■□■■
■□■□□■
■□□□■■
■■■■■■
こういう状況で回転させた時どうすべ、って事だな。 ・ガイドラインに従う
・T○Mっぽくする
・セガテトリスっぽくする
とりあえず回転法則は既にあるものをまねてみるべきだと思う。 この状況ではもう回転できない
■□■□■■
■□■□■■
■□■□■■
■□■□□■
■□□□■■
■■■■■■
..■
■□■□■■ これなら
■□■□■■
■□■□■■
■□□□□■
■□□□■■
■■■■■■
昔のセガふうテトリスだと一段上に戻って
乗っかるような動きになるのでは
■■■■
■□↑□■■
■□□□■■
■□□□■■
■□□□□■
■□□□■■
■■■■■■ すまない。
悩んだっつーだけで地力で解決した昔の話なの。 テトリスを作って動かそう!っていうスレで
そんな細かい回転法則とか操作性の工夫とかっていらないんじゃないのか HSPだと速攻で作れたが、いざCとかに移行しようとすると失敗するゆとりの俺涙目。
何も用意しなくてもウィンドウ作ってくれるHSPから離れられん。 俺、C+DXLibでテトリス作ってる
HSPとそう変わらない感覚で作れるぜ
どなたか講評していただけませんか?
ttp://kanataofstars.web.fc2.com/tetrin.html
ページとアップローダーのテストも兼ねています。よろしくお願いいたします。
回転法則とか無視してますけど…。 >>713
すみません知りませんでした。削除しておきます。 >詳しくはダウンロードファイル内のリードミーにて。
リードミー入ってない。
コンピュータが弱い。 >>715
>リードミー入ってない。
すみません。>>714修正時に誤って削除していました。一応ホームページから見られるようにしておきました。
>コンピュータが弱い。
調整を検討しておきます。 ぷよぷよつくってまして軸ぷよに対して子ぷよが90度ずつうごくような簡単なつくりならできたんですが
回転いれたぷよぷよフィーバーみたいな操作性のよいものがうまくできないです。
というより回転まではうまくできたんですがフィールドにぷよがあるときの当たり判定とクイックターンのアルゴリズムなどがうまくできないで悩んでます。
なんかいい方法ないですかね?
ちなみに今は32のマップチップみたいなものにぷよを配置するような方法でやってます。で、アクションゲームでやるような当たり判定で…
めりこんだときに上に配置するべきか横に配置するべきかがうまくできなくて挙動がおかしいんですよね
だれかいいソースみたいなの教えていただけないでしょうか? アクションゲームのような当たり判定をしているとおかしくなるぞ。
入力があった時に、変化できるかできないかと、変化後の形処理をして、結果を段階的に表示する方法にしたほうがいい。
でないと意図しない動きで変な動作をすることになる。
パズルゲームなんだから、落下も回転もマップの1マスずつ移動させるように処理する。
まずは1マス単位で動くようなものを作ってから、途中段階を表示させるように変えてみようよ。 >>718
何ヶ月もレスのなかったスレに書き込んで、正直回答もないと思ってたので、とてもうれしいです。
ありがとうございます。
>変化できるかできないかと、変化後の形処理をして
なるほど、こういう考え方をすれば必ず処理はできそうですね。参考にさせていただきます。
>パズルゲームなんだから、落下も回転もマップの1マスずつ移動させるように処理する。
>まずは1マス単位で動くようなものを作ってから、途中段階を表示させるように変えてみようよ。
すいません、自分の説明が足らなくて、一応マス単位には消去や着地判定などもしてうごかせるものはできました。
なので、マスに縛られないものを作りたいと思いまして…。
それとどうしてここまでそこにこだわるかの理由なんですが、やはり32単位のマスで動かすとカクカクに見えるという難点があり、これはかなりゲームのクォリティを下げてしまうように感じるのです。
それだけではなく、ぷよぷよが好きなので、どうしても"まわし"に関する部分の再現であるとか地面についてから子ぷよを持ち上げて軸ぷよを浮かし、待機させるといったような表現も再現したいのです。
クイックターンも然りです。
この、http://www.youtube.com/watch?v=TGi42Csclwcにあるぷよぷよの続編(ぷよぷよフィーバー)なんですか、これらはマスに縛られないきれいな動きをしていて、こういうのを作ってみたいのです。
こういった自分の考え方は客観的にどのように感じるのかも思ったことあればまたレスお願いします。 うだうだ言ってるようだが考え方としては
内部ではマス単位で移動し、表示をドット単位にする方が正しい