import flash.events.MouseEvent;

import flash.events.Event;

import flash.sensors.Accelerometer;

import flash.geom.Point;

import flash.display.Sprite;


btn.buttonMode = true;

btn.addEventListener( MouseEvent.CLICK, onClick );


var time:Number = 3;


var point1:Point;

var point2:Point;


var line:Sprite = new Sprite();

addChild( line );


function onClick( $e:MouseEvent ):void

{

btn.alpha = 0.2;

btn.removeEventListener( MouseEvent.CLICK, onClick );

b.x = p1.x;

b.y = p1.y;

a1.x = p1.x;

a1.y = p1.y;

a2.x = p2.x;

a2.y = p2.y;

point1 = vXY( new Point( p1.x, p1.y ), new Point( p2.x, p2.y ), time );

point2 = vXY( new Point( p2.x, p2.y ), new Point( p3.x, p3.y ), time );

addEventListener( Event.ENTER_FRAME, onEnter );

setTimeout( onEnterStop, time * 1000 );

}


var dx:Number = 0;

var dy:Number = 0;


var dist:Number = 0;

var angle:Number = 0;

var speed:Number = 0;

var vx:Number = 0;

var vy:Number = 0;


var a:Number = 0;

var gravity:Number = 0;


function onEnter( $e:Event ):void

{

gravity += 0.1;

a1.x += point1.x;

a1.y += point1.y;

a2.x += point2.x;

a2.y += point2.y;

dx = a2.x - a1.x;

dy = a2.y - a1.y;

dist = Math.sqrt( dx * dx + dy * dy );

angle = Math.atan2( dy, dx );

speed = dist / 30 / time;

vx = Math.cos( angle ) * speed;

vy = Math.sin( angle ) * speed;

b.rotation = vy * 20;

b.x += vx;

b.y += vy;

a += vx;

line.graphics.clear();

line.graphics.lineStyle( 1, 0xffffff, 0.5 );

line.graphics.moveTo( a2.x, a2.y );

line.graphics.lineTo( a1.x, a1.y );

}


function onEnterStop():void

{

removeEventListener( Event.ENTER_FRAME, onEnter );

btn.addEventListener( MouseEvent.CLICK, onClick );

btn.alpha = 1;

}


function vXY( $point1:Point, $point2:Point, $time:int ):Point

{

var dx:Number = $point2.x - $point1.x;

var dy:Number = $point2.y - $point1.y;

var dist:Number = Math.sqrt( dx * dx + dy * dy );

var speed:Number = dist / 60 / time;

var angle:Number = Math.atan2( dy, dx );

var vx:Number = Math.cos( angle ) * speed;

var vy:Number = Math.sin( angle ) * speed;

var speedPoint:Point = new Point( vx, vy );

return speedPoint;

}

'Starling > Game' 카테고리의 다른 글

Starling + node.js  (2) 2012.12.03
Staring_슈팅게임_v3  (0) 2012.11.30
Staring_슈팅게임_v2  (0) 2012.11.21



'Starling' 카테고리의 다른 글

Starling_ Double Click( tapCount ).  (0) 2013.07.30
Starling_Tween( _repeatCount, _reverse )  (0) 2013.07.17
Starling_ Double Click 꼼수.  (0) 2013.07.17
Starling TextField Filters  (0) 2013.04.03
Starling TextField bounds, textBounds  (0) 2013.04.03






Main.as 




package

{

import flash.display.Sprite;

import starling.core.Starling;

[SWF( frameRate="60", width="500", height="300", backgroundColor="#990000" )]

public class Main extends Sprite

{

private var _starling:Starling;

public function Main()

{

_starling = new Starling( Game, stage );

_starling.start();

}

}

}






Game.as



package

{

import starling.animation.Transitions;

import starling.core.Starling;

import starling.display.Quad;

import starling.display.Sprite;

import starling.events.Touch;

import starling.events.TouchEvent;

import starling.events.TouchPhase;


public class Game extends Sprite

{

private var _btn:Quad;

private var _isDouble:Boolean = false;

public function Game()

{

_btn = new Quad( 100, 100, 0xffffff );

_btn.addEventListener( TouchEvent.TOUCH, onTouch );

addChild( _btn );

_btn.pivotX = _btn.width >> 1;

_btn.pivotY = _btn.height >> 1;

_btn.x = 500 / 2;

_btn.y = 300 / 2;

}

private function onTouch( $e:TouchEvent ):void

{

var touch:Touch = $e.getTouch( stage, TouchPhase.BEGAN );

if( touch == null )

return;

var tapCount:Number = touch.tapCount % 2;

if( !tapCount ){

_isDouble = !_isDouble;

}

if( _isDouble )

Starling.juggler.tween( _btn, .35, { scaleX:0.5, scaleY:0.5, transition:Transitions.EASE_OUT_BACK });

else

Starling.juggler.tween( _btn, .35, { scaleX:1, scaleY:1, transition:Transitions.EASE_OUT_BACK});

}

}

}

