Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
CHALLANGE ! Dangerous Maze
#1
I finished the game. I have included many elements that I have not used before. For example, shading. This has slowed down games a lot so far, so I used to create separate textures for different distances. Here, however, the translucent shadow is drawn over the texture.

Lots of physics, interactions between objects, subtle movements. (not piecemeal, but transitional)

The best innovation is the automatic FPS setting. In the past, I usually set the image refresh rate to 20-25-30 so that it would run well even on weaker computers. It is noticeable and can be confusing. Here, however, I used it to adapt the image update to the speed of the machine. On a faster machine, it can go up to 60-100 FPS, which makes the animation very soft and fluid.

I cover this so that even those who don't play 3D games can understand it. Let's say I want to move a point from one side of the screen to the other. There is strictly 1 minute available for this. What should be its velocity vector? It depends on how wide the window is, and it also depends on how many times I want to interrupt the operation. The more times we interrupt, the more we see beautiful animation. If we break it a few times, it will be lumpy.
The automatic fps adjuster continuously monitors whether interruptions have been completed at the current FPS during a specified measurement time. If not, it means the machine is slow, so at that fps the whole game will stutter and become unenjoyable, so set it lower. On the other hand, if our computer is fast, we will perceive a wonderful display. All of this unnoticed, because in the game the speeds are constantly set to this. So it makes the most of the computer's performance (it tries not to leave any 'rest time'), and in return very nice animation takes place.

I would like a challenge. I divided the CHALLENGE into 12 tracks! Completing one is more difficult and exciting. I would like you to try it, and if everyone succeeds in posting the puzzle picture!

The game contains 2 pieces of BAS! One is in dm_start and the other is in the need/game_exe folder!
download:

https://qb64phoenix.com/forum/showthread.php?tid=686
corrections:
in principle, it also runs on Linux, it uses the appropriate per-signal

advices:
if possible, no windows or browsers should be running, so you can enjoy the game at the highest fps
the bigger the water, the slower you walk in it. if you jump, run away, you go faster
if the water is already overflowing, you can get air by jumping

Reply
#2
Thank you for this and keep up the good work!
Reply
#3
Thanks for sharing! I'm a Linux user, so unfortunately I wasn't able to run it. But It appears you put a lot work into it. Great Job!
Reply
#4
Thanks Mnrvovrfc and Justsomeguy!

Why doesn't it run under linux? What error is it giving? If I know, I'll fix it, I want everyone to be able to play with it!
Reply
#5
My apologies, my comment wasn't very helpful. It appears to have trouble with the slashes in the filename strings.


[Image: error.png]

I'm able to get it to work if I change the direction of the slashes.

Code: (Select All)
hf = _LOADFONT("need/textures/prototype.ttf", 70)
After that I get...


[Image: error2.png]

I've isolated that to ...

Code: (Select All)
_SOURCE uni_bord
 
Which is set by ...

Code: (Select All)
uni_bord = _LOADIMAGE("need\menu\bord\uni_bord.jpg", 32)
Switch the slashes and I get further.

In conclusion Linux uses forward slashes and Windows it is backslashes.

Great work though! Keep it up! I look forward to seeing it run in Linux.
Reply
#6
[quote pid="21710" dateline="1701712054"]

[/quote]Thanks for the reply ! Indeed! this is what a fellow forum member wrote to me recently. I'm looking, but I can't find the easiest way to make the program recognize whether it's running Windows or Linux? because then I will solve the problem internally.
Reply
#7
(12-04-2023, 05:47 PM)justsomeguy Wrote: My apologies, my comment wasn't very helpful. It appears to have trouble with the slashes in the filename strings.


[Image: error.png]

I'm able to get it to work if I change the direction of the slashes.

Code: (Select All)
hf = _LOADFONT("need/textures/prototype.ttf", 70)
After that I get...


[Image: error2.png]

I've isolated that to ...

Code: (Select All)
_SOURCE uni_bord
 
Which is set by ...

Code: (Select All)
uni_bord = _LOADIMAGE("need\menu\bord\uni_bord.jpg", 32)
Switch the slashes and I get further.

In conclusion Linux uses forward slashes and Windows it is backslashes.

Great work though! Keep it up! I look forward to seeing it run in Linux.
QB64 is supposed to handle the slashes underneath when running on various operating systems, or so I thought.
There are two ways to write error-free programs; only the third one works.
QB64 Tutorial
Reply
#8
Thanks for the reply ! Indeed! this is what a fellow forum member wrote to me recently. I'm looking, but I can't find the easiest way to make the program recognize whether it's running Windows or Linux? because then I will solve the problem internally.
Reply
#9
(12-04-2023, 06:14 PM)MasterGy Wrote: Thanks for the reply ! Indeed! this is what a fellow forum member wrote to me recently. I'm looking, but I can't find the easiest way to make the program recognize whether it's running Windows or Linux? because then I will solve the problem internally.

Use _OS$

https://qb64phoenix.com/qb64wiki/index.php/OS$

Oops, sorry, use $IF, _OS$ is for something else

https://qb64phoenix.com/qb64wiki/index.php/$IF
There are two ways to write error-free programs; only the third one works.
QB64 Tutorial
Reply
#10
You could try this. It basically switches the slashes based on OS.

Code: (Select All)
FUNCTION osFix$ (in AS STRING)
  DIM AS LONG iter
  DIM AS STRING char, fixed
  fixed = in
  FOR iter = 1 TO LEN(in)
    char = MID$(in, iter, 1)
    IF INSTR(, _OS$, "[WINDOWS]") THEN
      IF char = "/" THEN
        MID$(fixed, iter) = "\"
      END IF
    ELSE
      IF INSTR(, _OS$, "[LINUX]") OR INSTR(, _OS$, "[MACOSX]") THEN
        IF char = "\" THEN
          MID$(fixed, iter) = "/"
        END IF
      END IF
    END IF
  NEXT
  osFix = fixed
END FUNCTION

Just tack the function at the bottom somewhere. And add the osFix function where files are being interacted with.

Code: (Select All)
uni_bord = _LOADIMAGE(osFix$("need\menu\bord\uni_bord.jpg"), 32)

I haven't thoroughly tested this but, it worked on my system.
Reply




Users browsing this thread: 1 Guest(s)