Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - RootBound

#441
@Khris No change unfortunately.
@newwaveburritos Didn't get a response from the debug keys either. I saw you're making your own game with mode7. What did you use as your starting base? Did you use a template and then add the module?
#442
@Creamy no rush, mostly I was just bumping the thread up to try to interest more people :)
#443
Less than 2 weeks left!  :)  Anyone else thinking about making an entry?
#444
Thanks @Khris. I put the Draw() in room_RepExec, and I imported a very simple background image to the room just to make sure the room is actually loading. It does fade in, but no mode7 objects are drawn. @eri0o do you have any thoughts?
#445
I played it and enjoyed it! Puzzles are tricky enough to make you think a bit, and the graphics and sound all work well at creating a mood. A fun time. :)
#446
Played both and voted!
#447
Absolutely possible and not too difficult.

First make the GUI for your idle question popup, and code the buttons there however you want. Then set the GUI visibility to false in the AGS editor.

Then put a timer in your global script (maybe under game_start, though there might be a better place depending on how you structured the game). Use SetTimer(), and set the timeout value as GetGameSpeed() times the number of seconds before the idle popup should appear.

Then, if you have a mouse based interface, under on_mouse_click, you set the same timer for the same amount of time, so that every time the user clicks, timer goes back to zero.

Finally, under repeatedly_execute, you check whether the timer is expired using an if statement with IsTimerExpired(). Put the code there to make the idle GUI appear.

Here's a link to the online manual and index. Just look up SetTimer, IsTimerExpired, GetGameSpeed, game_start, repeatedly_execute, and on_mouse_click for more detail. Hope that helps. :)

https://adventuregamestudio.github.io/ags-manual/genindex.html

(If I have made any mistakes here, more advanced users please feel free to correct me).
#448
Hi @Khris thanks so much for the response. I tinkered with the values (also tried changing the ground sprite in case that was causing the problem) and unfortunately I am still just getting a black screen.

Here's the entirety of the room code:

Code: ags
// room script file

Mode7 ThePlace;

function room_Load()
{
  ThePlace.SetViewscreen(100, 100, 100, 100);
  ThePlace.SetGroundSprite(17);
  ThePlace.SetCamera(10.0, 10.0, 10.0, 1.0, -0.1, 35.0);
  ThePlace.Draw();
  
}

Any other errors you see? I appreciate it.
#449
Yes, by using the unhandled_event function in the global script. There's a code for "use inventory on hotspot" (see manual here: https://adventuregamestudio.github.io/ags-manual/Globalfunctions_Event.html#unhandled_event ). That will explain how to use it.

Then, within the unhandled_event function you put something like this:

Code: ags
if (what == 1 && type == 3){
  if(player.ActiveInventory == iScissors){
    player.Say("This doesn't need a haircut.");
  }
}

Then (if there is any other code in the hotspot's own useinv function in the room script, like if it DOES respond to other inventory objects), you call unhandled_event(1,3) under an else statement, after the code for the item that does work.

If there is no useinv function coded for the hotspot, unhandled_event gets called automatically.

#450
Great to see some updates! Love the trailer. Looks like you put a lot of thought into the writing, and the details in the art are incredible.  :)
#451
Quote from: Creamy on Mon 28/08/2023 18:52:24The one on the roof is particularly cool.

Thanks! This is the effect I'm most proud of too.

The movement in this room can be divided into a few different effects:
1. The movement of the train tracks
2. The "bumping" up and down movement.
3. The movement of trees, poles, and shrubbery.
4. The movement of the "ground" under the trees.
Here a screenshot for reference:


1. The train tracks are a repeating animation, part of the animated background, that changes every frame.
2. The "bumping" movement is one frame out of the five animated background frames, where the entire background shifts up/down by one pixel (except for the train itself, and also the tracks because they are so small that even one pixel looks weird). The changing of the lake surface is also animated background.

3. The movement of everything else is more complicated. Basically I have five "rows" or "paths" that the trees, poles, and shrubbery follow (think of them as conveyor belts), two on the left and three on the right. On the left we have one row of poles and one row of grasses. On the right we have two rows of trees and bushes (closer to the train), and a "wall" of dense foliage (the back row).

There are around five grass objects on the far left, two poles on the near left, and I think six or seven tree/shrub objects in each of the rows on the right. These are all dummy characters, for a few reasons: (1) the x-coordinate is the center-bottom of the image instead of the corner, which makes more sense for a tree and makes it easier for differently-sized trees to follow the same path. (2) this allows for the "movement linked to scaling" option, which makes the trees move slower when "farther away" and then speed up as they get "closer." They are moving along a continuously-scaled walkable area. Any images that pass the bottom of the screen get switched to manual scaling until they are out of sight (you can spot this change if you watch closely--there's a better way to do it, but I didn't figure that out until afterward, and I was trying to avoid having to code the "movement linked to scaling" option by hand).

