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

#81
Experiment is making progress! Thanks again to @Khris for all your help and to @eri0o for the module. This is great fun.

#82
EDIT: turns out this has nothing to do with the background, actually. This is the "sprite 19" issue from my original post. Sprite 19 was the same as the background image. Easy workaround is to make sprite 19 transparent. Doesn't solve the underlying issue, but it works.

Something extremely strange is happening. It appears that a copy of the room background image (in this case two color blocks) is being drawn on top of the mode7 ground texture. Could this an issue with GetDrawingSurfaceForBackground, or do you think the mode7 module is not drawing the texture correctly?

#83
Quote from: Khris on Thu 07/09/2023 13:02:19I found the missing piece: the module only draws to its DynamicSprite, and you have to draw that to the room:

IT WORKS!!!  ;-D  ;-D  ;-D  Now I can actually start experimenting!

Amazing. Thanks a million.
#84
Thanks, both of you. The issue I was having with working backwards from the demo is that there is so much there that I don't know what is needed.

All I want is to create a mode7 ground object(?) that I can move across in one direction at several different (controllable) speeds, and to be able to track the mode7 camera coordinates so that I can teleport the camera back to the start when the camera reaches a certain point, and then change the ground texture. I don't need the boat or the sky or the 360 degree movement or even keyboard control.

This feels like it should be doable with the module but I don't know where to start with the whole demo in place.
#85
@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?
#86
@Creamy no rush, mostly I was just bumping the thread up to try to interest more people :)
#87
Less than 2 weeks left!  :)  Anyone else thinking about making an entry?
#88
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?
#89
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. :)
#90
Played both and voted!
#91
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).
#92
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.
#93
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.

#94
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.  :)
#95
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."  :)


#96
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.
#97
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
#98
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.
#99
@heltenjon I couldn't ask for a better or more thoughtful review. Thanks so much for playing and sharing your response. :)
#100
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-)
SMF spam blocked by CleanTalk