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.


Messages - Darmakwolf

Pages: [1] 2 3 ... 24
1
GLBasic - en / Re: Windows - Universal App?
« on: 2021-Jun-23 »
Gernot - any progress on this? A UWP option would be amazing!

2
In case anyone was following this thread for updates -

https://www.glbasic.com/forum/index.php?topic=11502.0

it was in regards to RFD, my Super Mario Bros. 3 engine for GLBasic

3
Thank you all! My code style has become a lot more... readable, if you ever looked at what I posted before. I think my time with C# set me straight.

4
I'll likely post my updates and latest version(s) on my self-hosted website:

http://dordo.tplinkdns.com/RFDash/

just because it's easier to share with my friends that way. I made it in... Windows 95 + Dream Weaver 3.0.  :O

5
Darmakwolf for information, do not compile with the steam version:

Initializing WinAmp ...
WinAmp INITIALIZED. *** Unhandled exception ***
    EXCEPTION_ACCESS_VIOLATION

Yeah I mentioned this to Kitty - I noticed it too. He said he'd need the source to see why. Well now it's available  :D
I am making this in GLBasic IDE Version: 15.238

Maybe there's some syntax difference when it comes to DLL calls in the Steam version?

6
Hello friends! Today, I am releasing the source code and compiled binary for an engine I am working on programming casually in my free time.

It's called RFDash (Real Furry Dash) - I am making it for some friends. (For some disclosure, I go by Dart Redtail Fox on many other forums, and I have a character named Dart / Dordo that I sometimes put into games, if that makes sense.)

Features:
Full Super Mario Bros. 3 style overworld, level, and progression system
Map editor that can handle monsters, interactive objects, teleport doors and pipes etc
TWO PLAYER experience: take turns when one player dies. One player is also of course possible.
TWIST ON THE ORIGINAL: The player who is NOT playing (watching,) may CONTROL ENEMIES by pressing start and selecting an enemy on screen to spice up multiplayer!
Plays .SPC (Super Nintendo chiptune format) natively! Levels can use authentic 16-bit music directly (thanks to winamp input/output dlls)
Dynamic mobs and maps: no lag due to "too much" in a level - the level is streamlined as you move.
Controller config system - define buttons per-controller! Button preferences are saved and loaded automatically.
Game supports both game controllers and/or keyboard+mouse, even simultaneously.
Tons of cool tiles and objects to choose from! Make maddeningly confusing levels, or simple fun ones!
Two characters exist right now - Dordo (fox) and Yoshi (... yoshi)
The characters aren't going to necessarily be "mario" themed, as this is a game I am making for friends. One simply wanted a yellow Yoshi character playable.
I can't list all of the features here because there just isn't time in the day I don't think.

Includes CLEAN source code with indenting, descriptions, and concise functions! Feel free to use part or all of this to design your own game.


Tips:

When the game begins, it asks you to press a button. You can use a controller button or keyboard button, and walk through the on-screen process to define keys. At the main menu, a different device can be pressed to initiate co-op (2-player.) Once a button preference has been saved, it will be loaded automatically the next time that device is detected.

Anywhere:
Press F1 through F7 to change the game's window size

In the LEVEL editor:

Arrow keys scroll around the map.
hold TAB to bring up a tile list. Click one, and release TAB. You may now paint that tile by clicking and dragging.
SCROLL WHEEL will change the tile blue or red. Blue means "pass through," red means "solid block."
Right click any tile to "copy" it. Then left click to paint with the copied tile. Note: pass-through is copied as well.
"1" and "2" on the keyboard switch between layer 1 and 2. Layer 1 is drawn BEHIND the character. Layer 2 is drawn IN FRONT OF the character.
"3" switches to the monster layer. Scroll wheel selects a preview monster - left click places it. Hold DEL key to delete a monster you're hovering over.
"S" sets the start position to the tile under the cursor. Do not set the "S" directly one block underneath a solid tile - the character will have nowhere to move!
"D" sets a "DOOR" tile. It will then ask you to select a "other end" of the door by clicking another block. The door tile can be entered (either end) by the player pressing "up" in game. Note: it will also ask you to select a new background tile and music file. You may define this, or press cancel to keep it as-is.
"T" sets a "TELEPORT" tile. This is the same as "DOOR" but with no "press up" requirement. Put this inside pipes to create pipe warps. Note that this should be on the BOTTOM RIGHT side of a pipe in order to make the piping effect look right.

Pipes: Pipes will automatically allow the player to enter them by pressing a button toward the pipe while directly at the end of it. (For instance, a pipe to the left of the player requires the player to walk up to it and press left, etc.) Pipes MUST BE ON LAYER 2 in order to be a "enterable pipe." There is no exception. Layer 1 pipes do nothing. The player will move through solid tiles while "piping," and will stop doing so when it has reached "pass-thru" tiles sufficient in size for the player to pop out of.
If you place a plant in the pipe, always place veritcal plants on the left side inside of the pipe. For horizontal plants, it's the top side of the pipe inside. Experiment to get it right!

Pressing ESC in the editor will save and exit right away.
Note that while in the editor, the mouse is locked to the window. This was required to make the scrollwheel work. Press F10 to release it, and F10 to recapture it if need be.

WORLD EDITOR:

While editing a world, place tiles and level blocks anywhere you want, there's no real requirement. Hover over a tile and press L to link a level to it. This will make it require the player to beat it in order to move over it. See the included demo world and levels for an example.

Gameplay:

There is only "run" and "jump" and "pause" in this game, making it simple to start playing. Anyone who has played Mario knows right what to do. The one twist is, the level ends by going down a flagpole, much like Mario 1, though this game aims to mimic mostly mario 3.

You can jump on turtles, grab their shells by holding "run," and throw them to break blocks or kill enemies.
Jump on most enemy's heads to kill them etc.
Water also works, one can swim by hopping in.

One might find Dordo to play a bit more like Mario himself.
Yoshi is much "floaty-er" but can do a hover jump and goes quite far.

DEBUG:
Enter key destroys levels in gameplay overworld. This is in case a level is way too hard and you just want to pulverize it!
Holding tilde key in-level will show debug info. While this is open, pressing "+" on the numpad will cheat and give you some extra health
TAB will open up the HUD until you press it again. The HUD opens automatically when getting a coin or life, though.

I'm sure there's a ton I'm forgetting. Ask me any questions you come up with! I think this is probably the best "mario simulation" I've programmed yet. There are some bugs, but they're mostly minor and being worked on. If you find something please let me know.

7
GLBasic - en / Windows - Universal App?
« on: 2021-Feb-22 »
Just a thought.

I have a Microsoft Xbox Series X console. I realized it has a Windows subsystem, and literally runs "Universal" Windows apps - and can be submitted to the store for sale. Retroarch was ported to Windows Universal app, and is available (can compile in Visual Studio / drop the package onto the xbox and run it the same as in Windows,)

Could GLBasic easily support the universal Windows platform? It does allow OpenGL, and presumably SDL because Retroarch is able to use both of those things. Or is this less trivial than I'm thinking?

Gernot?

8
I hadn't touched GLBasic in a relatively long time. Then some friends tossed a game idea my way.
It's completely mad. I have put a month's worth of work into a platformer, and it's a MASSIVE amount of code. I won't release any details about it other than it's probably my magnum opus of a platformer, probably complexity-par with the untouchable Super Mario Bros. 3, with ridiculous ... additions. I'll release the full game + code as soon as it's ready. It's going to be fun  =D

9
Fixed in next update.

I don't have the Steam version, though. Will this update be for us who paid for the original like myself? I can't afford the Steam release.
And will the update be a long time from now?

Just curious.

10
Anyone - Gernot? Seems like this is basically broken.

11
I think you can use Win32 functions declaring with the IMPORT command and calling.

Code: (glbasic) [Select]
// If the hCursor is NULL, the cursor is removed from the screen.
IMPORT "C" void* __stdcall SetCursor(bool* hCursor)

// hide windows cursor
SetCursor(0)

Problem solved! Thanks to your help with IMPORT. I found that SetCursor only hides the mouse *temporarily* every time it's called. However,
I found:

IMPORT "C" void* __stdcall ShowCursor(int bShow)

and you simply call it with ShowCursor(0)


Set SYSTEMPOINTER TRUE
This produces the desired behavior! The system mouse is hidden while inside the glbasic window, and shown while outside of it. I can draw my own cursor on-screen with drawsprite/anim, and it tracks properly.

woohoo - thank you!

Now if I could just get MOUSEAXIS(2) working, per my other post -_-

12
GLBasic - en / MouseAxis is still problematic
« on: 2021-Jan-25 »
Hey all. MouseAxis(2) for the *scrollwheel* seems to read properly if SYSTEMPOINTER is FALSE, and not at all if SYSTEMPOINTER is TRUE.
I did a quick search through here and some people are saying it updates tons of times between SHOWSCREEN calls. If this is the case, how the heck do we fire an event on mouse-scroll if this is so hard to catch? Please help. No issues at all if the mouse is locked to the screen with SYSTEMPOINTER FALSE - but I don't want that.

 :help:

** EDIT:

I found something weird out! Changing the app to "Run In Compatibility Mode" for "Windows XP SP3" actually fixes this issue... Gernot?  :giveup:

13
Try Setcursor(0):
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setcursor
It might work with the IMPORT command.

in addition, Gernot, I found the following:

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setsystemcursor

I think this is more what we want? I think SetCursor is momentary, per some googling, not "while in app window." Not sure how to experiment with it. I just want a custom drawn cursor in the game without being locked to a screen and no windows mouse covering it up.

14
Try Setcursor(0):
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setcursor
It might work with the IMPORT command.

Gernot, can you help me with the glbasic wrapper to call this? Having trouble with that.

15
If the Pointer is shown with SYSTEMPOINTER FALSE it's sounds like a bug to me...
So i move the topic to bugreport! :)


Gah.. sorry. No. Not the issue.

SYSTEMPOINTER TRUE: I can use the mouse and it's not locked to a window. Fine.
SYSTEMPOINTER FALSE: I am locked to the window and can't move the mouse outside of it.

MY PROBLEM: I want to use a game-drawn mouse. I am either stuck with the system (windows) mouse drawn OVER my custom cursor if I want mouse freedom to leave the game window, or I am stuck with being able to use a custom drawn cursor rendered by the game BUT LOCKED TO THE GAME WINDOW.

WHY for the love of god can I not draw my own cursor and have the freedom to move the mouse OUTSIDE THE GAME WINDOW without the Windows system cursor being drawn over it. This isn't a BUG - it's a missing feature.

All I am asking is some help wrapping user32.dll to hide the mouse cursor so I can do SYSTEMPOINTER TRUE, draw my custom cursor, and hide the windows cursor. That's it!

Gernot????




Pages: [1] 2 3 ... 24