'Starling' 카테고리의 다른 글

모바일 가로 설정  (0) 2014.11.04
Starling_Tween( _repeatCount, _reverse )  (0) 2013.07.17
Starling_ Double Click 꼼수.  (0) 2013.07.17
Starling TextField Filters  (0) 2013.04.03
Starling TextField bounds, textBounds  (0) 2013.04.03







Main.as


package

{

import flash.display.Sprite;

import starling.core.Starling;

[SWF(frameRate="60", width="500", height="300")]

public class Main extends Sprite

{

private var _starling:Starling;

public function Main()

{

_starling = new Starling( Game, stage );

_starling.start();

}

}

}







Game.as


package

{

import starling.animation.Transitions;

import starling.core.Starling;

import starling.display.Quad;

import starling.display.Sprite;

import starling.events.Touch;

import starling.events.TouchEvent;

import starling.events.TouchPhase;

public class Game extends Sprite

{

public function Game()

{

super();

initCreate();

initSetting();

}

private var _btn:Quad;

private function initCreate():void

{

_btn = new Quad( 100, 100, 0xffffff );

_btn.pivotX = _btn.width >> 1;

_btn.pivotY = _btn.height >> 1;

_btn.x = 250;

_btn.y = 100;

addChild( _btn );

}

private function initSetting():void

{

_btn.addEventListener( TouchEvent.TOUCH, onTouch );

}

private function onTouch( $e:TouchEvent ):void

{

var touch:Touch = $e.getTouch( _btn, TouchPhase.BEGAN );

if( touch == null )

return;

move();

}

private function move():void

{

Starling.juggler.removeTweens( _btn );

_btn.y = 100;

Starling.juggler.tween( _btn, 0.5, { y:200, _repeatCount:2, _reverse:true, transition:Transitions.EASE_IN });

}

}

}

'Starling' 카테고리의 다른 글

모바일 가로 설정  (0) 2014.11.04
Starling_ Double Click( tapCount ).  (0) 2013.07.30
Starling_ Double Click 꼼수.  (0) 2013.07.17
Starling TextField Filters  (0) 2013.04.03
Starling TextField bounds, textBounds  (0) 2013.04.03

꼼수입니다. (_ _);










Main.as 



package

{

import flash.display.Sprite;

import starling.core.Starling;

[SWF( frameRate="60", width="500", height="300")]

public class Main extends Sprite

{

private var _starling:Starling;

public function Main()

{

_starling = new Starling( Game, stage );

_starling.start();

}

}

}






Game.as


package
{
import starling.animation.Transitions;
import starling.core.Starling;
import starling.display.Quad;
import starling.display.Sprite;
import starling.events.Event;
import starling.events.Touch;
import starling.events.TouchEvent;
import starling.events.TouchPhase;
public class Game extends Sprite
{
public function Game()
{
initCreate();
initSetting();
}
private var _btn:Quad;
private var _isDouble:Boolean = false;
private function initCreate():void
{
_btn = new Quad( 100, 100, 0xffffff );
_btn.addEventListener( TouchEvent.TOUCH, touchListener );
addChild( _btn );
}
private function initSetting():void
{
_btn.pivotX = _btn.width >> 1;
_btn.pivotY = _btn.height >> 1;
_btn.x = 250;
_btn.y = 150;
}
private function touchListener( $e:TouchEvent ):void
{
var touch:Touch = $e.getTouch( _btn, TouchPhase.BEGAN );
if( touch == null )
return;
onTouch();
}
private function onTouch():void
{
if( _isDouble ){
doubleClick();
return;
}
_isDouble = true;
Starling.juggler.delayCall( doubleEnd, 0.25 );
}
private function doubleEnd():void
{
_isDouble = false;
}
private function doubleClick():void
{
_isDouble = false;
onPlay();
}
private var _isBoo:Boolean = true;
private function onPlay():void
{
if( _isBoo ) 
Starling.juggler.tween( _btn, 0.25, { scaleX:0.5, scaleY:0.5, color:0xff0000, transition:Transitions.EASE_IN_OUT });
else
Starling.juggler.tween( _btn, 0.25, { scaleX:1, scaleY:1, color:0xffffff, transition:Transitions.EASE_IN_OUT });
_isBoo = !_isBoo;
}
}
}



'Starling' 카테고리의 다른 글

