1package { 2 import com.milkmangames.nativeextensions.ios.*; 3 import com.milkmangames.nativeextensions.ios.events.*; 4 import flash.display.Stage; 5 6 public class scoreclass { 7 public function init(mystage:Stage):void { 8 if (!GameCenter.isSupported()){ 9 trace("GameCenter is not supported on this platform."); 10 } 11 12 trace("Loading game center:"); 13 gameCenter = GameCenter.create(mystage); 14 if(!GameCenter.gameCenter.isGameCenterAvailable()){ 15 trace("this device doesn't have gamecenter."); 16 } 17 18 if (GameCenter.gameCenter.areBannersAvailable()){ 19 GameCenter.gameCenter.showAchievementBanners(true); 20 } 21 22 gameCenter.addEventListener(GameCenterEvent.AUTH_SUCCEEDED,onAuthSucceeded); 23 gameCenter.addEventListener(GameCenterErrorEvent.AUTH_FAILED,onAuthFailed); 24 gameCenter.addEventListener(GameCenterEvent.ACHIEVEMENTS_VIEW_OPENED,onViewOpened); 25 gameCenter.addEventListener(GameCenterEvent.ACHIEVEMENTS_VIEW_CLOSED,onViewClosed); 26 gameCenter.addEventListener(GameCenterEvent.LEADERBOARD_VIEW_OPENED,onViewOpened); 27 gameCenter.addEventListener(GameCenterEvent.LEADERBOARD_VIEW_CLOSED,onViewClosed); 28 gameCenter.addEventListener(GameCenterEvent.ACHIEVEMENT_REPORT_SUCCEEDED,onAchievementReported); 29 gameCenter.addEventListener(GameCenterEvent.ACHIEVEMENT_RESET_SUCCEEDED,onAchievementReset); 30 gameCenter.addEventListener(GameCenterEvent.SCORE_REPORT_SUCCEEDED,onScoreReported); 31 gameCenter.addEventListener(GameCenterErrorEvent.SCORE_REPORT_FAILED,onScoreFailed); 32 gameCenter.addEventListener(GameCenterErrorEvent.ACHIEVEMENT_REPORT_FAILED,onAchievementFailed); 33 gameCenter.addEventListener(GameCenterErrorEvent.ACHIEVEMENT_RESET_FAILED,onResetFailed); 34 GameCenter.gameCenter.authenticateLocalUser(); 35 } 36 37 38 CONFIG::iphonemode { 39 /** Check Authentication */ 40 private function checkAuthentication():Boolean{ 41 if (!GameCenter.gameCenter.isUserAuthenticated()){ 42 trace("not logged in!"); 43 return false; 44 } 45 return true; 46 } 47 48 /** Reset Achievements */ 49 public function resetAchievements():void{ 50 if (!checkAuthentication()) return; 51 52 GameCenter.gameCenter.resetAchievements(); 53 } 54 55 public function reportScore(t:int):void{ 56 // we make sure you're logged in before bothering to report the score. 57 // later iOS versions may take care of waiting/resubmitting for you, but earlier ones won't. 58 if (!checkAuthentication()) return; 59 t = t * 2; //Score is in 30 frame increments 60 GameCenter.gameCenter.reportScoreForCategory(t, "grp.supgravleaderboard"); 61 } 62 63 public function opengamecenter():void { 64 if (!checkAuthentication()) return; 65 GameCenter.gameCenter.showLeaderboardForCategory("grp.supgravleaderboard"); 66 } 67 68 /** Show Achievements */ 69 public function showAchievements():void{ 70 if (!checkAuthentication()) return; 71 72 //trace("showing achievements..."); 73 try{ 74 GameCenter.gameCenter.showAchievements(); 75 }catch (e:Error){ 76 //trace("ERR showachievements:"+e.message+"/"+e.name+"/"+e.errorID); 77 } 78 } 79 80 public var vvvvvvgamecomplete:int = 0; 81 public var vvvvvvgamecompleteflip:int = 1; 82 public var vvvvvvcomplete500:int = 2; 83 public var vvvvvvcomplete250:int = 3; 84 public var vvvvvvcomplete100:int = 4; 85 public var vvvvvvcomplete50:int = 5; 86 public var vvvvvvtimetrial_station1:int = 6; 87 public var vvvvvvtimetrial_lab:int = 7; 88 public var vvvvvvtimetrial_tower:int = 8; 89 public var vvvvvvtimetrial_station2:int = 9; 90 public var vvvvvvtimetrial_warp:int = 10; 91 public var vvvvvvtimetrial_final:int = 11; 92 public var vvvvvvsupgrav5:int = 12; 93 public var vvvvvvsupgrav10:int = 13; 94 public var vvvvvvsupgrav15:int = 14; 95 public var vvvvvvsupgrav20:int = 15; 96 public var vvvvvvsupgrav30:int = 16 97 public var vvvvvvsupgrav60:int = 17; 98 public var vvvvvvmaster:int = 18; 99 100 public function reportAchievement(t:int):void{ 101 if (!checkAuthentication()) return; 102 103 // the '1.0' is a float (Number) value from 0.0-100.0 the percent completion of the achievement. 104 switch(t) { 105 case 0: GameCenter.gameCenter.reportAchievement("grp.vvvvvvgamecomplete", 100.0); break; 106 case 1: GameCenter.gameCenter.reportAchievement("grp.vvvvvvgamecompleteflip", 100.0); break; 107 case 2: GameCenter.gameCenter.reportAchievement("grp.vvvvvvcomplete500", 100.0); break; 108 case 3: GameCenter.gameCenter.reportAchievement("grp.vvvvvvcomplete250", 100.0); break; 109 case 4: GameCenter.gameCenter.reportAchievement("grp.vvvvvvcomplete100", 100.0); break; 110 case 5: GameCenter.gameCenter.reportAchievement("grp.vvvvvvcomplete50", 100.0); break; 111 case 6: GameCenter.gameCenter.reportAchievement("grp.vvvvvvtimetrial_station1", 100.0); break; 112 case 7: GameCenter.gameCenter.reportAchievement("grp.vvvvvvtimetrial_lab", 100.0); break; 113 case 8: GameCenter.gameCenter.reportAchievement("grp.vvvvvvtimetrial_tower", 100.0); break; 114 case 9: GameCenter.gameCenter.reportAchievement("grp.vvvvvvtimetrial_station2", 100.0); break; 115 case 10: GameCenter.gameCenter.reportAchievement("grp.vvvvvvtimetrial_warp", 100.0); break; 116 case 11: GameCenter.gameCenter.reportAchievement("grp.vvvvvvtimetrial_final", 100.0); break; 117 case 12: GameCenter.gameCenter.reportAchievement("grp.vvvvvvsupgrav5", 100.0); break; 118 case 13: GameCenter.gameCenter.reportAchievement("grp.vvvvvvsupgrav10", 100.0); break; 119 case 14: GameCenter.gameCenter.reportAchievement("grp.vvvvvvsupgrav15", 100.0); break; 120 case 15: GameCenter.gameCenter.reportAchievement("grp.vvvvvvsupgrav20", 100.0); break; 121 case 16: GameCenter.gameCenter.reportAchievement("grp.vvvvvvsupgrav30", 100.0); break; 122 case 17: GameCenter.gameCenter.reportAchievement("grp.vvvvvvsupgrav60", 100.0); break; 123 case 18: GameCenter.gameCenter.reportAchievement("grp.vvvvvvmaster", 100.0); break; 124 } 125 } 126 127 // 128 // Events 129 // 130 private function onAuthSucceeded(e:GameCenterEvent):void 131 { 132 trace("Auth succeeded!"); 133 //showFullUI(); 134 trace("auth player:" + GameCenter.gameCenter.getPlayerAlias() + "=" + GameCenter.gameCenter.getPlayerID() + ",underage?" + GameCenter.gameCenter.isPlayerUnderage()); 135 gamecenteron = true; 136 } 137 138 private function onAuthFailed(e:GameCenterErrorEvent):void 139 { 140 trace("Auth failed:"+e.message); 141 //showAuthUI(); 142 } 143 144 private function onViewOpened(e:GameCenterEvent):void 145 { 146 trace("gamecenter view opened."); 147 } 148 private function onViewClosed(e:GameCenterEvent):void 149 { 150 trace("gamecenter view closed."); 151 } 152 private function onAchievementReported(e:GameCenterEvent):void 153 { 154 trace("achievement report success:"+e.achievementID); 155 } 156 private function onAchievementFailed(e:GameCenterErrorEvent):void 157 { 158 trace("achievement report failed:msg="+e.message+",cd="+e.errorID+",ach="+e.achievementID); 159 } 160 private function onScoreReported(e:GameCenterEvent):void 161 { 162 trace("score report success:"+e.score+"/"+e.category); 163 } 164 private function onScoreFailed(e:GameCenterErrorEvent):void 165 { 166 trace("score report failed:msg="+e.message+",cd="+e.errorID+",scr="+e.score+",cat="+e.category); 167 } 168 private function onAchievementReset(e:GameCenterEvent):void 169 { 170 trace("achievements reset."); 171 //this.score=0; 172 //saveScore(); 173 //this.txtScore.text="Score: "+score; 174 } 175 private function onResetFailed(e:GameCenterErrorEvent):void 176 { 177 trace("failed to reset:"+e.message); 178 } 179 } 180 181 CONFIG::iphonemode { 182 public var gameCenter:GameCenter; 183 public var gamecenteron:Boolean = true; 184 } 185 } 186} 187