mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2024-12-23 14:32:59 -05:00
Merge pull request #881 from sjhuang26/issue-gui1127-pen-trails
No pen trails when dragging
This commit is contained in:
commit
4fd7ba896a
2 changed files with 15 additions and 12 deletions
|
@ -181,14 +181,18 @@ class Scratch3PenBlocks {
|
|||
* @param {RenderedTarget} target - the target which has moved.
|
||||
* @param {number} oldX - the previous X position.
|
||||
* @param {number} oldY - the previous Y position.
|
||||
* @param {boolean} isForce - whether the movement was forced.
|
||||
* @private
|
||||
*/
|
||||
_onTargetMoved (target, oldX, oldY) {
|
||||
const penSkinId = this._getPenLayerID();
|
||||
if (penSkinId >= 0) {
|
||||
const penState = this._getPenState(target);
|
||||
this.runtime.renderer.penLine(penSkinId, penState.penAttributes, oldX, oldY, target.x, target.y);
|
||||
this.runtime.requestRedraw();
|
||||
_onTargetMoved (target, oldX, oldY, isForce) {
|
||||
// Only move the pen if the movement isn't forced (ie. dragged).
|
||||
if (!isForce) {
|
||||
const penSkinId = this._getPenLayerID();
|
||||
if (penSkinId >= 0) {
|
||||
const penState = this._getPenState(target);
|
||||
this.runtime.renderer.penLine(penSkinId, penState.penAttributes, oldX, oldY, target.x, target.y);
|
||||
this.runtime.requestRedraw();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -203,7 +203,7 @@ class RenderedTarget extends Target {
|
|||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
this.emit(RenderedTarget.EVENT_TARGET_MOVED, this, oldX, oldY);
|
||||
this.emit(RenderedTarget.EVENT_TARGET_MOVED, this, oldX, oldY, force);
|
||||
this.runtime.requestTargetsUpdate(this);
|
||||
}
|
||||
|
||||
|
@ -864,11 +864,10 @@ class RenderedTarget extends Target {
|
|||
*/
|
||||
postSpriteInfo (data) {
|
||||
const force = data.hasOwnProperty('force') ? data.force : null;
|
||||
if (data.hasOwnProperty('x')) {
|
||||
this.setXY(data.x, this.y, force);
|
||||
}
|
||||
if (data.hasOwnProperty('y')) {
|
||||
this.setXY(this.x, data.y, force);
|
||||
const isXChanged = data.hasOwnProperty('x');
|
||||
const isYChanged = data.hasOwnProperty('y');
|
||||
if (isXChanged || isYChanged) {
|
||||
this.setXY(isXChanged ? data.x : this.x, isYChanged ? data.y : this.y, force);
|
||||
}
|
||||
if (data.hasOwnProperty('direction')) {
|
||||
this.setDirection(data.direction);
|
||||
|
|
Loading…
Reference in a new issue