Starling_ Double Click( tapCount ).  (0) 2013.07.30
Starling_Tween( _repeatCount, _reverse )  (0) 2013.07.17
Starling TextField Filters  (0) 2013.04.03
Starling TextField bounds, textBounds  (0) 2013.04.03
Starling_Button  (0) 2012.12.03










Main.as


package

{

import flash.display.Sprite;

import starling.core.Starling;

public class Main extends Sprite

{

private var _starling:Starling;

public function Main()

{

setting();

}

private function setting():void

{

_starling = new Starling(Game, stage);

_starling.start();

}

}

}







Game.as


package

{

import flash.filters.DropShadowFilter;

import starling.display.Sprite;

import starling.text.TextField;

import starling.utils.HAlign;

import starling.utils.VAlign;

public class Game extends Sprite

{

public function Game()

{

super();

var _txt:TextField = new TextField(100, 100, "연습", "나눔고딕", 20);

var dropShadow:DropShadowFilter = new DropShadowFilter();

_txt.hAlign = HAlign.LEFT;

_txt.vAlign = VAlign.TOP;

_txt.nativeFilters = [ dropShadow ];

addChild( _txt );

}

}

}











'Starling' 카테고리의 다른 글

Starling_Tween( _repeatCount, _reverse )  (0) 2013.07.17
Starling_ Double Click 꼼수.  (0) 2013.07.17
Starling TextField bounds, textBounds  (0) 2013.04.03
Starling_Button  (0) 2012.12.03
starling_TouchEvent  (0) 2012.11.21

Main.as


package

{

import flash.display.Sprite;

import starling.core.Starling;

public class Main extends Sprite

{

private var _starling:Starling;

public function Main()

{

setting();

}

private function setting():void

{

_starling = new Starling(Game, stage);

_starling.start();

}

}

}









Game.as


package

{

import starling.display.Sprite;

import starling.text.TextField;

import starling.utils.HAlign;

import starling.utils.VAlign;

public class Game extends Sprite

{

public function Game()

{

super();

var _txt:TextField = new TextField(100, 100, "연습", "_sans", 20);

_txt.bold = true;

_txt.border = true;

_txt.hAlign = HAlign.LEFT;

_txt.vAlign = VAlign.TOP;

_txt.autoScale = true;

addChild( _txt );

trace( _txt.textBounds );  //(x=2, y=2, w=42, h=24);

trace( _txt.bounds );       //(x=0, y=0, w=100, h=100);

}

}

}

'Starling' 카테고리의 다른 글

Starling_Tween( _repeatCount, _reverse )  (0) 2013.07.17
Starling_ Double Click 꼼수.  (0) 2013.07.17
Starling TextField Filters  (0) 2013.04.03
Starling_Button  (0) 2012.12.03
starling_TouchEvent  (0) 2012.11.21

 TEST




'Starling > Game' 카테고리의 다른 글

bazier  (0) 2014.11.17
Staring_슈팅게임_v3  (0) 2012.11.30
Staring_슈팅게임_v2  (0) 2012.11.21





* Starling_Button.as


package

{

import flash.display.Sprite;

import starling.core.Starling;

[SWF(frameRate="60", width="300", height="500", backgroundColor="0x666666")]

public class Starling_Button extends Sprite

{

private var _starling:Starling;

public function Starling_Button()

{

settingSet();

}

private function settingSet():void

{

_starling = new Starling(Game, stage);

_starling.start();

}

}

}







* Game.as



package

{

import flash.display.Bitmap;

import starling.display.Button;

import starling.display.Image;

import starling.display.Sprite;

import starling.events.Event;

import starling.textures.Texture;

public class Game extends Sprite

{

[Embed(source="../images/buttonTexture.png")]

private var _imgClass:Class;

[Embed(source="../images/buttonTextureBack.png")]

private var _backImgClass:Class;

private var _vec_btn:Vector.<Button>;

private var _container:Sprite;

public function Game()

{

super();

addEventListener(Event.ADDED_TO_STAGE, addStage);

}

private function addStage(e:Event):void

{

settingSet();

}

private function settingSet():void

{

var i:uint = 0;

var len:uint = 4;

_container = new Sprite();

this.addChild(_container);

var _bitmap:Bitmap = new _imgClass();

var _texture:Texture = Texture.fromBitmap(_bitmap);

var _backBitmap:Bitmap = new _backImgClass();

var _backTexture:Texture = Texture.fromBitmap(_backBitmap);

var _button:Button;

var _buttonName:Vector.<String> = Vector.<String>(["Play", "Options", "Rules", "Sign in"]);

for(i; i<len; i++){

_button = new Button(_texture, _buttonName[i], _backTexture);

_button.fontBold = true;

_button.scaleWhenDown = .95;

_container.addChild(_button);

_button.y = _button.height * i;

}

_container.x = (stage.stageWidth - _container.width) / 2;

_container.y = (stage.stageHeight - _container.height) / 2;

}

}

}


