|
[Ver0.46]一部のバグを修正。06-04-17 20:51 by
ultinium
|
|
時間で正確さが減る理由分かりました~~~~
while (1) {
if (x>$mouseX && x>16) x=$mouseX;
if (x<$mouseX && x<$screenWidth-16) x=$mouseX;
if (y>$mouseY && y>16) y=$mouseY;
if (y<$mouseY && y<$screenHeight-16) y=$mouseY;
if (getkey(1)==1) appear(new tama(x,y,24));
$撃った数+=1;
update();
}
を、
while (1) {
if (x>$mouseX && x>16) x=$mouseX;
if (x<$mouseX && x<$screenWidth-16) x=$mouseX;
if (y>$mouseY && y>16) y=$mouseY;
if (y<$mouseY && y<$screenHeight-16) y=$mouseY;
if (getkey(1)==1) {
appear(new tama(x,y,24));
$撃った数+=1;
}
update();
}
にすれば治りま~す。
撃たなくても撃った数に1たしてた・・・06-03-18 08:16 by
daikonn
|
|
ためしにやってみましたがどういうわけか、100%を超えるのですが…
どうすれば、100%を超えないように出来ますか?06-03-18 18:35 by
ultinium
|
|
[Ver0.45]アーケードモード追加。一部バグを修正。06-03-17 19:05 by
ultinium
|
|
正確さを表示するプログラム作りました~
target
for (t in $chars) {
if ( t is Tama && crashTo(t) ) {
$当たった数+=1;
t.die();
die();
}
karsol
if (x>$mouseX && x>16) x=$mouseX;
if (x<$mouseX && x<$screenWidth-16) x=$mouseX;
if (y>$mouseY && y>16) y=$mouseY;
if (y<$mouseY && y<$screenHeight-16) y=$mouseY;
if (getkey(1)==1) {
appear(new tama(x,y,24));
$撃った数+=1;
}
正確さを表示させるプログラム
extends TextChar;
$撃った数=1;
$当たった数=1;
while(1) {
$正確さ=$当たった数/$撃った数;
text="正確さ"+$正確さ;
update();
}
正確さを表示させるプログラム以外は改造した部分だけ切り抜いているのでコピーして全選択して貼り付けとかやらないでください(やらないか・・・)
長文すみません。06-01-11 06:56 by
daikonn
|
|
やっては見たのですが、正確さが1を超えるバグがおこりました。
的を2つ以上同時に壊すと1を超えるみたいです。
それと小数点第3位より下を表示できないようにしたり、クリア時にその正確さを表示したり、
クリアしたらとめたりするプログラムが分からないためあまり使用しておりません。
本当に申し訳ございません。失礼な発言をお許しください。
とりあえず、こちらでも頑張って見たいと思います。
どうもお疲れ様です。06-01-13 18:54 by
ultinium
|
|
この前作った正確さを表示させるプログラムにこれを付け足すと、
それらが出来るようになります。
%で表示されるようにしてみました。
正確さを表示させるプログラム
extends TextChar;
$クリア=0;
$撃った数=1;
$当たった数=1;
if($クリア==0){
while(1) {
$正確さ=$当たった数/$撃った数*100;
$正確さ=trunc($正確さ);
text="正確さ"+$正確さ+"%";
update();
}
}
resultPanel
extends PanelChar;
wait(10);
flag=0;
while(!flag){
sum=0;
for(t in $chars)if(t is target||t is target1||t is target2)sum++;
if(sum==0)flag=1;
update();
}
print("Mission Clear!");
resize(400,100);
x=$screenWidth/2; y=$screenHeight/2;
panel.fillRect(0,0,width,height,$clBlack);
panel.fillRect(2,2,width-2,height-2,$clWhite);
panel.drawText(10,10,"Mission Clear!正確さは"+$正確さ+"%!!",$clBlack,20);
wait();
正確さが100%を超えるのはだいじょうぶでしょう^^;
クリアしたら、
$クリア=1;にするプログラムを入れると、
止まるようになります。
それくらいはできるでしょう^^;
あとこの前作ったやつは20分ほどで作ったのでだいじょうぶです。^^;
なんか^^;ばっかりになっちゃった^^;
長分すみません,,,06-01-13 20:12 by
daikonn
|
|
daikonnさんの記述で気になったのが、単純に、カーソルが発射したときに$撃った数 を加算し、的に当たった時に$当たった数 を加算していることです。
今のプログラムでは、的が重なっていると弾が両方に当たってしまいます。
結果、1回$撃った数 がプラスされるときに両方の的で$当たった数 がプラスされることになり、場合によっては$撃った数 より$当たった数 のほうが多くなります。
解決法としては、的の$当たった数++; を$当たったよ=1; などに変え、
フレームマネージャーを作り、function afterMove内(この中身は全てのオブジェクトがupdate()を実行したあとに自動的に実行されます)に
if ($当たったよ==1){$当たった数++;}$当たったよ=0;
と書く2段式のカウント方法があります。
または、根本的に複数の的に当たらないような仕掛けを加えることになりますが、
配列などを使った高度な方法となるでしょう。
必要があればサンプルなどもUPしようと思います。06-01-13 20:50 by
NaN
|
|
返信遅くなって申し訳ございません。
やってみたのですが、なぜか時間がたつと正確さが下がっていきます。
実際にやってみても15~20%ぐらいまでしか行きません。
とりあえず、ステージを作成中ではあるのですが、これだとちょっと困るかと思います…06-01-23 16:22 by
ultinium
|
|
[Ver0.35]タイトルを追加。カーソルが的の下に来るバグを改善。
プレイする前にカウントを、クリア後に『Mission Clear』の文字を出すようにしました。
それと感想の返信遅くなって申し訳ございませんでした。
『正確さ』という発想はいいアイデアだと思います。
その『正確さ』を出せるプログラムなどを追加していきたいと思います。06-01-10 14:11 by
ultinium
|
|
はじめまして、
最近ここに移動したダイコンです。
案外おもしろくて、3回もリロードしました。
割れた数と撃った数で「正確さ」とかが表示されるといいと思いました。06-01-07 17:10 by
daikonn
|
|
まいど、メリッサです
やらさせてもらいました
まだまだ開発中ということであって、今後が気になるところです
プログラムが非常にきれいにできていましたので、注釈などを入れればガンシューティングの手本になりそうです
私もがんばります06-01-03 14:50 by
ハイハー
|
|
[Ver0.26]マウスポインタを非表示にしました。05-12-29 19:52 by
ultinium
|
|
[Ver0.25]
とりあえず、感想があればいいかと…。
更新頑張ります。05-12-29 19:33 by
ultinium
|
|