ぷよぷよでフィーバーしたい | ゲームプログラマ志望が福岡で叫ぶ 『絶望』

ゲームプログラマ志望が福岡で叫ぶ 『絶望』

プログラマーになりたい!!!!! あ、風のうわさで聞いた最近若者で流行っているトゥイッターなるものを始めてみました (・ト・) @toshi_desu_yo

近頃、仕事で 『あ、WEBやってwwww』 

と言われて頭のなかがファンタスティックになっています。



いきなり言われてもわからないものは分からないんですが、、

「やるしか無い」 仕事とは無情なものです( ´Д`)=3



・その期間じゃ絶対出来ないのに、案件を取ってくる会社。
・それを無情にも「やれ」の一言でこっちに回してくる会社。
・出来なかったら死。




社会 = 冷酷無比

この一年近くで
社会に安心を求めるな。全てを親の敵だと思い、常に警戒しとけ。


そう学びましたよ。



で、WEB系ってなに?

これです。




HTMLをWEBというのか。 Javascript? PHP? サーバー??


何が何だかです。



JavaScriptは数十年前の言語なのにグーグル先生のお陰でまた陽の光を見ることになったそうな。

そして現在においてもバリバリ使われている。



ネットワークや言語の世界ってすごいですね。
未だに昔の技術が最先端で使われている。

それだけ基礎が完成されている。 ということなのでしょう。



会社の出来る人が言うには、



取り敢えず PHP と JavaScript を使いこなせ。
そして データベース。  これ必須。



と言われました。。




なので!

JavaScriptでぷよぷよを作っているのであります。



しっかし・・・




全然わからんわwwwwwwwwwwww

ソースコードが C覚えたての頃のごちゃごちゃな感じになっとるw

自分でも JavaScript でつくり上げるのはかなり新鮮ですw



まぁまだ作りきれてないんですけどね。




****************************


ぷよぷよを作ってて思ったこと

オリジナリティーを出したい。
・難しい。




”オリジナリティーを出す。”

そう、僕が毎回何かを作る時に出る悪いクセ。そう、悪い癖です( ゚д゚ )
これで毎回時間がかかる・・



今回は「ぷよの形を自由自在に作成する!」
という意味の分からないことをしてみようと思いました。




つまり、 普通はこんなかんじの、 2 ~ 4個のぷよが連結した塊を操作するんですが、




とか。。。





だけど、数も連結場所もバラバラの
めちゃくちゃなぷよたちを操りたい・・・ ↓



※ ◎が回転軸です。




これが出来たら面白くなるんじゃないかと思ってみたんです、、、、 が!

まぁ色々と問題が出てくるわけですね。






~~~~~~~~~~~~~~~~~~~~~~~~~~~~

【 ぷよの回転 】

 軸を中心として90度右か左に回転する。






基本ですな!





なので、

軸と操作ぷよ達を別のクラスで作成し、


"MAP上の座標値" と "この軸に連結しているぷよ達”
を持つように、

操作ぷよ達
"軸からみた座標値"  と "連結先の軸"


 を持つようにしてみます。





軸はMAP上の適当な位置として、、、

ぷよ達はMAP上の座標とは別に
軸から見た座標を持つ。





軸のMAP上の座標値 ↓ 





そして、回転処理を行う時、

どうするか。




そうだ。行列を使おう( 提案 )  





中心点( 軸 : 0, 0 )が有り。そこからぷよに向かってベクトルが伸びている。

そう考えると回転は行列の計算で出来そうです。




結果的に以下のようになれば良い。









回転行列 2 x 2   に、ぷよの相対位置( ベクトル ) を掛け合わすと、

回転後の座標が美味く出てくれる。そんな気がします。












行列を掛け合わす ↓


右回転させようと思うならば 左手座標系を使用するので -90( もしくは 270度 ) を 
ラジアンに変換して、 cos, sin に入れる形になります。








回転角は 90、180、270,360 しか無いので、

行列内のそれぞれの値は  -1.0  か 0.0 か 1.0 しか無い、、、


 -90度だと、次のようになるはず、、、、

ラジアンにして計算するのを忘れずに。。。(戒め)



これをぷよに掛け合わせる。
( 真ん中は軸から見て x:0, y:0 なのでしなくておk )




かける ↓


ぷよ1
[ 0x0 + 1x1,    0x(-1) + 1x0 ]   =   [ 1 ,  0  ]


ぷよ2
[ 1x0 + 0x1,    1x(-1) + 0x0 ]   =   [ 0 ,  -1  ]




いいんじゃないでしょうか!







~~~~~~

「追記」


4つの塊の時、これだと軸がとこかのぷよの上にいるとまずいですね。

条件分岐で "4つの塊の時の回転処理は変更" としてもいいとおもいますが、


せっかく行列でしたので統一したい所。


なので 軸を 0.5単位で設定して、 ぷよも軸からみた相対位置を 0.5 単位にして
軸を4つのぷよの中心に来るようにしてみます。



下だと回転させるとMAPの一段下にぷよが落ちてしまう。

※ 0は何もない。 1~4がぷよの塊で、 1 の所に回転軸がある

|  2  3 |   回転   | 0 0  |
|  1  4 |  →       | 1 2  |
|  0  0 |            | 4 3  |

本当は

| 2 3 |   回転   | 1 2 |
| 1 4 |   →      | 4 3 |
| 0 0 |            | 0 0 |

段は変わらずぷよ同士の入れ替えこうなってほしい







軸を真ん中にする。



こうすると同じように行列計算をしたら90度回転してくれるはず。



~~~~~



と、いう当たり前の単純な回転処理をドヤ顔で書いたわけですが、、、、





まぁ


ぷよぷよって


回転よりも落下処理と消える判定のほうがめっっっっちゃむずいよね(焦燥)







と、いうことで 回転だけを書いた HTML がコチラ ↓

【 (URL) 準備中 】





うーん・・・ 完成させたいけど仕事もあるし時間が足りないでゲス。

結局今現在は Javascript は使わないらしく別に勉強しなくてもいいことがわかった。

TomCat というWebサーバーで JSP ってのを扱うらしい。



Java らしいけど。。。。 わからん(´・ω・`)





さぁこいつはどうしようかな。。。