'Starling' 카테고리의 다른 글

Starling_Tween( _repeatCount, _reverse )  (0) 2013.07.17
Starling_ Double Click 꼼수.  (0) 2013.07.17
Starling TextField Filters  (0) 2013.04.03
Starling TextField bounds, textBounds  (0) 2013.04.03
starling_TouchEvent  (0) 2012.11.21

'Starling > Game' 카테고리의 다른 글

bazier  (0) 2014.11.17
Starling + node.js  (2) 2012.12.03
Staring_슈팅게임_v2  (0) 2012.11.21

'Starling > Game' 카테고리의 다른 글

bazier  (0) 2014.11.17
Starling + node.js  (2) 2012.12.03
Staring_슈팅게임_v3  (0) 2012.11.30

ctrl key + mouse drag







Main.as



package

{

import flash.display.Sprite;

import starling.core.Starling;

[SWF(frameRate="30", width="550", height="500", backgroundColor="0x000000")]

public class Main extends Sprite

{

private var _star:Starling;

public function Main()

{

_star = new Starling(Game, stage);

_star.simulateMultitouch = true;

_star.start();

}

}

}




Game.as


package

{

import flash.display.Bitmap;

import flash.geom.Point;

import starling.display.Image;

import starling.display.Sprite;

import starling.events.Event;

import starling.events.Touch;

import starling.events.TouchEvent;

import starling.textures.Texture;

import starling.utils.deg2rad;

public class Game extends Sprite 

{

private var _container:Sprite;

private var _multiTouch:Vector.<Touch>;

private var _image:Image;

[Embed(source="test.jpg")]

private var _imageClass:Class;

public function Game()

{

super();

addEventListener(Event.ADDED_TO_STAGE, addStage);

}

private function addStage (e:Event):void

{

settingSet();

}

private function settingSet():void

{

_container = new Sprite();

addChild(_container);

_container.x = stage.stageWidth / 2;

_container.y = stage.stageHeight / 2;

var _bitmap:Bitmap = new _imageClass() as Bitmap;

var _texture:Texture = Texture.fromBitmap(_bitmap);

_image = new Image(_texture);

_image.pivotX = _image.width / 2;

_image.pivotY = _image.height / 2;

_container.addChild(_image);

_multiTouch = new Vector.<Touch>();

_image.addEventListener(TouchEvent.TOUCH, touchHandler);

}

private function touchHandler (e:TouchEvent):void

{

_multiTouch = e.getTouches(stage);

var _multiLength:int = _multiTouch.length;

if(_multiTouch[0].phase == "moved"){

if(_multiLength == 2){

multiTouchSet();

}else{

oneTouchSet();

}

}

}

private function oneTouchSet():void

{

var _locationPos:Point = _multiTouch[0].getLocation(stage);

var _prevPos:Point = _multiTouch[0].getPreviousLocation(stage);

var _point:Point = _locationPos.subtract(_prevPos);

_container.x += _point.x;

_container.y += _point.y;

}

private function multiTouchSet():void

{

rotationSet();

enlargementSet();

}

private function enlargementSet():void

{

var firstPos:Point = _multiTouch[0].getLocation(parent);

var secondPos:Point = _multiTouch[1].getLocation(parent);

var firstPrevPos:Point = _multiTouch[0].getPreviousLocation(parent);

var secondPrevPos:Point = _multiTouch[1].getPreviousLocation(parent);

var firstDistancs:Number = Point.distance(firstPos, secondPos);

var prevDistancs:Number = Point.distance(firstPrevPos, secondPrevPos);

var distancs:Number = firstDistancs - prevDistancs;

_image.width += distancs;

_image.scaleY = _image.scaleX;

}

private function rotationSet():void

{

var _locationPos:Point = _multiTouch[0].getLocation(stage);

var _prevPos:Point = _multiTouch[0].getPreviousLocation(stage);

var _locationROT:Number = (180 / Math.PI) * Math.atan2(_locationPos.y - _container.y, _locationPos.x - _container.x) + 90;

var _prevROT:Number = (180 / Math.PI) * Math.atan2(_prevPos.y - _container.y, _prevPos.x - _container.x) + 90;

var _rot:Number = _locationROT - _prevROT;

_container.rotation += deg2rad(_rot);

}

}

}










'Starling' 카테고리의 다른 글

Starling_Tween( _repeatCount, _reverse )  (0) 2013.07.17
Starling_ Double Click 꼼수.  (0) 2013.07.17
Starling TextField Filters  (0) 2013.04.03
Starling TextField bounds, textBounds  (0) 2013.04.03
Starling_Button  (0) 2012.12.03

+ Recent posts