Merge pull request #2038 from ktbee/cast-sprite-names-to-string

Cast sprite name to string before getSpriteTargetByName
This commit is contained in:
Katie Broida 2019-03-08 11:52:23 -05:00 committed by GitHub
commit 19a4329c8b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 6 additions and 0 deletions

View file

@ -87,6 +87,7 @@ class Scratch3MotionBlocks {
targetX = Math.round(stageWidth * (Math.random() - 0.5));
targetY = Math.round(stageHeight * (Math.random() - 0.5));
} else {
targetName = Cast.toString(targetName);
const goToTarget = this.runtime.getSpriteTargetByName(targetName);
if (!goToTarget) return;
targetX = goToTarget.x;
@ -127,6 +128,7 @@ class Scratch3MotionBlocks {
util.target.setDirection(Math.round(Math.random() * 360) - 180);
return;
} else {
args.TOWARDS = Cast.toString(args.TOWARDS);
const pointTarget = this.runtime.getSpriteTargetByName(args.TOWARDS);
if (!pointTarget) return;
targetX = pointTarget.x;

View file

@ -191,6 +191,7 @@ class Scratch3SensingBlocks {
targetX = util.ioQuery('mouse', 'getScratchX');
targetY = util.ioQuery('mouse', 'getScratchY');
} else {
args.DISTANCETOMENU = Cast.toString(args.DISTANCETOMENU);
const distTarget = this.runtime.getSpriteTargetByName(
args.DISTANCETOMENU
);
@ -282,6 +283,7 @@ class Scratch3SensingBlocks {
if (args.OBJECT === '_stage_') {
attrTarget = this.runtime.getTargetForStage();
} else {
args.OBJECT = Cast.toString(args.OBJECT);
attrTarget = this.runtime.getSpriteTargetByName(args.OBJECT);
}

View file

@ -1,6 +1,7 @@
const log = require('../util/log');
const MathUtil = require('../util/math-util');
const StringUtil = require('../util/string-util');
const Cast = require('../util/cast');
const Clone = require('../util/clone');
const Target = require('../engine/target');
const StageLayering = require('../engine/stage-layering');
@ -840,6 +841,7 @@ class RenderedTarget extends Target {
* @return {boolean} True iff touching a clone of the sprite.
*/
isTouchingSprite (spriteName) {
spriteName = Cast.toString(spriteName);
const firstClone = this.runtime.getSpriteTargetByName(spriteName);
if (!firstClone || !this.renderer) {
return false;

Binary file not shown.