-
Notifications
You must be signed in to change notification settings - Fork 89
/
PrimitivesExample.as
103 lines (88 loc) · 2.6 KB
/
PrimitivesExample.as
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package
{
import flash.events.MouseEvent;
import starling.display.graphics.TriangleStrip;
import starling.core.Starling;
import starling.display.Sprite;
import starling.display.graphics.NGon;
import starling.display.graphics.Plane;
import starling.display.graphics.RoundedRectangle;
import starling.display.materials.StandardMaterial;
import starling.display.materials.TextureMaterial;
import starling.display.shaders.fragment.TextureFragmentShader;
import starling.display.shaders.vertex.StandardVertexShader;
import starling.events.Event;
import starling.textures.Texture;
public class PrimitivesExample extends Sprite
{
[Embed( source = "/assets/Checker.png" )]
private var CheckerBMP :Class;
private var nGonC :NGon;
public function PrimitivesExample()
{
addEventListener(Event.ADDED_TO_STAGE, onAdded);
}
private function onAdded ( e:Event ):void
{
var plane:Plane = new Plane(100,100,2,2);
plane.material.color = 0x3399FF;
plane.x = 10;
plane.y = 10;
addChild(plane);
var nGonA:NGon = new NGon(50, 10);
nGonA.x = 200;
nGonA.y = 60;
nGonA.material.color = 0x0066CC;
addChild(nGonA);
var nGonB:NGon = new NGon(50, 5, 40);
nGonB.x = 400;
nGonB.y = 60;
nGonB.material.color = 0xFF9900;
addChild(nGonB);
nGonC = new NGon(100, 50, 50, -5, 356);
nGonC.x = 340;
nGonC.y = 200;
nGonC.material = new TextureMaterial( Texture.fromBitmap( new CheckerBMP() ) );
nGonC.material.color = 0x9900FF;
addChild(nGonC);
var triangleStrip:TriangleStrip = new TriangleStrip();
for ( var i:int = 0; i < 20; i++ )
{
var x:Number = int(i / 2) * 20;
var y:Number = 0;
var r:Number = 1;
var g:Number = 0;
var b:Number = 1;
var a:Number = 1;
// top vertices
if ( i % 2 == 0 )
{
y = 0;
y -= Math.random() * 10;
}
else
{
r *= 0.5;
g *= 0.5;
b *= 0.5;
y = 100;
}
triangleStrip.addVertex( x, y, x * 0.01, y * 0.01, r, g, b, a );
}
triangleStrip.x = 500;
triangleStrip.y = 20;
addChild(triangleStrip);
var roundedRect:RoundedRectangle = new RoundedRectangle(200, 100, 10, 20, 30, 40);
roundedRect.material = new TextureMaterial( Texture.fromBitmap( new CheckerBMP() ) );
roundedRect.x = 20;
roundedRect.y = 140;
addChild(roundedRect);
Starling.current.nativeStage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
}
private function onMouseMove(event:MouseEvent):void
{
nGonC.startAngle = (event.stageY / stage.stageHeight) * 360;
nGonC.endAngle = (event.stageX / stage.stageWidth) * 360;
}
}
}