jobel's Forum Posts

  • hi,

    I have grid of block sprites that I randomly set to 'filled', then after I want to go through and place the correct tilemap tiles on to each 'filled' block.

    never tried this before but just wondering if this is the best approach..

    see here: drive.google.com/file/d/1eOtWNitd67RKnDOlZH6rjs7FkmJRWN8k/view

    thanks!

    Tagged:

  • what does your export process look like?

    I haven't made a new apk since Cocoon, but I literally have a Construct game I made and its on my Android phone right now; the sfx are flawless and I'm also a musician so I understand latency.

    I would try to regress the export (use older versions) somehow and do some tests to see at what point this problem occurs.

  • DiegoM good, I thought it was just me! thanks for fixing it..

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Anyone else experiencing issues with the x/y image point arrow buttons in the Sprite Editor?

    For a while now when I would left-click the up/down arrow buttons when changing the origin or image points, the first few clicks would go unnoticed, I had to tap it a few times before it incr/decr the number which was slightly annoying but tolerable.

    But in the last week I've noticed an even worse problem. When I left-click the arrow once and and keep the mouse pointer hovered over the arrow, it's as if I'm holding down left-click and number incr/decr really fast until I move focus off the arrow button (without clicking just a hover)

    Is this on my end or are other having this issue?

    EDIT: found a couple of differences. When I left-click in the X/Y field and put the blinking cursor in the field and then click the arrows, all is well, it incr/decr with each click. However, if I'm not currently in that field and directly go to clicking the incr/decr arrows is when it behaves like I'm doing a mouse button down.

    Tagged:

  • You do not have permission to view this post

  • One way I do a similar thing is I make a grid of sprites that are camera points and I ScrollTo the camera points depending on which one is closest to the player. This way I completely control the camera bounds.

    Not sure what your game looks like, would probably help if you made a project mockup of what you are trying to do. But it seems like AllanR had the answer, you just need to dynamically pick which tiles are relevant as your min/max depending where the viewport is in your layout. Some sort of nearest calculation should do it where you are always changing those values depending where the player is in the layout.

    Assuming you are doing and abrupt scrollTo it should work without any overlap.. but if you are using some sort of lerp for your camera, there will be bleed since if you suddenly change the min/max and are currently out of the bounds, it will then need to lerp to the new max/min and you will see it do so.

  • I have not had this issue when making Android apps. There is a delay for audio files in the 'music' folder, but not for the 'sounds' folder.

    Can you make a stand alone example of an empty game that plays a sound on every touch to see if you can reproduce it? and make sure its nothing in your game?

  • To do this you won't be able to channel all your sounds into one tag for compression. Because you'd want to make a unique tag for each sound, so just add the UID to the tag like this:

    Play Magma Tag: "MagmaSound" & Magma.UID

    Then when you want to stop it

    Pick Furthest Magma

    Stop "MagmaSound" & Magma.UID

  • couple things..

    first Trigger Once won't work on loops like that.

    second, are you using Visible as "visible on the screen"? because all objects are visible until you make them not visible. You probably want to use Is On Screen instead.

    third, Play At Object is bugged and produces a weird static sometimes so I suggest using Play and set the volume dB depending on how far away the player is with: -(distance(Magma.X,Magma.Y,Player.X,Player.Y) / 50)

    also I would suggest running all your magma sounds through one tag "Magma" and then On Start of Layout add a Compressor effect to "Magma" (use default settings is fine) this way they will never clip, like if you were close to a lot of them at once.

    Also think about adding a small pitch variance after each one: tag: "" Playback rate: random(0.98,1.03) this range might be to be widened depending on the sound.

    also make sure you use "" for tag and not your actual tag name since this will only change the last played sound and not all sounds for "Magma"

  • Think of Objects as House Blueprints

    Think of dragging objects to the Layout as making a House from that blueprint.

    When the layout runs, it creates any Houses that are already in the layout. If you run a System Event: Create Object, it will create another House of that type.

    When the game leaves that layout, objects get unloaded from memory, now all those objects are in oblivion - if there's data from those houses that you need saved, you need to save it to a global.

    For example: playerHealth. If your game needs to remember a player's health between layouts (at runtime), best to have a global variable called playerHealth, these variables will NOT be unloaded between layouts, these stay intact throughout the game's uptime.

    For one step further: If you want to have the game remember a player's health between exiting the game and your next play, then you need to save those variables to disk and load them on start. For this you would use the System Save Game function.

  • they don't exist which is why you can't get data from them.

    think of objects in the Folder as "blueprints" for a specific object. When you put them on the Layout you make the blueprint into a real object.

    Layouts are completely unloaded when you leave them. Only one Layout is loaded into memory at once. If somehow you need to access an object you could make it a global, but honestly I've never structured my programs that way.

  • a real easy way is to put the particle and the sprite in a Container together. That way when you "pick" the sprite, the particle gets picked along with it.

    also good for clean up, when you destroy the sprite, the particle associated with it also gets deleted.

    same for create, if you Create Object Sprite, it auto creates a particle on top and then you just have to set position, then pin it.

  • you might be able to check KeyCodes... that's where I would start.

    yeah I think 500 events would basically be a free engine when it comes to how most people use Construct.

  • you need to pick which sprite and which object go where.

    an easier way is just to create them in On Start of Layout

    Repeat 4 Times
    	Create Object Sprite
    	Sprite Spawn Particles at Imagepoint
    	Particles Pin to Sprite
    

    but this may not what be what you want. Another way would be to give them both an "ID" variable.

    Then loop like this:

    For Each Sprite
    	Particle.myID = Sprite.myID
    		pin Particle to Sprite
    
    

    You could also use IID, but I never use that.