# Feature requests (from an educational standpoint)

For educators around the world who use Construct 2 in classrooms

### » Mon Aug 04, 2014 8:38 pm

After having taught dozens of students how to use Construct over the past few years, there have always been a few conditions/events that are possible to implement with a combination of the current available ones, but perhaps that would be worthy of their own conditions/events? For pedagogical reasons, simpler is better, especially for students just starting out.

For example, the Sprite object has the action "Move at Angle". This action could be accomplished using a combination of the "Set Angle" and "Move Forward" actions (followed by restoring the original angle if necessary), but having the "Move at Angle" event available streamlines the process nicely and makes the software more approachable and user-friendly for newcomers.

So, without further ado, a few features that (in my humble opinion) would be beneficial to include (from an educational standpoint):

1. In some of the movement behaviors (8-direction, Bullet, Platform), there is a condition called "Compare Speed". It would be great to have analogous conditions available for comparing some of the other values associated to the behaviors: for 8-Direction and Bullet "Compare angle of motion", for 8-Direction and Platform "Compare VectorX" and "Compare VectorY", etc. The particular use cases I'm thinking of is for switching between sprite animations when characters move in different ways, and it feels unintuitive to need to do this using the System event to Compare Two Values. (Especially after students get used to using conditions like "Compare X" or "Compare Speed").

2. In the Properties pane for objects with Bullet behavior, I have found that students spend a lot of time looking for a way to set angle of motion (since you can set the speed of a bullet object here, it seems natural that one should be able to set a bullet's angle of motion as well).

3. There are a few mathematical functions, namely the distance function and the angle function, each of which take in four parameters (two pairs of x,y coordinates). I frequently have students calculate the distance from one sprite to another or angle from one sprite to another, and so students often type things like:

distance(Sprite1.X, Sprite1.Y, Sprite2.X, Sprite2.Y)
or
angle(Sprite1.X, Sprite1.Y, Sprite2.X, Sprite2.Y)

Would it be possible to implement "abbreviated" versions of these functions that could be called as follows?

objectDistance( Sprite1, Sprite2 )
or
objectAngle( Sprite1, Sprite2 )

(The names aren't necessarily perfect, but they get the point across.)

4. In terms of transitioning between Construct 2 and a traditional programming language (such as Java), one of the most important concepts is loops. The for-each loop an implemented in Construct is beautiful, but having come from a traditional computer science background, accessing the index variable in a For loop in Construct 2 seems "clunky", needing to access the value of the loop variable using "loopindex". What I would propose would be introducing a new condition: For Variable. When setting up this condition, you choose a pre-existing global or local variable (in the same way you choose an object in the For Each loop), and enter a starting index and an ending index (in the same way you enter them when setting up a For loop), and the value of the variable changes as expected.

Well, these are my thoughts and hopes. Here's hoping @Ashley is reading
B
64
S
23
G
14
Posts: 52
Reputation: 19,970

### » Mon Aug 04, 2014 11:16 pm

They tried implementing a vector system in Construct Classic but it didn't go over so well, I guess largely because there was no instance reference so it was hard to get the picking correct.
In C2 we have the index, but who knows how a vector would work in Javascript.

An expression for objects is a nice idea, but it would have to be set aside if you had to use world coordinates.
B
173
S
50
G
194
Posts: 8,566
Reputation: 121,368

### » Mon Aug 04, 2014 11:30 pm

+1 for the object expressions
B
67
S
26
G
11
Posts: 672
Reputation: 11,555