Tokinsom's Forum Posts

  • Tagging Ashley because he probably knows the most about this but if you have experience with C2's gamepad object I'd appreciate any input (pun intended).

    So...I've set up configurable controls for both keyboard and gamepad, using keycodes and such. Pretty cool. It's all saved to a dictionary and I even consolidated keyboard/gamepad inputs to prevent input condition conflicts in a given event.

    Anyway, problem is...how am I supposed to set the default configuration when all gamepads use different key codes? I thought all controllers modeled after the xbox 360 one used the same keycodes, but apparently that's not the case. I've read they change with OS, too.

    I've been using this for reference...but it's incorrect for all of my gamepads.

    And I also found this from microsoft but it's using bitmasks..so..er...

    I found this while looking through the gamepad.runtime file

    	// How to write a mapping:
    	// Construct 2 normalises all controller states to the format used by the XBox 360 controller
    	// on Chrome/Windows.  Everything is mapped to a single 20-element array in the format:
    	// 0: A								10: Left analog button
    	// 1: B								11: Right analog button
    	// 2: X								12: D-pad up
    	// 3: Y								13: D-pad down
    	// 4: Left shoulder button			14: D-pad left
    	// 5: Right shoulder button			15: D-pad right
    	// 6: Left shoulder trigger			16: Left analog X axis
    	// 7: Right shoulder trigger		17: Left analog Y axis
    	// 8: Back							18: Right analog X axis
    	// 9: Start							19: Right analog Y axis
    	// Since different controllers return buttons and axes in a different order on different
    	// browsers and OSs, all combinations need to be mapped to the above 20-element array,
    	// called the 'c2state'.
    	// The buttons mapping array translates a raw button input to the c2state, and the axis
    	// mapping array translates a raw axis input to the range 0, 1, 2 or 3 (automatically offset
    	// by 16 to fit in to the c2state).  However, sometimes an axis is mapped to a pair of buttons,
    	// e.g. for the D-pad coming up as an axis.  In this case the mapping is another array
    	// of the buttons to map the axis to; the first element for the button when axis negative,
    	// and the second element for the button when the axis positive.  e.g. XBox 360 on Firefox/Windows
    	// has axis 5 mapped to D-pad left and right; the entry is [14, 15] to map negative (left) to
    	// c2state 14 (D-pad left), and positive (right) to c2state 15 (D-pad right).
    	// If no mapping exists for an OS/browser/controller configuration, it defaults to assuming it's
    	// the same as Windows/Chrome/XBox 360, done by the defaultMap function.[/code:2kai9r9d]
    
    Do I need to do something similar? So confused -w-;
    
    For the record I'm only using NWjs. Controllers tested are MadCatz 360 Controller, Logitech 360 controller, WiiU pro controller. I also have a PS2 controller but I haven't tested it yet. IIRC C2 didn't even recognize it when I tried long ago.
  • R0J0hound Sure did! Thanks man.

  • Hey I'm getting an error/crash if I paste an object that has the "Brightness" shader on it. I tested it with a few others like "Tint" and I got the same thing.

    Any idea what that's about? :T

  • Ashley Yep. Every engine I've used uses "Window" instead of "Viewport" here and it never works the first time lol.

    Anyway, just to clarify, we can now simply subtract Window Inner from Window Outer to get the border sizes, then add the border sizes to the desired window size?

  • Jaydon export works fine here. Are yours exceptionally large or anything odd?

  • r3 is awaiting approval.

    -Includes all assets in a separate folder.

    -Fixes a bug where previously collected items would reappear in some situations.

  • I'm currently using an HP Omen. I think they've been reduced to ~$1000 by now.

    15.6" IPS panel, 1920x1080, touch-enabled

    Intel core i7 4710HQ

    Nvidia GTX 860m

    256gb PCIe SSD

    Pretty damn nice considering the price. I'd prefer a 17" screen though. Also it doesn't have a numpad so that can be troublesome at times.

    Without a dedicated GPU...hm...maybe something like the HP Envy, Asus zenbook, Dell Inspiron, or Lenovo thinkpad. There are so many out there..

  • Problem Description

    I use NWjs.WindowWidth - WindowWidth to calculate the width of a window border so I can properly resize a window. Same for height. This has worked fine for all of my projects. However, if I set my project's window size to 1920x1080 or higher (my screen's resolution), this expression returns the wrong numbers.

    It looks like the window is automatically resized if the game is launched at a resolution that matches or exceeds the device's screen resolution. This might be part of the problem somehow.

    Attach a Capx

    https://dl.dropboxusercontent.com/u/105 ... e_Bug.capx

    Description of Capx

    Calculates the size of the window borders and prints them out to a text object.

    Steps to Reproduce Bug

    • Preview the layout. Note the border sizes printed to the text object.
    • Close the window.
    • Set the window size in the project properties your device's screen resolution or higher.
    • Preview the layout again. Note the border sizes are not the same as they were, and the window size is not exactly what you set it to.

    Observed Result

    Border size results are wrong and window is resized.

    Expected Result

    Border size results should be the same as when you first previewed the layout.

    Affected Browsers

    • NWjs

    Operating System and Service Pack

    Windows 10

    Construct 2 Version ID

    211

  • jbconstruct82 I made some updates to the store page which broke the original post here. Doesn't look like I can modify it - clicking edit just shows a block of text with no bbcode or anything...oy. Tom is there any way to, like, 'refresh' this auto-generated thread to reflect the latest updates on the store page?

  • Ashley

    I use NWjs.WindowWidth - WindowWidth to calculate the width of the window border so I can properly resize a window. Same for height. This has worked fine for all of my projects. However, my latest project that starts with a window size of 1920x1080 is giving me the wrong numbers; usually I get 16x39 but now I'm getting 123x39. It looks like the window is automatically resized if the game is launched at a resolution that matches or exceeds the screen's resolution, thus screwing up the borders somehow.

    I'm not sure if this is a problem with C2, NWjs, or Windows...so I figured I'd post here before submitting a bug report. Thoughts?

    You can see for yourself by using the .capx in this forum thread. Just run it and see what the border size text says. Then set the window size in the project properties to 1920x1080 (or your screen's resolution if it's larger) and run the layout again.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • DurandalCorp I thought about including a video but didn't know if it was really necessary with such heavy commenting already. I even included references to where some functions are called and executed. If there is no reference then I deemed it easy enough to figure out i.e. "Menu_Select" is obviously called from eMenus, "Room_Load" is obviously from eRoomSystem, all dictionary keys can be found in eSaveData, and so on. It's all organized that way. If you have any specific questions I'll be happy to answer them via the support email or private message.

    jojoe The first 2 Metroids and a lot of other metroidvanias only have 4 directional aiming. Seemed more suitable for this kit. Anyway, I'll consider including 8 directional aiming but the code is nearly identical already...you just need to replace "Up, Down" etc. at the end of the animations with numbers (0,1,2,3,4), change the aim variable from a string to an int, and add the additional inputs.

  • Well the idea is to export the game via NW.js or whatever and post the .exe...not the .capx.

  • Updated to r2. Fixes a bug where the player engine group is not deactivated when opening the subscreen (small oversight when refactoring), removes left-over door triggers, and fixes up some door trigger placements. Also includes a readme with default controls and extra details.

  • Yeah it's best to have a good machine for developing and a crappy laptop or something for testing. I am currently developing on an HP Omen laptop (got it for 30% off...retailmenot.com is awesome.)

    If you want a desktop you should build your own. It's not as complicated as it seems and will save you a lot of money. I usually get my parts from Newegg and Amazon.

    If you insist on buying pre-built, I've heard to avoid those cheapo "gaming" brands like ibuypower and cyberpower or whatever. Check out Digital Storm or Origin.

  • Hmm...alright I think I'm getting the idea now. Most of the confusion came from the art that I was given. It's about 4x the size it needs to be even for a 1080p game, and not all of it was drawn "to-scale". For example, the source image for the player is almost 1/4th the size of an entire level image. He'll need to be scaled down roughly 70% just to fit! Looks like we need to spend some time scaling all the source images so they are closer to the final product, and minimize in-editor scaling so we can still use object types that don't allow it like tiled backgrounds and 9-patches. Hoorah for batch processing.

    Thanks for all the input everyone!