Ashley's Recent Forum Activity

  • Download 0.99.3 now! (unstable)

    Link to 0.99.2 changelog

    This build fixes some of the final (hopefully) problems introduced by the 0.99 update. Take note of the breaking change, and exercise usual caution since it's an unstable build.

    Possible breaking changes

    • [CHANGE] The 'Create object' actions in the System object, and the 'Spawn object' action of the Sprite object, previously picked all events created in the event. In 0.99.3, it now instead only picks the last object created with the action. In other words, events like the following now have different behavior:

    + Start of layout

    -> Create A

    -> Create A

    -> Create A

    -> Set A position to (100,100)

    The old behavior was to set all three A's position to (100,100). In 0.99.3, the action only applies to the last created object, so two As are not moved, and the third one moves to (100,100). If you want the old behavior in 0.99.3, you would need to copy the set position action after each of the Create actions. This allows greater flexibility in managing created objects (eg. you can now create two objects and move them to different positions in the same event), and fixes some annoying bugs with creating objects in loops.

    Tip: if this becomes annoying because you create a lot of objects in an event, try re-factoring with a 'repeat N times' condition like so:

    + Start of layout

    + Repeat N times

    -> Create A

    -> Set something in A...

    Changelog

    Behaviors

    • [FIX] RTS movement: configuration error causing error on startup
    • [FIX] Platform Movement: Jitter bug with left and right gravity direction
    • [FIX] Platform Movement: On ground registering unexpectly when jumping up through a platform
    • [FIX] Physics: massive memory leak causing crashes in a few seconds under some circumstances
    • [FIX] Physics: crash calling actions (eg. Set Mass) immediately after creating object

    Effects

    • [FIX] Mask - Transparent pixels were unaffected

    General

    • [FIX] Crash removing layouts
    • [FIX] Infinite loop removing event sheets
    • [FIX] A crash when loading an application which had sound resources (caused verifier to crash, therefore saving crashed too)
    • [FIX] Crash previewing some large applications
    • [FIX] Potential crash loading and previewing old .caps

    Plugins

    • [ADD] Particles: action to set particle opacity
    • [ADD] Image Manipulator: new set rgb action
    • [FIX] Sprite: loading an image from file now updates the collision mask
    • [FIX] Sprite: glitch/crashes when using extremely large distort maps. These are not supported.
    • [FIX] Image Manipulator: set r/g/b actions now take values instead of colour parameters
    • [FIX] Light: showed at wrong position for one tick after being created
    • [CHANGE] Sprite: picking behavior of 'spawn object' modified. See breaking changes.

    Runtime

    • [FIX] Objects could disappear when layers rotated
    • [FIX] 'Else' following a 'Sprite overlaps X' condition sometimes ran even when the event was true
    • [FIX] Switching fullscreen mode caused rendering to stop
    • [CHANGE] Picking behavior of system 'create object' actions modified. See breaking changes.
  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • You do not have permission to view this post

  • Using 'System - compare values' is what's causing this. This will just calculate two numbers and compare them, ignoring the fact there are multiple instances of the sprite (so it just picks the first one and uses values from that). You should either use comparison conditions within the sprite object itself (which has a 'compare private variable' condition which respects picking), or alternatively, you can put a 'for each sprite' condition at the top of the event, which forces the compare values to run once for each sprite.

  • 1. I don't understand. What do you mean?

    2. Checkout the plugins module with a proper CVS client like TortoiseCVS or SmartCVS.

    3. You can just use the ordinary C runtime functions (fopen etc) to access the disk. You can put any code you like in the DefineACES() function, so what you want to do is possible.

    4.

    struct ControlTableEntry {
    	int vk;
    	const char* name;
    };
    
    ControlTableEntry keyTable[] = {
    	{VK_LBUTTON,	"Left mouse button"},
    	{VK_MBUTTON,	"Middle mouse button"},
    	{VK_RBUTTON,	"Right mouse button"},
    	{VK_TAB,		"Tab"},
    	{VK_RETURN,		"Enter"},
    	{VK_SHIFT,		"Shift"},
    	{VK_LSHIFT,		"Shift (left)"},
    	{VK_RSHIFT,		"Shift (right)"},
    	{VK_CONTROL,	"Control"},
    	{VK_LCONTROL,	"Control (left)"},
    	{VK_RCONTROL,	"Control (right)"},
    	{VK_MENU,		"Alt"},
    	{VK_LMENU,		"Alt (left)"},
    	{VK_RMENU,		"Alt (right)"},
    	{VK_PAUSE,		"Pause"},
    	{VK_ESCAPE,		"Escape"},
    	{VK_SPACE,		"Space"},
    	{VK_HOME,		"Home"},
    	{VK_END,		"End"},
    	{VK_UP,			"Up arrow"},
    	{VK_DOWN,		"Down arrow"},
    	{VK_LEFT,		"Left arrow"},
    	{VK_RIGHT,		"Right arrow"},
    	{VK_INSERT,		"Insert"},
    	{VK_DELETE,		"Delete"},
    	{'0',			"0"},
    	{'1',			"1"},
    	{'2',			"2"},
    	{'3',			"3"},
    	{'4',			"4"},
    	{'5',			"5"},
    	{'6',			"6"},
    	{'7',			"7"},
    	{'8',			"8"},
    	{'9',			"9"},
    	{'A',			"A"},
    	{'B',			"B"},
    	{'C',			"C"},
    	{'D',			"D"},
    	{'E',			"E"},
    	{'F',			"F"},
    	{'G',			"G"},
    	{'H',			"H"},
    	{'I',			"I"},
    	{'J',			"J"},
    	{'K',			"K"},
    	{'L',			"L"},
    	{'M',			"M"},
    	{'N',			"N"},
    	{'O',			"O"},
    	{'P',			"P"},
    	{'Q',			"Q"},
    	{'R',			"R"},
    	{'S',			"S"},
    	{'T',			"T"},
    	{'U',			"U"},
    	{'V',			"V"},
    	{'W',			"W"},
    	{'X',			"X"},
    	{'Y',			"Y"},
    	{'Z',			"Z"},
    	{VK_BACK,		"Backspace"},
    	{VK_NUMPAD0,	"Num pad 0"},
    	{VK_NUMPAD1,	"Num pad 1"},
    	{VK_NUMPAD2,	"Num pad 2"},
    	{VK_NUMPAD3,	"Num pad 3"},
    	{VK_NUMPAD4,	"Num pad 4"},
    	{VK_NUMPAD5,	"Num pad 5"},
    	{VK_NUMPAD6,	"Num pad 6"},
    	{VK_NUMPAD7,	"Num pad 7"},
    	{VK_NUMPAD8,	"Num pad 8"},
    	{VK_NUMPAD9,	"Num pad 9"},
    	{VK_ADD,		"Num pad Add"},
    	{VK_SUBTRACT,	"Num pad Subtract"},
    	{VK_MULTIPLY,	"Num pad Mulitply"},
    	{VK_DIVIDE,		"Num pad Divide"},
    	{VK_DECIMAL,	"Num pad Decimal"},
    	{VK_F1,			"F1"},
    	{VK_F2,			"F2"},
    	{VK_F3,			"F3"},
    	{VK_F4,			"F4"},
    	{VK_F5,			"F5"},
    	{VK_F6,			"F6"},
    	{VK_F7,			"F7"},
    	{VK_F8,			"F8"},
    	{VK_F9,			"F9"},
    	{VK_F10,		"F10"},
    	{VK_F11,		"F11"},
    	{VK_F12,		"F12"},
    	{-1,			""},
    };[/code:2i1xmlg8]
    
    5.  It might help you to buy a C++ reference book or something like that to answer your questions about the language.  #define with nothing after it means the given statement is removed (it is defined as nothing).  Since you probably looked up its definition in the runtime configuration, and the runtime doesn't care about parameter definitions, it is simply removed.  However, the IDE needs to know about parameters, so in the release configuration it is defined as a call to a function.
  • The RTS behavior can do this.

  • 1) Yes, I am aware of the "Object is on screen?" condition for sprite objects, but there is no way to check if a sprite object is NOT on screen?

    Right click, invert condition. Have you tried any tutorials? I think they cover this.

  • Usually if you are suggesting a plugin or behavior, it helps to give a comprehensive description and possibly an example list of the actions, conditions and expressions it might feature. It's impossible to tell what you really mean and precisely what you want it to do if you just give a one line or few lines saying that you want something. When a developer (if they have time) comes to develop it, they'll have to put a lot of thought in to how to design the plugin/behavior, precisely which actions, conditions and expressions to add, and so on. If you don't specify what you're after, someone may make one and it could be completely different to what you really wanted because you didn't say!

  • Sorry, that's not possible right now, unless you design your own level editor. However, it might be possible in Construct 2.

  • That looks awesome.

  • Everyone seems to have Twitter these days. I still don't have an account, but is it time I gave in and signed one up? Perhaps I could start a Scirra twitter account and post updates. But even then, the whole point of it seems to elude me. What do you think?

  • Nominations are now closed - we find out the finalists on June 22. Thanks to everyone who voted!

  • Nope - if it's not in the expressions list it doesn't exist. It's just (Object.Left + Object.Right) / 2, though.

Ashley's avatar

Ashley

Early Adopter

Member since 21 May, 2007

Twitter
Ashley has 1,767,908 followers

Connect with Ashley

Trophy Case

  • Jupiter Mission Supports Gordon's mission to Jupiter
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • Forum Wizard Made 5,000 posts in the forums
  • Forum Unicorn Made 10,000 posts in the forums
  • Forum Mega Brain Made 20,000 posts in the forums
  • x125
    Coach One of your tutorials has over 1,000 readers
  • x74
    Educator One of your tutorials has over 10,000 readers
  • x5
    Teacher One of your tutorials has over 100,000 readers
  • Sensei One of your tutorials has over 1,000,000 readers
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • RTFM Read the fabulous manual
  • x42
    Great Comment One of your comments gets 3 upvotes
  • Email Verified

Progress

32/44
How to earn trophies

Blogs