//■aaa_Rankingクラス■■■■■ extends SecretChar; //ランキング randomize(); time=0; iii=0; ttt=0; //■↓ランキング用の配列を作る(名前、スコア、何分、何秒など、項目ごとに分けてる) //■配列の番号は、0から数えます。 $A_Name=new Array(); $A_kikan=new Array(); $A_nanni=new Array(); $A_Score=new Array(); $A_jikan=new Array(); $A_fun=new Array(); $A_byou=new Array(); //■↓loadメソッドは、filesフォルダのファイルから、自動的に配列に情報を入れてくれるもの $A_Name.load("A_Name"); $A_kikan.load("A_kikan"); $A_nanni.load("A_nanni"); $A_Score.load("A_Score"); $A_jikan.load("A_jikan"); $A_fun.load("A_fun"); $A_byou.load("A_byou"); //■↓ゲーム終了時の、スコアなどを、配列に追加 if($projectManager.getCurrentPageName()=="$page_index"){ //■↑ゲームプレイのページでのみ、ここの{}の中は動きます。タイトルのページでは動きません。 $A_Name.add($Name); $A_kikan.add($kikan); $A_nanni.add($nannido); $A_Score.add($Score); $A_jikan.add($timejikan); $A_fun.add($timefun); $A_byou.add($timebyou); Sc=new Array();//新しく入った所を知る為の配列  //■↑ランキングに登録される時、「New!」と表示させる場所を、決めるための配列です。 for(i=0;i<$A_Score.size();i++){ Sc.add(0); } Sc.set(Sc.size()-1,1);//■今のところ、ランキングの20番目に「New!」と表示される。 //■そのあと、ランキングの並べ替えをして、20番目のままなら、20番目は消されます。 //■0〜19番目なら、ランキングに登録され、「New!」も表示されます。 } time=0;//■timeを0にする。 //■並べ替え処理 while(time<=30 && $projectManager.getCurrentPageName()=="$page_index"){ //■↑timeが30以下の時までで、ゲームプレイのページなら、ループします。 fillRect(0,0,$screenWidth,$screenHeight,$clblack,-1);//■画面を黒にする。 time++;//■timeに1たす。 for(i=0;i<$A_Score.size()-1;i++){ //■↑iが0〜18の時まで、繰り返します //■ {}の中は、19回繰り返され、{}が1回終わると、iに1たされます。 hb2=null;//■hb2にnull(数字でも、文字でもないもの)を入れる。 hb=valueOf($A_Score.get(i)); //■↑スコアのi番目を数字にして、hbに入れる。 //■ 例えば、iが0の時は、スコアの0番目の内容をhbに入れます。 //■ その時、例えば、スコアの0番目の内容が、"249000"なら、hbに249000が入ります。 //■※配列は、0から始まります。なので、0番目に1位のスコアが入ります。 if(i<$A_Score.size()-1){//■iが0〜19の時まで、並べ替えができます。 hb2=valueOf($A_Score.get(i+1)); //■↑スコアの(i+1)番目を数字にして、hbに入れる。 //■ 例えば、iが0の時は、(0+1)なので、スコアの1番目の内容をhb2に入れます。 //■ その時、例えば、スコアの1番目の内容が、"168000"なら、hb2に168000が入ります。 if(hb20){//■スコアが、20個より多かったら //■↓スコアの20番目(21位)が消えます。 //■ 各項目ごとに、20番目(21位)を消しています。 $A_Name.delete($A_Name.size()-1); $A_kikan.delete($A_kikan.size()-1); $A_nanni.delete($A_nanni.size()-1); $A_Score.delete($A_Score.size()-1); $A_jikan.delete($A_jikan.size()-1); $A_fun.delete($A_fun.size()-1); $A_byou.delete($A_byou.size()-1); } //■↓各項目をファイルに保存しています。 $A_Name.save("A_Name");$A_kikan.save("A_kikan");$A_nanni.save("A_nanni");$A_Score.save("A_Score");$A_jikan.save("A_jikan");$A_fun.save("A_fun");$A_byou.save("A_byou"); } update(); } //■whileは31回ループしていますが、実際は、19回で十分です。 //■最低19回ないと、完全な並び替えになりません。 //■下では、ランキング表示の処理をしています。 //■説明は以上です。 yyy=1200; Kyyy=0; time=0; kikan_ico=0; kikan_ico_1=0; kikan_ico_2=0; a=0; $map.scrollTo(0,yyy); while(a==0){//ランキング SK=dist(Kyyy-yyy,0-0); if(yyy>Kyyy){ //yyy-=0.5; for(ii=0;ii<200;ii++){ if(Sk>ii*100) yyy-=0.5; else break; if(yyy<450) ddd=3; if(yyy<300) ddd=5; if(yyy==0) ddd=15; } }else{ time++; if(time==60*5) a=1; } iii++; if(iii>3) tex=""; if(iii<=3) tex="New!"; if(iii==6) iii=0; if(ttt!=10) ttt++; else ttt=0;//PressSpaceKey drawScreenXY(1); fillRect(0,0,$screenWidth,$screenHeight,$clblack,-100); centerText($screenWidth/2,2,"ランキング",$clWhite,10,-100002); if(ttt<=5) centerText($screenWidth/2,$screenHeight-25,"Press Start button!",$clWhite,10,-1000002); drawText(120,20,"名前",$clWhite,10,-1000001); drawText(160,20,"スコア",$clWhite,10,-1000001); drawText(220,20,"逃走時間",$clWhite,10,-1000001); fillrect(0,0,$screenWidth,$screenHeight,$clblack,-100000); drawScreenXY(0); kikan_ico_1++; for(i=0;i<$A_Score.size()-ddd;i++){ da=valueof($A_nanni.get(i)); if(da==0) {da2="易";cols=$claqua;} if(da==1) {da2="普";cols=$clgreen;} if(da==2) {da2="難";cols=$clred;} drawText(2,50+(i*40),i+1,$clWhite,10,-1000000); drawText(80,50+(i*40),da2,cols,10,-1000000); da=valueof($A_kikan.get(i)); if(kikan_ico_1==4){kikan_ico_1=0;kikan_ico++;if(kikan_ico==11)kikan_ico=0;} if(da==1) drawSprite(52,56+(i*40),$pat_Player+10+kikan_ico,0,-10000000); drawText(120,50+(i*40),$A_Name.get(i),$clWhite,10,-1000000); drawText(160,50+(i*40),$A_Score.get(i),$clWhite,10,-1000000); drawText(220,50+(i*40),$A_jikan.get(i)+":"+$A_fun.get(i)+":"+$A_byou.get(i),$clWhite,10,-1000000); if($projectManager.getCurrentPageName()=="$page_index"){ if(Sc.get(i)==1)drawText(10,40+(i*40)-2,tex,$clyellow,11,-1000000); if(getkey(32)==2) $projectManager.loadpage($page_title); } } $map.scrollTo(0,yyy); update(); } $PlayLog=new Array(); $PlayLog.load("PlayLog"); P_count=valueof($PlayLog.get(0)); P_Easy=valueof($PlayLog.get(1)); P_Normal=valueof($PlayLog.get(2)); P_Hard=valueof($PlayLog.get(3)); Easy=trunc(P_Easy/P_count*100); Normal=trunc(P_Normal/P_count*100); Hard=trunc(P_Hard/P_count*100); EasyK=0; NormalK=0; HardK=0; function Rect(point_X,Point_Y,color){ fillRect(point_X+5,point_Y+5,Point_X-5,Point_Y-5,color,-1000000); } function graphRect(keisan2,keisan,color){ fillRect($screenWidth/2+80,$screenHeight-keisan*2.42,$screenWidth,$screenHeight-keisan2*2.42,color,-1000000+1); } $map.scrollTo(0,0); time=0; time2=0; while(a==1){//プレイ難易度比率 time++; if(time>60){ if(EasyK30) {NormalK+=Normal/40;time2--;} if(HardK60) {HardK+=Hard/40;time2--;} time2++; } iii++; if(iii>3) tex=""; if(iii<=3) tex="New!"; if(iii==6) iii=0; if(ttt!=10) ttt++; else ttt=0;//PressSpaceKey if(ttt<=5) centerText($screenWidth/2,$screenHeight-25,"Press Start button!",$clWhite,10,-1000002); if(time2==60*4) { if($projectManager.getCurrentPageName()=="$page_index") $projectManager.loadpage($page_Title); else die(); if(getkey(32)==2) $projectManager.loadpage($page_title); } Rect(60,60,$clred); Rect(60,120,$clgreen); Rect(60,180,$claqua); drawText(70-2,60-6,":難",$clwhite,9,-1000000); drawText(110-2,60-6,trunc(HardK+0.5)+"%",$clwhite,9,-1000000); drawText(70-2,120-6,":普",$clwhite,9,-1000000); drawText(110-2,120-6,trunc(NormalK+0.5)+"%",$clwhite,9,-1000000); drawText(70-2,180-6,":易",$clwhite,9,-1000000); drawText(110-2,180-6,trunc(EasyK+0.5)+"%",$clwhite,9,-1000000); gradationRect(0,0,$screenWidth,$screenHeight,0,$clblue,$clblack,-100000); centerText($screenWidth/2,2,"プレイ難易度比率",$clwhite,10,-1000000); graphRect(0,EasyK,$claqua); graphRect(EasyK,EasyK+NormalK,$clgreen); graphRect(EasyK+NormalK,EasyK+NormalK+HardK,$clred); update(); }