チェンジセット 1913

差分発生行の前後
無視リスト:
コミット日時:
2008/11/30 01:30:43 (4 年前)
コミッタ:
haku2
ログメッセージ:

・図形関連ツールの強化
 →Rキーを押した状態で図形の描画を開始すると、
  直前に使ったツールの終点(マウスボタンを放した位置)が始点となる。
  要するに、直線を連結させて描くための機能強化です。
  (直線以外の図形でも利用可能)

・円ツールの強化
 →円ツールの描画中に Qキー、または Aキーを押すと、
  始点~終点を一辺とする正方形の、始点の対角が円の中心点になる。
  要するに、中心点がキャンバスの外になってしまう円を描くための機能強化です。

※両方ともログの互換性は保っている……はず

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/gunyarapaint/trunk/gunyarapaint/src/org/libspark/gunyarapaint/entities/GPLogger.as

    r1891 r1913  
    4747    public var compatibility_0_0_1:Boolean = false; 
    4848    public var compatibility_0_1_0:Boolean = false; 
     49 
     50        // 20081129-haku2 ins start 
     51        // 描画終了位置 
     52    private var btnUpX:uint = 0, btnUpY:uint = 0; 
     53        // キー状態保持 
     54        public var key_A:Boolean = false; 
     55        public var key_Q:Boolean = false; 
     56        public var key_R:Boolean = false; 
     57        // 20081129-haku2 ins end 
    4958 
    5059    public function GPLogger(log:ByteArray, 
     
    11461155          return; 
    11471156        } 
    1148         _fromPoint = new Point(evt.localX, evt.localY); 
     1157        // 20081129-haku2 ins start 
     1158        // マウスボタン押下時に Rキーが押されていたら、図形の始点を直前の描画終了位置に置き換える 
     1159        if(key_R) { 
     1160          _fromPoint = new Point(btnUpX, btnUpY); 
     1161        } else { 
     1162          _fromPoint = new Point(evt.localX, evt.localY); 
     1163        } 
     1164        // 20081129-haku2 ins end 
     1165        // 20081129-haku2 del start 
     1166        //_fromPoint = new Point(evt.localX, evt.localY); 
     1167        // 20081129-haku2 del end 
    11491168        _drawing = true; 
    11501169         
     
    12421261            dx = evt.localX - _fromPoint.x; 
    12431262            dy = evt.localY - _fromPoint.y; 
    1244             _pen.previewDrawCircle(_fromPoint.x, _fromPoint.y, Math.sqrt(dx * dx + dy * dy)); 
     1263                // 20081129-haku2 ins start 
     1264                var mx:Number, my:Number, mo:Number; 
     1265            if(key_A) { 
     1266              // 正方形の一辺を指定し、その対角を中心点とする(反時計回り) 
     1267              mx = evt.localX + dy; 
     1268              my = evt.localY - dx; 
     1269            } else if(key_Q) { 
     1270              // 正方形の一辺を指定し、その対角を中心点とする(時計回り) 
     1271              mx = evt.localX - dy; 
     1272              my = evt.localY + dx; 
     1273            } else { 
     1274              // 始点を中心点とする 
     1275              mx = _fromPoint.x; 
     1276              my = _fromPoint.y; 
     1277            } 
     1278            _pen.previewDrawCircle(mx, my, Math.sqrt(dx * dx + dy * dy)); 
     1279            // 20081129-haku2 ins end 
     1280                // 20081129-haku2 del start 
     1281            //_pen.previewDrawCircle(_fromPoint.x, _fromPoint.y, Math.sqrt(dx * dx + dy * dy)); 
     1282                // 20081129-haku2 del end 
    12451283          } 
    12461284          break; 
     
    13181356            dy = evt.localY - _fromPoint.y; 
    13191357            // 始点と終点が違う場合にのみ円を描く 
    1320             this.eventMoveTo(_fromPoint.x, _fromPoint.y); 
     1358                // 20081129-haku2 ins start 
     1359                var mx:Number, my:Number, mo:Number; 
     1360            if(key_A) { 
     1361              // 正方形の一辺を指定し、その対角を中心点とする(反時計回り) 
     1362              mx = evt.localX + dy; 
     1363              my = evt.localY - dx; 
     1364            } else if(key_Q) { 
     1365              // 正方形の一辺を指定し、その対角を中心点とする(時計回り) 
     1366              mx = evt.localX - dy; 
     1367              my = evt.localY + dx; 
     1368            } else { 
     1369              // 始点を中心点とする 
     1370              mx = _fromPoint.x; 
     1371              my = _fromPoint.y; 
     1372            } 
     1373            this.eventMoveTo(mx, my); 
    13211374            this.eventDrawCircle(Math.sqrt(dx * dx + dy * dy)); 
     1375                // 20081129-haku2 ins end 
     1376                // 20081129-haku2 del start 
     1377            //this.eventMoveTo(_fromPoint.x, _fromPoint.y); 
     1378                // 20081129-haku2 del end 
    13221379            this.eventDrawShapeOnBitmap();           
    13231380          } 
     
    13371394        break; 
    13381395      } 
     1396      // 20081129-haku2 ins start 
     1397      // 描画終了位置を保持 
     1398      btnUpX = evt.localX; 
     1399      btnUpY = evt.localY; 
     1400      // 20081129-haku2 ins end 
    13391401    } 
    13401402