Advertisement
Guest User

Untitled

a guest
May 24th, 2015
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.05 KB | None | 0 0
  1. import flash.display.ActionScriptVersion;
  2. import flash.display.Loader;
  3. import fl.motion.Color;
  4. import flash.display.Stage;
  5. import flash.display.MovieClip;
  6. import flash.events.Event;
  7.  
  8. var mousePressed:Boolean = false; //keeps track of whether the mouse is currently pressed down
  9. var delayCounter:int = 0; //we use this to add delay between the shots
  10. var delayMax:int = 8; //try changing this number to shoot more or less rapidl
  11. var playerScore:int = 0;
  12.  
  13. //how much time before allowed to shoot again
  14. var cTime:int = 0;
  15. //the time it has to reach in order to be allowed to shoot (in frames)
  16. var cLimit:int = 12;
  17. var enemyTime:int = 0;
  18. var enemyLimit:int = 16;
  19. //whether or not the user is allowed to shoot
  20. var shootAllow:Boolean = true;
  21. var bulletList:Array = [];
  22. var enemies: Array = new Array();
  23. var cores: Array = new Array("0xf2ed64", "0x2c3d07", "0x7cb2c3", "0xe4452f");
  24.  
  25.  
  26. //muusic
  27. var req:URLRequest = new URLRequest("musica.mp3");
  28. var s:Sound = new Sound(req);
  29. s.play();
  30.  
  31.  
  32. //planeta e canhao !!
  33. var mcMain: Loader = new Loader();
  34. mcMain.load(new URLRequest("novo_potato.png"));
  35.  
  36. var i:Number = 95;
  37.  
  38. addChild(mcMain);
  39. trace(stage.width);
  40. trace(stage.height);
  41.  
  42. mcMain.x = 200,5;
  43. mcMain.y = 120,5;
  44.  
  45. //these booleans will check which keys are down
  46. var leftDown:Boolean = false;
  47. var upDown:Boolean = false;
  48. var rightDown:Boolean = false;
  49. var downDown:Boolean = false;
  50. //how fast the character will be able to go
  51. var mainSpeed:int = 5;
  52.  
  53. //adding a listener to mcMain that will move the character
  54. mcMain.addEventListener(Event.ENTER_FRAME, moveChar);
  55.  
  56. function RandomWithinRange(min:Number, max:Number):Number
  57. {
  58. return Math.random() * (max - min) + min;
  59. }
  60.  
  61. function moveChar(event:Event):void{
  62. //checking if the key booleans are true then moving
  63. //the character based on the keys
  64.  
  65. if(leftDown){
  66. rotateAroundCenter(mcMain, -(i/10));
  67. i : i++;
  68. if(i>100){
  69. i = 100;
  70. }
  71. }
  72.  
  73. if(rightDown){
  74. rotateAroundCenter(mcMain,(i/10));
  75. i : i++;
  76. if(i>100){
  77. i = 100;
  78. }
  79. }
  80.  
  81. }
  82.  
  83. stage.addEventListener(Event.ENTER_FRAME, shootTime);
  84. function shootTime(e: Event): void{
  85. //checking if cTime has reached the limit yet
  86. if(cTime < cLimit){
  87. cTime ++;
  88. } else {
  89. //if it has, then allow the user to shoot
  90. shootAllow = true;
  91. //and reset cTime
  92. cTime = 0;
  93. }
  94. }
  95.  
  96. stage.addEventListener(Event.ENTER_FRAME, addEnemy);
  97. function addEnemy(e:Event):void{
  98. //adding enemies to stage
  99. if(enemyTime < enemyLimit){
  100. //if time hasn't reached the limit, then just increment
  101. enemyTime ++;
  102. } else {
  103.  
  104. var n: uint = RandomWithinRange(0,4);
  105. var nCor: uint = RandomWithinRange(0,4);
  106. //defining a variable which will hold the new enemy
  107. var newEnemy = new Enemy();
  108.  
  109. // create a Color object
  110. var c:Color = new Color();
  111. // set the color of the tint and set the multiplier/alpha
  112. if(nCor == 0){
  113. c.setTint(cores[0], 0.3);
  114. } else if(nCor == 1){
  115. c.setTint(cores[1], 0.3);
  116. } else if(nCor == 2){
  117. c.setTint(cores[2], 0.3);
  118. } else if(nCor == 3){
  119. c.setTint(cores[3], 0.3);
  120. }
  121. // apply the tint to the colorTransform property of the
  122. // desired MovieClip/DisplayObject
  123. newEnemy.transform.colorTransform = c;
  124. trace("//");
  125. trace(n);
  126.  
  127. //making the enemy offstage when it is created
  128.  
  129. //making the enemy's x coordinates random
  130. //the "int" function will act the same as Math.floor but a bit faster
  131.  
  132. if(n == 0){
  133. newEnemy.x = int(Math.random()*(stage.width - (newEnemy.width/2)));
  134. newEnemy.y = -1 * newEnemy.height;
  135. } else if(n == 1){
  136. newEnemy.y = int(Math.random()*(stage.height - (newEnemy.height/2)));
  137. newEnemy.x = -1 * newEnemy.width;
  138. } else if(n == 2){
  139. newEnemy.x = int(Math.random()*(stage.width - (newEnemy.width/2)));
  140. newEnemy.y = stage.height + newEnemy.height;
  141. } else if(n == 3){
  142. newEnemy.y = int(Math.random()*(stage.height - (newEnemy.height/2)));
  143. newEnemy.x = stage.width + newEnemy.width;
  144. }
  145.  
  146. trace(newEnemy.x);
  147. trace(newEnemy.y);
  148.  
  149. enemies.push(newEnemy);
  150. addChildAt(newEnemy,2);
  151. //and reset the enemyTime
  152. enemyTime = 0;
  153. }
  154. }
  155.  
  156. //this listener will listen for down keystrokes
  157. stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKeysDown);
  158. function checkKeysDown(event:KeyboardEvent):void{
  159. //making the booleans true based on the keycode
  160. //WASD Keys or arrow keys
  161. if(event.keyCode == 37 || event.keyCode == 65){
  162. leftDown = true;
  163. }
  164. if(event.keyCode == 39 || event.keyCode == 68){
  165. rightDown = true;
  166. }
  167.  
  168. //checking if the space bar is pressed and shooting is allowed
  169. if(event.keyCode == 32 && shootAllow){
  170. //making it so the user can't shoot for a bit
  171. shootAllow = false;
  172. //declaring a variable to be a new Bullet
  173. var newBullet:Bullet = new Bullet(stage,stage.width/2,stage.height/2,mcMain.rotation);
  174. //changing the bullet's coordinates
  175. shootBullet();
  176. var bullet_sound:URLRequest = new URLRequest("shot.mp3");
  177. var s:Sound = new Sound(bullet_sound);
  178. s.play();
  179. //then we add the bullet to stage
  180. //addChild(newBullet);
  181. }
  182. }
  183.  
  184.  
  185. function shootBullet():void //delete the "e:MouseEvent" parameter
  186. {
  187. var bullet:Bullet = new Bullet(stage, stage.width/2, stage.height/2, mcMain.rotation);
  188. bullet.addEventListener(Event.REMOVED_FROM_STAGE, bulletRemoved, false, 0, true);
  189. bulletList.push(bullet);
  190. addChildAt(bullet,1);
  191. }
  192.  
  193. function bulletRemoved(e:Event):void
  194. {
  195. e.currentTarget.removeEventListener(Event.REMOVED_FROM_STAGE, bulletRemoved);
  196. bulletList.splice(bulletList.indexOf(e.currentTarget),1);
  197. }
  198.  
  199.  
  200.  
  201.  
  202. stage.addEventListener(Event.ENTER_FRAME,CheckForCollision);
  203. stage.addEventListener(Event.ENTER_FRAME,CheckForCollisionPlanet);
  204.  
  205.  
  206. function CheckForCollision(e:Event){
  207. for(var i:int=0; i < enemies.length; i++){
  208. for(var j:int =0; j < bulletList.length; j++){
  209. if( enemies[i].hitTestObject(bulletList[j]) ){
  210.  
  211. //explosao
  212. //var req:URLRequest = new URLRequest("explosion.mp3");
  213. //var s:Sound = new Sound(req);
  214. //s.play();
  215. playerScore += 5;
  216. updateTextFields();
  217.  
  218. removeChild(enemies[i]);
  219. enemies[i] = null;
  220. enemies.splice(i, 1);
  221. removeChild(bulletList[j]);
  222. bulletList[j] = null;
  223. bulletList.splice(j, 1);
  224. }
  225. }
  226. }
  227. }
  228.  
  229.  
  230. function CheckForCollisionPlanet(e:Event){
  231. for(var j:Number =0; j < enemies.length; j++){
  232. var minDist:Number = 92;
  233. var distance:Number = Pythagoras(200+70, 120+70, enemies[j].x, enemies[j].y);
  234. trace("Valor "+ mcMain.x);
  235. trace("Valor" + mcMain.y);
  236.  
  237.  
  238. if (distance <= minDist){
  239.  
  240. //explosao
  241. //var req:URLRequest = new URLRequest("explosion.mp3");
  242. //var s:Sound = new Sound(req);
  243. //s.play();
  244.  
  245. removeChild(enemies[j]);
  246. enemies[j] = null;
  247. enemies.splice(j, 1);
  248. }
  249. }
  250.  
  251. }
  252.  
  253.  
  254. //this listener will listen for keys being released
  255. stage.addEventListener(KeyboardEvent.KEY_UP, checkKeysUp);
  256. function checkKeysUp(event:KeyboardEvent):void{
  257. //making the booleans false based on the keycode
  258. if(event.keyCode == 37 || event.keyCode == 65){
  259. leftDown = false;
  260. }
  261. if(event.keyCode == 39 || event.keyCode == 68){
  262. rightDown = false;
  263. }
  264. }
  265.  
  266. function rotateAroundCenter(object: DisplayObject, angleDegrees: Number): void {
  267. if (object.rotation == angleDegrees) {
  268. return;
  269. }
  270.  
  271. var matrix: Matrix = object.transform.matrix;
  272. var rect: Rectangle = object.getBounds(object.parent);
  273.  
  274. matrix.translate(-(rect.left + (rect.width / 2)), -(rect.top + (rect.height / 2)));
  275. matrix.rotate((angleDegrees / 180) * Math.PI);
  276. matrix.translate(rect.left + (rect.width / 2), rect.top + (rect.height / 2));
  277. object.transform.matrix = matrix;
  278.  
  279. object.rotation = Math.round(object.rotation);
  280. }
  281.  
  282.  
  283.  
  284. //stage.addEventListener(MouseEvent.CLICK, shootBullet, false, 0, true); //remove this
  285. stage.addEventListener(KeyboardEvent.KEY_DOWN, mouseDownHandler, false, 0, true);
  286. stage.addEventListener(KeyboardEvent.KEY_DOWN, mouseUpHandler, false, 0, true);
  287.  
  288. stage.addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
  289.  
  290.  
  291. function loop(e:Event):void
  292. {
  293. if(mousePressed) // as long as the mouse is pressed...
  294. {
  295. delayCounter++; //increase the delayCounter by 1
  296. if(delayCounter == delayMax) //if it reaches the max...
  297. {
  298. shootBullet(); //shoot a bullet
  299. delayCounter = 0; //reset the delay counter so there is a pause between bullets
  300. }
  301. }
  302.  
  303. if(bulletList.length > 0)
  304. {
  305. for(var i:int = bulletList.length-1; i >= 0; i--)
  306. {
  307. bulletList[i].loop();
  308. }
  309. }
  310. }
  311.  
  312. function mouseDownHandler(e:KeyboardEvent):void //add this function
  313. {
  314. mousePressed = true; //set mousePressed to true
  315. }
  316.  
  317. function mouseUpHandler(e:KeyboardEvent):void //add this function
  318. {
  319. mousePressed = false; //reset this to false
  320. }
  321.  
  322.  
  323. function updateTextFields():void
  324. {
  325. playerScoreText.text = (""+playerScore);
  326. }
  327.  
  328.  
  329. function Pythagoras(x1:Number, y1:Number, x2:Number, y2:Number):Number
  330. {
  331. var xdist:Number = x1-x2;
  332. var ydist:Number = y1-y2;
  333. return Math.sqrt(xdist*xdist+ydist*ydist);
  334. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement