Screensaver preview mode

Community Forums/Showcase/Screensaver preview mode

Red(Posted 2004) [#1]
Try [a http://www.blitzcoder.com/cgi-bin/showcase/showcase_download.pl?id=eddy__blitzmaniac04232004060202&fileurl=http://www.3dgametool.com/Eddy/SaverPreviewTest.zip]this screensaver[/a]

More infos...




Grisu(Posted 2004) [#2]
I'm using w2k and i see a normal BlitzWindow inside the preview box (includes bar and exit button)!
Plus I can move it around with my mouse.


Red(Posted 2004) [#3]
[saver updated]

v2.1
- bug fixed: win2K window preview position
- bug fixed: restore mouse position


cermit(Posted 2004) [#4]
Very nice! Maybe the colors could change a little too, from blue in the "outer space" and red in the "black hole" to yellow "outer space" and green in the "black hole" etc :)

Edit:

Hahahaha, nevermind :D


jhocking(Posted 2004) [#5]
Cool! Can you share the code, or at least a stripped down version without the graphics, so that others can learn how to make screensavers with Blitz3D? I'd certainly love to make some screensavers.


Red(Posted 2004) [#6]
[saver updated]

v2.2
- bug fixed: detect CTRL ALT


eBusiness(Posted 2004) [#7]
Are you going to share the userlib with us?


jhocking(Posted 2004) [#8]
Please?


23v(Posted 2004) [#9]
pretty please :)


jfk EO-11110(Posted 2004) [#10]
jhocking - it's easy to make a screensaver. the only thing that is not easy it to get it working in the preview window. personally I think this is not very important, because there is a "test" button anyway.

Also - as far as I see Ed is using a hack that is positioning a borderless window (maybe using blitzsys.dll) on the preview canvas. I's nice, but maybe not fully secure, you never know if it works with upcoming OS Versions etc.


Dirk Krause(Posted 2004) [#11]
Doesn't work here. When I try to configure, it enters the screensaver immediately. My OS is Windows XP.

Regards,
Dirk


jhocking(Posted 2004) [#12]
@jfk: Really? So how exactly does one go about it? Sorry for the newbie question but I've never really tried, or even thought about it before.


Dirk Krause(Posted 2004) [#13]
Check the code archives at misc and look for screensaver.

Regards,
Dirk


Red(Posted 2004) [#14]
Yes, there's a screensaver bare bones.


jhocking(Posted 2004) [#15]
Well I'll be damned, I never noticed that before. Now to make my own screensavers...

ADDITION: Boy, do I feel stupid. Looking at the code archives example, I see that it's pretty trivial to create a screensaver. Just have the loop exit if the mouse moves or is clicked or any keys are hit, and rename the compiled exe to whatever.scr
Live and learn...


jfk EO-11110(Posted 2004) [#16]
there are several problems with screensavers. First you have to catch the commandline. when it starts with /s or /S (plus a number) then you may run the screensaver as usual. But when it starts with /c then you might run a configuration menu. WHen it start's with /p then you might end the prog immediately since it's a call for a preview window.

Second: External Media can be a problem since the Screensaver THINKS it was started in some other folder, such as a temp folder or whatever, but not necessarily the folder where the screensaver is located. Therefore CurrentDir() will return a wrong path! Although you don't want to store a lot of textures and meshes in your system folder, and you might use molebox to smash everthing into one handy file, the Media Data still won't be found and the Prog ends with a runtime error. So the only solution that I know is to say

ChangeDir SystemProperty("systemdir")

before you try to access any files with relative paths. Of course then it requires to be located inside the system directory, where all screensavers reside.


po(Posted 2004) [#17]
Who needs code to exit the program when the screensaver is finished? Not me! I just change all of my games to screen savers, so it's a very addictive screen saver that is basically a game running at a certain time. :)


jfk EO-11110(Posted 2004) [#18]
Indeed, po. You even can add a function that says "You cannot exit this screensaver unless you have shot 200 badies!" or something :)

Then again a typical exit contidion is checked easily:
If abs(mouseXspeed()) > 5 or abs(mouseYspeed())>5 then end

BTW. clickteams "Installmaker" offers a nice screensaver feature. It will let the user install a screensaver automaticly right into the system directory and set it as the active screensaver.