Once each tree reaches a specified "out-of-sight" coordinate, it resets its xy position to the vanishing point (or the beginning of the "conveyor belt"), which is also the level of smallest scaling on the walkable area, and manual scaling gets turned off again. This is also where the magic happens--in the editor I have all the sprites for all the different trees and shrubs in one "view," each sprite on a different loop within the view. When each tree resets its position in the room, it also gets assigned a random loop from the view, changing it from, for example,  a tree to a bush. This is based on a random integer that has the same range as the number of loops in the view. This gives the appearance of a kind of procedural generation so that it isn't the same trees in the same order every time. Each tree then follows the conveyor belt again, resetting and changing its sprite yet again when it goes out of sight, over and over, for as long as the player is in the room.

4. The "ground" is actually included in the same sprites as the foliage, like so:

By having ground only "in front" of the trees, this allows the ground to always be behind the "closer" objects that have a higher y-coordinate, and to never have the ground be drawn on top of a tree behind it. The ground is also drawn wide enough to fill in the gaps between each tree, both horizontally and vertically. (Again, if you watch closely, you can still see the boundaries between each "piece" of ground, especially when they are not moving at the same speed). This reduces the number of moving components on the screen as well, because this was already a lot of dummy characters.

The back row of foliage sprites is designed to almost overlap into a wall, in order to hide the fact that farther away ground (not underneath the trees) is not moving. I made it high enough that the only non-moving ground is fairly far away.

All these components together result in the illusion of movement. If any one of them were missing, I think the overall effect would be less convincing. It took me forever to figure out how to do it, but I'm pretty pleased with the outcome. Thanks for asking, and I hope you enjoyed this look "under the hood."  :)


#452
Hi @Creamy and thanks so much for your comments! I'm happy you found so much to like about it, and your critiques are certainly fair. I appreciate you taking the time to give feedback.  :)

Which speed effects were you wondering about? There were a couple different methods depending on which room.
#453
Hints & Tips / Re: Tunnel Vision Walkthrough
Sun 27/08/2023 16:39:02
@selmiak posted a playthrough on youtube! Thanks so much. It was a lot of fun to see the game being played by someone else.  :)

https://www.youtube.com/watch?v=Rq9FypVTbsk
#454
Played through to both endings. I think seeing both actually increases the impact of each, which is very good game writing. Nice graphics and I agree with previous comments that the details do a great job of helping immersion. Really good work.
#455
@heltenjon I couldn't ask for a better or more thoughtful review. Thanks so much for playing and sharing your response. :)
#456
Holy cow you all. I just need to say thank you for an amazing game launch. I've reached 70 downloads and got a 4-cup review from the AGS panel???  8-0 This is amazing. It means so much to see all my hard work appreciated.  ;-D  So glad that so many of you enjoyed it! You all are awesome.  8-)
#457
@newwaveburritos wow, that was fast! 8-0  I don't know if my eyes 100% know what to make of it, but that's some really dramatic Gotham City lighting (or is it more like Las Vegas?) on the outside and some evocative objects on the inside.  (nod) Definitely grabs (and keeps) your attention. Nice work.
#459
Winner announced below! :)

Hey all,

For this month's background blitz I was looking through old prompts and really liked both "vertical scrolling" and "you can't get there from here." I seriously considered reusing one of those until someone asked a question on discord about having multiple rooms visible simultaneously. Aha! Now that's a way to combine both prompts!

This month's prompt is BUILDING CUTAWAY. Make all the rooms in a building visible at once by "cutting away" one of the exterior walls. Could be tall enough for vertical scrolling--or not. Could have secret passages or other rooms that you can see but can't get to--or not! Draw whatever interests you.

EDIT: forgot the voting criteria! Whoops! Once we start voting, please evaluate entries based on the following:
-Concept
-Playability
-Artistic Execution

Deadline September 14 followed by a week of voting. Have fun!







#460
Should be simple enough. Under the function where the NPC receives inventory items, you can put the following:

if (NPCname.HasInventory(iFish) && NPCname.HasInventory(iCup) && NPCname .HasInventory(iPlate) && NPCname.HasInventory(iFork)){
  player.AddInventory(iKey);
  }

A little cumbersome but should only trigger once the NPC has all four items.
SMF spam blocked by CleanTalk