スポンサーサイト

-------- --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
最新の最終版だよ!クリアすると・・・!
http://uchiharin.web.fc2.com/aaa.html
今回作ってみて思ったのは
専用ソフト入れなくてもメモ帳だけで作れるのが手軽でいい!
あと記法とかもそんなに難しくなかったから作りやすかったよ
ブロック崩しができるのならシューティングも作れそうだね
スポンサーサイト
二日目
ブロックの配置、当たり判定、あと細かい部分の修正をやって
とりあえず完成!
http://uchiharin.web.fc2.com/burokku3.html

今回のは
ここを参考(というかほぼ丸パク)にしたんだけれど
見る限り、配列とかfor文とかって
javascriptには無いのかと思ったら実はあるみたい
あるのかよ!

三日目・・・は無しでいいか
大まかな流れは決めたので細かい処理を考えて行く
まずボールの座標と移動量を確保

var ballx; // ボールのX(左)座標
var bally; // ボールのY(上)座標
var speedx; // ボールのX(左右)速度
var speedy; // ボールのY(上下)速度


壁に当たったときボールが反射するようにしたいので
ballxが指定の座標を超えようとしたとき、speedxにマイナスをかける
つまりこれで右方向に向かっていたボールは左方向へ
左方向に向かっていたボールは右方向へ向かう

if(120 >= ballx){
speedx = -speedx;
ballx=120;
}
if(720 <= ballx) {
speedx = -speedx;
ballx=720;
}


このあたりはさくさく進めることができたが
少し迷ったのはラケットとボールの当たり判定

左端で当たったときと中央で当たったとき、右端で当たったときのボールの反射が全て同じだとあんまり良くない
何度打ち返してもボールの軌道が同じになるから

ちょっと上手い計算方法が思いつかないので
とりあえず今は左端に当たったときは左に、右端に当たったときは右に反射するようにしておいた
ラケットのサイズは60なので真ん中30の地点からどれだけ離れているかで判定している

かつ、またはの表記がよく分からなかったので
即興でこんな感じに

if( bally >= rtakasa) { //ラケットとボールのy座標が重なっているか
flaga=1;
}
if(racketx <= ballx && racketx+60 >= ballx){//x座標が重なっているか
flagb=1;
}

if(flaga+flagb==2){
flaga=0;
flagb=0;
speedx = (ballx-(racketx+30))/4;
speedy = -speedy;
}



一日目はここまでで終了
明日はブロックの配置と当たり判定・・・まで作れるといいな
http://uchiharin.web.fc2.com/burokku2.html
触るのは初めてだけど三日もあれば完成するでしょ・・・多分

まずjavascriptの構成
以下のようにすればいいらしい

<html>
<head>
変数宣言
<script type="text/JavaScript">
関数宣言
</script> </head>

<body>
初期設定とか色々
<script type="text/JavaScript">
関数呼び出し
</script></body>
</html>


どう書けばいいのか分かったところで
ブロック崩しに必要なものを考える
ボールとラケット(下のバー)くらいかな?

javascriptってどうやってループ作るんだろうと探してみたら
setTimeout関数っていうのがあって
こいつは数秒おきに指定した関数を実行してくれるらしい
つまり、例えばgameBody()関数の中で
setTimeout( "gameBody()" , 3000 )と書いておくことで無限ループを実現できるから
その中でボールを動かせばいいみたい

ラケットは・・・
たまに変なアイコンがずーっとマウスについてくるサイトあるよね
あれの原理で作れる

全体の構成が見えたのであとはif式でごちゃごちゃ作っていこう
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。