Neobook
Transfunctioner Multimedia player
What is the Transfunctioner
The Transfunctioner is a multi functional video, music and picture player.
Integrated Components :
Video playback support for all common video file types including FLV files.
Music player that supports all standard music file types.
Image or slideshow player that supports all standard image file types.
Key Features
Video playback support for all common video file types including FLV files.
Music player that supports all standard music file types.
Image or slideshow player that supports all standard image file types.
- Multiple skin selection with skin templates for user customization.
- Intuitive cool user interface.
- Transfunctioner checks for new releases automatically and will alert you.
- Video preview and full screen playback mode with mini player.
- Playback of www streaming FLV files.
- Music play list or queue creation.
- Playback in reverse, forward and random playback order.
- Song datasheet readout.
- Image viewer high precision sampling in preview mode.
- Image viewer preview and full screen playback mode with mini player.
- Image viewer automatic slide show delay.
- Interactive multimedia CD/DVD based applications
- Tailor made marketing / sales and training products
Transfunctioner is currently a Beta release.
Please try Transfunctioner out and send us some constructive feedback.
Countdown - an example countdown clock made with Neobook
This program is an example of how to create a professional looking countdown clock in Neobook. This publication took about 6 hours to create excluding documentation and sound effect editing.
There are a few tricks and ideas used in this publication that may be of use like scrolling text and text to speech. Break it up and use it as you wish.
NOTE : The included font, sound effects and graphics are copyrighted and are not to be distributed or sold.
Features:
- The Countdown example does the following :
- Initial message readout using scrolling text/sound effect & voice if Matlib plugin installed.
- Fades the display text.
- Fades in the Countdown text.
- Waits for the user to input a count down time in Hours minutes and seconds and checks input.
- Sets the start time and calculates the end time based on the countdown time.
- Starts the countdown in a big green digital font (included).
- Announces the remaining seconds at 10,1 minute and 10-0 sec intervals using text to speech (requires you install the Matlib plugin).
- Once the countdown has completed the foreground image fades and the underlying browser loads the NASA TV website (or any website you wish to enter).
- Abort button resets the clock by flipping back through the digits to zero.
Paddle game demo - a simple paddle game produced with Neobook (no plugins)
This demo shows one method of using a moving animated file as the 'bouncing' object and the trackbar object as the paddle.
Trackbar as a paddle
The track bar has one very useful feature it generates [x] value changing coordinates. The tricky bit is calculating collision with this object given the relative positions of objects and the slider thumb size calculation. To detect collision with this object you continuously need 2 values the min thumb and max thumb value.
Calculating collision
In this case the slider thumb object is 82 pixels wide and so when x = 0 the slider must register '0' as well. Conversely when the slider reaches the pubwidth the slider must register the max value set in this object which in this case is the pubwidth. As the thumb approaches min x the left edge becomes the value for the thumb [tb1] so you have to switch the value around to prevent getting a sub zero value for the thumb.
If "[TB1]" "<=" "82"
Setvar "[minTB]" "[TB1]"
Setvar "[maxTB]" "[minTB]+82"
Else
Math "[TB1]-82" "0" "[minTB]"
Setvar "[maxTB]" "[TB1]"
Endif
So the min and max TB (thumb) values are calculated like this using the 'value changing' tab on the trackbar. These values are important since they are the used to calculate the collision with the paddle.
Moving the object The only way to move an animated object over a graphic without generating graphic artifacts is by using a refreshobject instruction each increment in x and y as the object moves across the background. This however slows things down quite a bit. So as a cheat I used a very dark background and an ocillating object which partly clears some artifacts as it moves. Its pretty dark so you can't really see the errors. And one more star isn't going to get noticed unless its falling and then you can make a wish.
The movement and randomization process is done as follows :
1) Get the width and height of the pub - these become the min x value and max X values that the object [p1] (spacecraft) can be moved to.
2) Check the height of the slider and allow a bit of extra for good measure.
3) Set the x and y values of [p1] to variables
4) Start a loop incrementing y so the movement down is a constant for every change in horizontal movement.
5) Create two random numbers one positive for moving the object right and one negative for moving the object left. These numbers are needed once the object exceeds the x limits min x or max x. You obviously want the object to stay on the screen.
6) The angle of deflection [LMR] or rather the increase or decrease in horizontal movement is created by either adding or subtracting a value from [p1]'s existing x value. I used [w] for width and created 8 values (4 positive) +1+2+3+4 (4 negative) -1-2-3-4. These values were used to adjust the distance moved across the screen on each loop increment or increase in vertical movement. This means that each loop increment object [p1] will move 1 down (y+1) and across by a factor of one of 4 values depending on whether the object has hit the max or min x and is moving left to right or visa versa. This gives the semblance of randomized movement - wall deflection. The illusion is further improved by the shape of the space craft and its oscilation.
7) The actual collision is checked each loop increment by checking if the object has moved to the height of the trackbar (plus a bit extra) and if [p1]'s X value [w] is >= the min value of the thumb [minTB] and <= the max value of the thumb [maxTB]. If this condition is true then send the object straight back up the screen.
8) If this condition is false then basically play some animation and end of game.
I'm sure with some playing around you could come up with a better version of this process and add some bells and whistles like some objects that [p1] hits on the way down. A whole new level of complexity. Anyway hope this was useful. You are free to use this in any form you like as long as you give me a credit in your readme.