libscratchcpp
A library for C++ based Scratch project players
Loading...
Searching...
No Matches
ispritehandler.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2
3#pragma once
4
5#include "global.h"
6#include "sprite.h"
7
8namespace libscratchcpp
9{
10
13{
14 public:
15 virtual ~ISpriteHandler() { }
16
18 virtual void init(Sprite *sprite) = 0;
19
21 virtual void deinitClone() = 0;
22
24 virtual void onCloned(Sprite *clone) = 0;
25
27 virtual void onCostumeChanged(Costume *costume) = 0;
28
30 virtual void onVisibleChanged(bool visible) = 0;
31
33 virtual void onXChanged(double x) = 0;
34
36 virtual void onYChanged(double y) = 0;
37
39 virtual void onMoved(double oldX, double oldY, double newX, double newY) = 0;
40
42 virtual void onSizeChanged(double size) = 0;
43
45 virtual void onDirectionChanged(double direction) = 0;
46
48 virtual void onRotationStyleChanged(Sprite::RotationStyle rotationStyle) = 0;
49
51 virtual void onLayerOrderChanged(int layerOrder) = 0;
52
57 virtual void onGraphicsEffectChanged(IGraphicsEffect *effect, double value) = 0;
58
60 virtual void onGraphicsEffectsCleared() = 0;
61
63 virtual int costumeWidth() const = 0;
64
66 virtual int costumeHeight() const = 0;
67
72 virtual Rect boundingRect() const = 0;
73
79 virtual Rect fastBoundingRect() const = 0;
80
82 virtual bool touchingClones(const std::vector<Sprite *> &clones) const = 0;
83
85 virtual bool touchingPoint(double x, double y) const = 0;
86
88 virtual bool touchingColor(Rgb color) const = 0;
89
91 virtual bool touchingColor(Rgb color, Rgb mask) const = 0;
92};
93
94} // namespace libscratchcpp
The Costume class represents a Scratch costume.
Definition costume.h:17
The IGraphicsEffects class is an interface for custom graphics effects.
Definition igraphicseffect.h:14
The ISpriteHandler class provides a sprite interface for Scratch project players.
Definition ispritehandler.h:13
virtual void onGraphicsEffectChanged(IGraphicsEffect *effect, double value)=0
virtual ~ISpriteHandler()
Definition ispritehandler.h:15
virtual void onYChanged(double y)=0
virtual void onCloned(Sprite *clone)=0
virtual int costumeWidth() const =0
virtual void onDirectionChanged(double direction)=0
virtual void onXChanged(double x)=0
virtual int costumeHeight() const =0
virtual void onGraphicsEffectsCleared()=0
virtual bool touchingClones(const std::vector< Sprite * > &clones) const =0
virtual Rect boundingRect() const =0
virtual void onRotationStyleChanged(Sprite::RotationStyle rotationStyle)=0
virtual void init(Sprite *sprite)=0
virtual void onMoved(double oldX, double oldY, double newX, double newY)=0
virtual void onLayerOrderChanged(int layerOrder)=0
virtual bool touchingPoint(double x, double y) const =0
virtual void onVisibleChanged(bool visible)=0
virtual void onCostumeChanged(Costume *costume)=0
virtual void onSizeChanged(double size)=0
virtual bool touchingColor(Rgb color, Rgb mask) const =0
virtual void deinitClone()=0
virtual bool touchingColor(Rgb color) const =0
virtual Rect fastBoundingRect() const =0
Definition rect.h:15
The Sprite class represents a Scratch sprite.
Definition sprite.h:18
RotationStyle
Definition sprite.h:21
#define LIBSCRATCHCPP_EXPORT
Definition global.h:17
The main namespace of the library.
Definition asset.h:10
unsigned int Rgb
Definition value_functions.h:11