Geo-Asteroids
forked from Snake Game (diff: 16)
Game
ActionScript3 source code
/**
* Copyright Patrik-Malik ( http://wonderfl.net/user/Patrik-Malik )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/qKHw
*/
// forked from Patrik-Malik's Anaconda
//frogs, rodents, turtles and small mammals
//rabbits, foxes, birds
package {
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
import flash.display.Sprite;
import flash.events.KeyboardEvent;
public class FlashTest extends Sprite {
private var hlava:Sprite;
private var oko:Sprite;
public var polomer:int = 10;
// Musim zmenit na array
public var varRight:Boolean = false;
public var varLeft:Boolean = false;
public var varUp:Boolean = false;
public var varDown:Boolean = false;
public var xRýchlosť:Number = 5;
public var yRýchlosť:Number = 5;
private var speed:Number = 0.3;
private var rotateSpeed:Number = 5;
private var vx:Number = 0;
private var vy:Number = 0;
private var friction:Number = 0.95;
public function FlashTest() {
// write as3 code here..
hlava=new Sprite();
hlava.graphics.beginFill(0x0000FF);
hlava.graphics.drawCircle(0, 0, polomer);
hlava.graphics.endFill();
hlava.x=100;
hlava.y=100;
hlava.rotation=-90;
oko=new Sprite();
oko.graphics.beginFill(0xFFFFFF);
oko.graphics.drawCircle(0, 0, 7);
oko.graphics.endFill();
oko.x=(polomer/2);
oko.y=0;
hlava.addChild(oko);
addChild(hlava);
stage.addEventListener(Event.ENTER_FRAME, pohyb);
stage.addEventListener(KeyboardEvent.KEY_DOWN, naStlačenieKlávesy);
stage.addEventListener(KeyboardEvent.KEY_UP, naUvoľnenieKlávesy);
}
public function naStlačenieKlávesy(event:KeyboardEvent):void {
if (event.keyCode == 39) {
varRight = true;
}
if (event.keyCode == 37) {
varLeft = true;
}
if (event.keyCode == 38) {
varUp = true;
}
if (event.keyCode == 40) {
varDown = true;
}
}
public function naUvoľnenieKlávesy(event:KeyboardEvent):void {
if (event.keyCode == 39) {
event.keyCode = 0;
varRight=false;
}
if (event.keyCode == 37) {
event.keyCode = 0;
varLeft=false;
}
if (event.keyCode == 38) {
event.keyCode = 0;
varUp=false;
}
if (event.keyCode == 40) {
event.keyCode = 0;
varDown=false;
}
}
public function pohyb(event:Event):void{
if (varRight == true)
{
//hlava.x += xRýchlosť;
hlava.rotation += rotateSpeed;
}
if (varLeft == true)
{
//hlava.x -= xRýchlosť;
hlava.rotation -= rotateSpeed;
}
if (varUp == true)
{
//hlava.y -= yRýchlosť;
vy += Math.sin(degreesToRadians(hlava.rotation)) * speed;
vx += Math.cos(degreesToRadians(hlava.rotation)) * speed;
}
else {
vy *= friction;
vx *= friction;
}
if (varDown == true)
{
//hlava.y += yRýchlosť;
}
hlava.x += vx;
hlava.y += vy;
if(hlava.x-polomer < 0)
{
hlava.x=stage.stageWidth-polomer;
}
else if(hlava.x+polomer > stage.stageHeight)
{
hlava.x=polomer;
}
if(hlava.y-polomer < 0)
{
hlava.y = stage.stageHeight-polomer;
}
else if(hlava.y > stage.stageHeight)
{
hlava.y = polomer;
}
}
public function degreesToRadians(degrees:Number) : Number
{
return degrees * Math.PI / 180;
}
}
}
