C-7's Recent Forum Activity

  • You're a third of the way there already! Keep it up!

  • This is a really substantial undertaking that will take a lot of planning, but C2 works just fine for it. If you're unaware of what a state machine is, google it and look up how that all works. Your 'turns' will be a series of functions triggered by a state machine with timers and such. Your moves, stats, and all that are likely going to be held in a dictionary object or an array. I, personally, use a large array for all of my game data with a matching google spreadsheet that I use for reference. I use that same array to keep track of every quest status, inventory, game progress, save data, and more in different columns.

    Enemies are either sprites or containers with multiple sprites controlled by a series of events. You'll probably have two version of them--one on the overworld, one that is controlled by your state machine in your battle system.

    Weakness, stats, and all that are going to be equations you come up with calculated using the values in your dictionaries and arrays.

    It's complex and there's a reason you don't see as many of them made--particularly in beginner-friendly engines like C2. They're perfectly doable, though.

  • You should use two objects. One, a standard rectangle that has all of your player behaviors and events. It will be invisible at all times. Then, have a second object with all of your visuals and pin it out set its position to your invisible player handler. Then you can load all of your sprite frames in however you want.

  • I don't see why not. My RPG isn't tiled-based, and I've had no problems. So long as you recognize a lot of work goes into producing games like that, it should be just fine. I wouldn't target mobile with it, by the way,

    Click through some of my videos to see what I've been able to do.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • The initial loading you're seeing is because it must load in the assets for your loading screen before it can show it. I prefer setting it to black for this very reason. Keep your loader layout light-weight, and that initial load will be shorter. As far as only going to about 30%, I have no idea without seeing your capx, unfortunately. Are you checking the loading progress vs 0 through 1.0?

  • 1: I might consider finding a way to do this all without including the player/enemy widths. It sounds like your frames are different and that's causing the issues.

    2-3: You can use clamp to force it to stay within a certain range. That will give a lower and upper limit. If you're trying to just make it not zoom so far the edges of the map show, you could add a condition that compares the edge of your layout to the viewport edge. Don't zoom out any more if they're too close, for instance. I'd type out psuedo-code for that, but it's tough without knowing your layer and layout settings, but I think you should be able to whip something up from that.

  • Yeah, in this instance, use "is overlapping". Remember, that's called continuously, so you need a sub-condition to make it do what you want.

    This could be something simple like a private variable on the enemy. Call it something like "stunned". Also, keep track of the player state for future expandability. So give them a variable like "dead".

    if enemy is overlapping player

    and If enemy variable "stunned" = 0

    and if player variable "dead" = 0

    -----> Set player variable "dead" to 1

    -----> Do you death events here. When it's done, reset "dead" to 0.

    That way, it will check if the enemy is both overlapping the player AND if they're not stunned. Once the event happens, you set the player to "dead" = 1 to stop the event from being true a second time. You could modify that pretty easily to add health, too, with an "invulnerable" state/private variable for the player.

  • This may not be the most ideal way to do it, but it should work. Have a small, invisible "spawner" object (just a sprite). Every few seconds, set its position randomly within whatever range you're looking to use (set position X: random(player.X-1000, player.X+1000) and so on). Then, check if it is overlapping a water sprite or water sprite family. If it is, immediately reposition it. Then, right after, if the object isn't overlapping water, call a function or event to spawn an enemy at that location.

  • You can re-size it in the image editor inside C2 (where you imported the image). This won't look fantastic, but it'll work. Really, you should probably redraw it the size you want it.

  • Have you tried adding the browser object to your project? Make sure the mouse or touch objects are there as well. Then, on object clicked or touched, you can use the browser object to launch a url.

  • It's a cool idea, though I doubt it will be implemented. I get around it by using the z-order panel. Click where you want to and it'll list every object that is overlapping whatever you just clicked in the z-order panel. Then, just select what you actually wanted from that list. Middle-click back on the viewport window and you can nudge the object with arrows, but even without that, you can change the object's properties in the property window at that point. It isn't quite as simple, but it works pretty well (and my scenes get really complex).

  • I'm assuming your crosshair is just on top of the screen and likely wouldn't need to go around things (why would it?). You need to set its position over time. I'd, personally, use lerp for this.

    If --compare two values-- Distance(player.X,player.Y,crosshair.X,crosshair.Y) > 5,

    Then crosshair>set position> X: lerp(Self.X, player.X, 3*dt), Y: lerp(Self.Y, player.Y, 3*dt)

    Change the "3" to change the speed of the effect. The "5" up there is a small deadzone at your player's origin--technically not necessary.

    This manual entry will explain those system expressions a little more if you need it. The gist (for these purposes) is it will slowly move towards the player and decelerate as it arrives (side note: technically, it will never arrive, but you can just round it off when its close enough). You could use fancier ways to get it to move, but this is a simple way to give a constant, smooth motion towards a target.

C-7's avatar

C-7

Member since 9 Oct, 2010

None one is following C-7 yet!

Connect with C-7

Trophy Case

  • 14-Year Club
  • Popular Game One of your games has over 1,000 players

Progress

15/44
How to earn trophies