среда, 16 апреля 2008 г.
вторник, 15 апреля 2008 г.
Экспериментирую с box2d
package
{
import Box2D.Collision.*;
import Box2D.Collision.Shapes.*;
import Box2D.Common.Math.*;
import Box2D.Dynamics.*;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.MouseEvent;
public class MainTest extends Sprite
{
//======================
// Member Data
//======================
public var m_world:b2World;
public var m_bomb:b2Body;
public var m_iterations:int = 10;
public var m_timeStep:Number = 1/30;
public var m_physScale:Number = 1;
// world mouse position
static public var mouseXWorldPhys:Number;
static public var mouseYWorldPhys:Number;
static public var mouseXWorld:Number;
static public var mouseYWorld:Number;
// Sprite to draw in to
public var m_sprite:Sprite;
public function MainTest()
{
super()
stage.frameRate = 30;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.showDefaultContextMenu = false
graphics.beginFill(0xEEEEEE);
graphics.drawRect(0,0,1000,1000);
// Add event for main loop
addEventListener(Event.ENTER_FRAME, Update, false, 0, true);
stage.addEventListener(MouseEvent.CLICK, addObject);
// Creat world AABB
var worldAABB:b2AABB = new b2AABB();
worldAABB.minVertex.Set(-1000.0, -1000.0);
worldAABB.maxVertex.Set(1000.0, 1000.0);
// Define the gravity vector
var gravity:b2Vec2 = new b2Vec2(0.0, 30.0);
// Allow bodies to sleep
var doSleep:Boolean = true;
// Construct a world object
m_world = new b2World(worldAABB, gravity, doSleep);
// Vars used to create bodies
var bodyDef:b2BodyDef;
var boxDef:b2BoxDef;
var circleDef:b2CircleDef;
// Add ground body
bodyDef = new b2BodyDef();
boxDef = new b2BoxDef();
boxDef.extents.Set(1000, 100);
boxDef.friction = 0.3;
bodyDef.position.Set(500, 600);
bodyDef.AddShape(boxDef);
var s:Sprite = new Sprite;
s.graphics.beginFill(0xFFAA00);
s.graphics.drawRect(-50,-50,100,100);
bodyDef.userData=s;
bodyDef.userData.width = boxDef.extents.x * 2;
bodyDef.userData.height = boxDef.extents.y * 2;
addChild(bodyDef.userData);
m_world.CreateBody(bodyDef);
}
public function addShape(ax:int=100,ay:int=100):void
{
// Vars used to create bodies
var bodyDef:b2BodyDef;
var boxDef:b2BoxDef;
var circleDef:b2CircleDef;
bodyDef = new b2BodyDef();
boxDef = new b2BoxDef();
boxDef.extents.Set(20,20);
boxDef.density = 3.0;
boxDef.friction = 0.5;
boxDef.restitution = 0.6;
bodyDef.position.x=ax;
bodyDef.position.y=ay;
bodyDef.AddShape(boxDef);
var s:Sprite = new Sprite;
s.graphics.beginFill(0xFFAA00);
s.graphics.drawRect(-10,-10,20,20);
bodyDef.userData=s;
bodyDef.userData.width = boxDef.extents.x * 2;
bodyDef.userData.height = boxDef.extents.y *2;
addChild(bodyDef.userData);
m_world.CreateBody(bodyDef);
}
public function Update(e:Event):void{
m_world.Step(m_timeStep, m_iterations);
// Go through body list and update sprite positions/rotations
for (var bb:b2Body = m_world.m_bodyList; bb; bb = bb.m_next){
if (bb.m_userData is Sprite){
bb.m_userData.x = bb.m_position.x;
bb.m_userData.y = bb.m_position.y;
bb.m_userData.rotation = bb.m_rotation * (180/Math.PI);
}
}
}
public function addObject(event:MouseEvent):void
{
trace("click");
addShape(event.localX,event.localY);
}
}
}
пятница, 4 апреля 2008 г.
среда, 19 марта 2008 г.
мои VIM - Настройки
Чтобы были всегда со мной )
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
autocmd BufRead *.as set filetype=actionscript tabstop=4 shiftwidth=4
autocmd BufRead *.rb set tabstop=2 shiftwidth=2
" set encoding=utf-8 fileencodings=
set fileencodings=utf-8
" set termencoding=utf-8
" au GUIEnter * simalt x
set wildignore=*.o,*.obj,*.bak,*.exe,*.*~
let g:netrw_list_hide='^.*\~'
set number
colorscheme murphy
filetype on " Enable filetype detection
filetype indent on " Enable filetype-specific indenting
filetype plugin on " Enable filetype-specific plugins
compiler ruby " Enable compiler support for ruby
set guifont=Lucida_Console:h11:cRUSSIA
понедельник, 17 марта 2008 г.
пятница, 8 февраля 2008 г.
Генерация документации по as3 сорсам
Получилось сделать генерацию документации рекурсивно по директории, правда указание библиотек выглядит довольно криво:
"C:\Program Files\Adobe\Flex Builder 3 m3 Plug-in\sdks\3.0.0\bin\asdoc.exe" -source-path src -doc-sources src\com\c -compiler.library-path=libs\Cairngorm.swc,"C:\Program Files\Adobe\Flex Builder 3 Plug-in beta 3\sdks\3.0.0\frameworks\libs\Flex.swc","C:\Program Files\Adobe\Flex Builder 3 Plug-in beta 3\sdks\3.0.0\frameworks\libs\framework.swc","C:\Program Files\Adobe\Flex Builder 3 Plug-in beta 3\sdks\3.0.0\frameworks\libs\rpc.swc"
"C:\Program Files\Adobe\Flex Builder 3 m3 Plug-in\sdks\3.0.0\bin\asdoc.exe" -source-path src -doc-sources src\com\c -compiler.library-path=libs\Cairngorm.swc,"C:\Program Files\Adobe\Flex Builder 3 Plug-in beta 3\sdks\3.0.0\frameworks\libs\Flex.swc","C:\Program Files\Adobe\Flex Builder 3 Plug-in beta 3\sdks\3.0.0\frameworks\libs\framework.swc","C:\Program Files\Adobe\Flex Builder 3 Plug-in beta 3\sdks\3.0.0\frameworks\libs\rpc.swc"
Подписаться на:
Сообщения (Atom)