Thomas Perl [Mon, 26 Jan 2009 23:04:45 +0000 (27 00:04 +0100)]
Only redraw game score strings when necessary
Do not redraw the score strings every time the
render() method is called, but only when the text
really changes (using a flag in the GameState).
Thomas Perl [Mon, 26 Jan 2009 22:41:23 +0000 (26 23:41 +0100)]
Remove is_fading() from the graphics module
Only used in two places, now refactored.
Thomas Perl [Wed, 21 Jan 2009 22:19:59 +0000 (21 23:19 +0100)]
Updated pygame test code
Thomas Perl [Mon, 19 Jan 2009 18:33:20 +0000 (19 19:33 +0100)]
Add "--benchmark/-b" command line switch
When starting tennix with "--benchmark" or "-b", the
game will start in "AI vs. AI" mode for a limited
number of seconds. This can be used for benchmarking
different optimizations.
Thomas Perl [Thu, 15 Jan 2009 11:10:45 +0000 (15 12:10 +0100)]
Make sure graphics and sound data is really freed
After loading of graphics and sound, make sure to
unload the allocated resources, because RWops does
not seem to free the resources, even if told so.
Thomas Perl [Fri, 9 Jan 2009 14:01:13 +0000 (9 15:01 +0100)]
Better loading progress bar (uses button drawing)
Thomas Perl [Fri, 9 Jan 2009 14:00:40 +0000 (9 15:00 +0100)]
Fix referee talk image usage; support more ball states
Thomas Perl [Thu, 8 Jan 2009 18:44:57 +0000 (8 19:44 +0100)]
Loading progress bar, add missing header files, Maemo
Add a progress bar while loading resources (graphics
and sound) from the datafile.
Add some missing "#include" lines (scratchbox complained).
Do not make the "hovering" sound on Maemo (touchscreen!)
Thomas Perl [Thu, 8 Jan 2009 18:32:47 +0000 (8 19:32 +0100)]
Cache width and xposition in get_font_metrics
To save some cycles, do not re-calculate the font
metrics every time a string is drawn, but save the
width and xposition permanently after the first
calculation to speed up font drawing.
Thomas Perl [Wed, 7 Jan 2009 14:12:43 +0000 (7 15:12 +0100)]
Use Tennix Archive Format instead in-executable data
This makes the binary smaller, and we can free the
raw game data once the resources have been loaded.
Also, it makes recompiling easier. The data file is
currently named "tennix.tnx" and will be auto-built.
Thomas Perl [Wed, 7 Jan 2009 13:09:38 +0000 (7 14:09 +0100)]
Voice support, experimental wind, extended referee
Add support for playing back voice tracks if voice
files are available (have to enable with "DELUXE=1").
Includes experimental support for in-game wind (you
can modify its direction with "1" and "2").
Add support for the extended referee mode if the
extended referee resources are available (DELUXE=1).
Thomas Perl [Fri, 28 Nov 2008 14:00:46 +0000 (28 15:00 +0100)]
TODO items after basic user experience test
Thomas Perl [Fri, 28 Nov 2008 13:02:32 +0000 (28 14:02 +0100)]
Add suggestions to TODO list
Thomas Perl [Wed, 29 Oct 2008 15:29:38 +0000 (29 16:29 +0100)]
Update TODO list with ideas (tennix.dat)
Thomas Perl [Sat, 25 Oct 2008 00:02:27 +0000 (25 02:02 +0200)]
Correct sounds (enable the racket/ground sounds)
Make sure that we are able to correctly shuffle between
the different racket sounds by fixing the calculation and
also making sure that the audience clapping stops after
the ball is served (range check instead of C macro).
Thomas Perl [Wed, 22 Oct 2008 21:10:44 +0000 (22 23:10 +0200)]
First cut of support for player selection in options
Now support all four combinations of AI/human matches.
Thomas Perl [Wed, 22 Oct 2008 20:27:51 +0000 (22 22:27 +0200)]
Add background sound for rain mode
Thomas Perl [Wed, 22 Oct 2008 20:11:04 +0000 (22 22:11 +0200)]
Make sure FPS limit in the main menu is always correct
Without this patch, after the gameloop has finished, we
won't have reset the FPS counter, so the FPS limiter
will be practically disabled, depending on how long you
played.
With this patch, the FPS limit counter is reset after
the gameloop has finished, so we always have a correct
way of calculating FPS. This can probably be improved.
Thomas Perl [Wed, 22 Oct 2008 20:06:49 +0000 (22 22:06 +0200)]
Fix a bug with negative offsets in fill_image_offset()
When negative values for offset_x or offset_y have been
passed to fill_image_offset(), the result wasn't correct.
Fix this by translating negative offsets to positive values.
Thomas Perl [Wed, 22 Oct 2008 19:43:04 +0000 (22 21:43 +0200)]
Support for "night" mode (floodlights) added + source XCF
Add support for playing at night, via a floodlight/spotlight
overlay. Also works fine with fog and rain modes :)
Thomas Perl [Wed, 22 Oct 2008 19:08:23 +0000 (22 21:08 +0200)]
More in-game weather (fog) + fill_image_offset() function
Add support for having in-game fog clouds to make gameplay
harder. This needed an addition of the offset to the fill_image
function, so we have this now too, allowing arbitrary offsets
to shift the repeated image on the start for a moving effect.
Thomas Perl [Wed, 22 Oct 2008 18:10:30 +0000 (22 20:10 +0200)]
First support for in-game weather (rainfall)
Use the "r" key to increase the amount of rainfall during the game.
Thomas Perl [Wed, 22 Oct 2008 17:59:05 +0000 (22 19:59 +0200)]
Add state machine for main menu + options menu
State machine that controls navigating through the menus.
Thomas Perl [Wed, 22 Oct 2008 17:54:57 +0000 (22 19:54 +0200)]
Ideas for adding in-game weather effects/mods
Thomas Perl [Wed, 22 Oct 2008 15:03:47 +0000 (22 17:03 +0200)]
FPS Limiting for the main menu display code
Thomas Perl [Wed, 22 Oct 2008 14:56:00 +0000 (22 16:56 +0200)]
Remove "Options" button and rename to "Resume Game"
This is needed due to a re-structuring of the navigation :)
Thomas Perl [Wed, 22 Oct 2008 14:49:31 +0000 (22 16:49 +0200)]
Move the GameState object out of the game loop, for resuming
Rename game() to gameloop() and make the GameState struct a
parameter, so we can do things like resume games that have
not yet finished, etc..
Thomas Perl [Wed, 22 Oct 2008 13:57:19 +0000 (22 15:57 +0200)]
More menu clean-ups and simplifications
Thomas Perl [Wed, 22 Oct 2008 13:02:33 +0000 (22 15:02 +0200)]
Optimize screen updates (update_rect); simplify menu code
Thomas Perl [Wed, 22 Oct 2008 11:19:49 +0000 (22 13:19 +0200)]
Update info about wav files on Maemo (README)
Thomas Perl [Sun, 19 Oct 2008 11:09:55 +0000 (19 13:09 +0200)]
Add new, sliding main menu system
Make the menu system simpler and nicer, based on the
draft of the new Tennix menu found in the doc/ subdir.
Thomas Perl [Wed, 23 Jul 2008 14:34:44 +0000 (23 16:34 +0200)]
Add TODO items after discussion with PG Pauli
Add several ideas for improvements to the TODO list.
Thomas Perl [Thu, 27 Mar 2008 21:09:07 +0000 (27 22:09 +0100)]
Maemo-related tweaks and keyboard mappings
Less elektrons, no mouse cursor in main menu,
no multiplayer menu item (not chooseable, anyway).
Also: Add mappings for all hardware keys on the
Nokia N800 Internet Tablet (Fullscreen, increase and
decrease, the "menu" button and the dpad "enter").
Note in README that we now support Maemo and add a
README.Maemo file that contains information on how
to compile a Tennix package for Maemo.
Thomas Perl [Sat, 22 Mar 2008 09:28:47 +0000 (22 10:28 +0100)]
Tennix 0.6.1
Update makefile and manpage with new version.
Thomas Perl [Sat, 22 Mar 2008 09:26:29 +0000 (22 10:26 +0100)]
Fix directory creation in makefile, update e-mail address
Fix creation of the PREFIX/share/icons/hicolor/scalable/apps
directory, so Debian pbuilder won't complain about missing
directories. Thanks to Andrea Colangelo for pointing that out.
Also, update Andrea Colangelo's e-mail address in the manpage.
Thomas Perl [Thu, 20 Mar 2008 13:28:55 +0000 (20 14:28 +0100)]
Tennix 0.6.0 and documentation updates
Update README and manpage to reflect changes for
the new version. Update copyright notices (add 2008).
Push version number in makefile.
Thomas Perl [Thu, 20 Mar 2008 13:19:00 +0000 (20 14:19 +0100)]
Fix mouse control, add mouse rectangle, enable mouse by default
Fix problems with mouse control (lock the mouse if
we are using the keyboard). This makes the mouse
control work nicely together with the keyboard control,
so we enable mouse control by default now.
Draw a mouse rectangle on the screen so the user knows
what's going on when using mouse control. This should
make playing Tennix a bit easier with the mouse, because
the racket is always sloppy (you can move the mouse faster
than you can move the racket.
Thomas Perl [Wed, 12 Mar 2008 15:13:26 +0000 (12 16:13 +0100)]
Generate ChangeLog in makefile; add "release" target
Generate the ChangeLog file in the makefile via "git log";
add a "release" makefile target that creates a tarball.
Thomas Perl [Tue, 11 Mar 2008 22:30:12 +0000 (11 23:30 +0100)]
Add high resolution SVG icon (+install on Unix)
Add a high resolution SVG icon that can be used when apps
want to display a really big icon for Tennix (i.e. Gnome Do).
Install the scalable SVG icon in $PREFIX/share/icons/hicolor.
Thomas Perl [Wed, 20 Feb 2008 10:07:17 +0000 (20 11:07 +0100)]
Apply patch from Enrico Zini to improve ball movement
From the mail:
if I understood correctly, the position of the ball is
updated, then the keyboard events are read, then the
screen is redisplayed. It should be instead: the screen
is redisplayed, then keyboard events are read and handled,
then the ball position is updated: that way the keyboard
event is connected with what is on the screen, which is
what the player would expect.
Thomas Perl [Thu, 7 Feb 2008 10:42:33 +0000 (7 11:42 +0100)]
Fix and improve mouse input, initialize players correctly
Improve mouse input to work alongside keyboard input
and change the way mouse input works (press and hold
to move the racket, release to swing the racket).
Initialize the "Player" structs in game.c correctly,
so we don't get compile warnings and so that our
variables for each player are initialized sanely.
Thomas Perl [Thu, 7 Feb 2008 10:10:24 +0000 (7 11:10 +0100)]
Smoothen player racket movement (accelerate)
Add an "acceleration" effect to the player racket
movement, so that keyboard control is a bit more
fine-grained and easier to use (hopefully).
Thanks To Enrico Zini <enricozini.org> for suggesting
this change and providing the feature request.
Thomas Perl [Thu, 31 Jan 2008 18:00:31 +0000 (31 19:00 +0100)]
Update TODO list for Maemo
Add some TODO items that are related to the
Maemo port of Tennix.
Thomas Perl [Thu, 24 Jan 2008 07:14:07 +0000 (24 08:14 +0100)]
Remove some development code from makefile
Remove the -g debug flag from the CFLAGS and make
the version 0.5.0 again (instead of 0.5.0+git).
Thomas Perl [Tue, 22 Jan 2008 22:22:12 +0000 (22 23:22 +0100)]
Add FPS limiting code; fix touchpad movement
Add code to limit rendering to 33 FPS (should make the
CPU a bit happier, after all); this can be disabled.
Fix touchpad movement to be more exact in input_human.
Remove the obsolete BALL_DEFAULT_SPEED define in game.h
Thomas Perl [Mon, 21 Jan 2008 16:02:28 +0000 (21 17:02 +0100)]
Faster graphics; touchscreen support
Make graphics more faster by only updating the
parts of the UI that have to be redrawn (this
could still be optimized, but works well so far).
Add support for mouse/touchscreen. The mouse and
touchscreen support will not be enabled in Desktop
builds but will be enabled for handheld devices
like the Nokia Internet Tablets.
Thomas Perl [Mon, 31 Dec 2007 13:06:42 +0000 (31 14:06 +0100)]
Updated TODO list (add ChangeLog on release)
Next time when we're releasing a new version
of Tennix, we should include a ChangeLog file.
Thomas Perl [Mon, 31 Dec 2007 12:56:27 +0000 (31 13:56 +0100)]
Add manpage from Andrea Colangelo
Add contributed Unix manual page from Andrea
Colangelo <warp10@libero.it> and install it
when installing Tennix on Unix-like systems.
Thomas Perl [Tue, 18 Dec 2007 23:13:15 +0000 (19 00:13 +0100)]
Tennix 0.5.0
Pushed version in makefile
Thomas Perl [Tue, 18 Dec 2007 10:08:39 +0000 (18 11:08 +0100)]
Added TODO list and new side menu draft
Added list of TODO items that has accumulated over
the last few weeks (photos, sounds and music).
Added new side menu that I've created yesterday
evening. It's still not finished, but a future Tennix
release should probably have its menu to look something
like this draft (tennix-side-menu.xcf).
Thomas Perl [Mon, 17 Dec 2007 22:34:38 +0000 (17 23:34 +0100)]
Merge version info into Mac OS X Tennix.app
Don't use default "1.0" version in the SDL App about dialog,
but replace it with the correct tennix version when building
the "Tennix.app" Mac OS X application.
Thomas Perl [Mon, 17 Dec 2007 18:46:18 +0000 (17 19:46 +0100)]
Support for BINARY_INSTALL_DIR, Makefile updates
After a suggestion by a package maintainer, the makefile
now supports the "BINARY_INSTALL_DIR" variable which can
be used to specify an alternative install dir for Unix-like
systems. This can be used to install the "tennix" binary in
/usr/games on Debian-based systems.
The makefile has been updated to more directly remove some
files in the clean target, so all temporary files get removed.
Thomas Perl [Sun, 16 Dec 2007 15:05:47 +0000 (16 16:05 +0100)]
Joystick support (via command line); better keyboard controls
Enable more keyboard controls for Player 1 (arrow keys, space,
left control) and enable the usage of a joystick when the user
specifies the name of the joystick as command line argument.
This even works with applesmc on Linux, so you can play and
control Tennix by tilting your Apple MacBook and pressing the
left control key, which is now mapped to Player 1 swing racket.
Thomas Perl [Thu, 22 Nov 2007 21:09:48 +0000 (22 22:09 +0100)]
Update Win32 startup dialog (icon)
Update the Win32 startup dialog (asking if the
user wants to start tennix in fullscreen mode)
and add an icon + the Tennix website URL.
Thomas Perl [Thu, 22 Nov 2007 21:53:49 +0000 (22 22:53 +0100)]
Sound rework, background music, image_id/sound_id
Rework the sound system to strip sound playing from the
game logic and move it into the "display"/"render" code.
Add free background music to menu from MelodyLoops.
Convert sound samples to OGG Vorbis to save space.
Sound panning (left, right) for the "racket hit" sound.
Use image_id/sound_id for the numeric identifier of
resources to make the headers a bit more understandable.
Thomas Perl [Wed, 21 Nov 2007 10:32:11 +0000 (21 11:32 +0100)]
Better option parsing/ignoring
For non-Windows systems, implement better command
line option parsing, so user will get notified on
stderr which command line arguments have been ignored.
Thomas Perl [Wed, 21 Nov 2007 09:21:07 +0000 (21 10:21 +0100)]
Win32 dialog box, icon and installer
Added a Win32-API dialog box that will let the user
select if she wants to run tennix in fullscreen or not.
Add a resource file for the dialog box layout and the
Win32-specific icon (our executable now has an icon!).
New .iss installer script (InnoSetup) that will compile
a standalone exe installer from the tennix binaries.
README.win32: Docs for Git, resource editing and Inno Setup
Thomas Perl [Wed, 14 Nov 2007 22:52:54 +0000 (14 23:52 +0100)]
Tennix 0.4.2
Pushed version in makefile
Thomas Perl [Wed, 14 Nov 2007 22:51:58 +0000 (14 23:51 +0100)]
Support for game pausing; clean-up n-gram predictor
Support for pausing a running game using the "p" key.
Clean up the n-gram predictor code by only adding print
statements when we're compiling a debug version of Tennix.
Thomas Perl [Sat, 13 Oct 2007 13:48:16 +0000 (13 15:48 +0200)]
Computer AI: History-based positioning
The computer AI now has a slightly better move
algorithm to "catch" the ball.
A simple ngram-based ball position predictor has
been added, so the computer AI can move based on
previous ball movements to have a better chance
of catching the ball.
Thomas Perl [Sun, 23 Sep 2007 21:23:37 +0000 (23 23:23 +0200)]
Tennix 0.4.1
Pushed version in makefile
Thomas Perl [Sun, 23 Sep 2007 21:21:03 +0000 (23 23:21 +0200)]
Help text scroller, font opacity, endgame controls
Do not process input events (human or AI) when the
GameState of the match has set the "is_over" flag.
When loading graphic resources, use black color key
for font images to support opacity-based blitting.
Add font_draw_string_alpha() to draw fonts w/ opacity
and add font_draw_string() macro (opacity=255).
Add a neat, opacity-based text scroller to the main
menu and provide input help text (keyboard controls).
Thomas Perl [Sat, 15 Sep 2007 13:01:38 +0000 (15 15:01 +0200)]
Court textures (grass, clay, hard) and clean-up
Re-work court graphic to support different court textures
and convert grass texture from old court + add new textures:
- Clay (red/orange-ish) and
- Hard (concrete-looking grey)
Don't call SDL_SetColorKey() for loaded images anymore, because
we're now using RGBA PNG files instead of "black-is-alpha" BMPs.
Removed introimage() function as it's not used anywhere.
Thomas Perl [Wed, 12 Sep 2007 22:55:26 +0000 (13 00:55 +0200)]
Tennis-like scoring with games/sets and endgame handling
First cut of support for real Tennis-like scoring, apart
from some exceptional scoring rules.
Endgame handling in in-game code by displaying endgame
message and not displaying gameplay graphics.
Thomas Perl [Wed, 12 Sep 2007 19:32:01 +0000 (12 21:32 +0200)]
Don't allow racket hit on "out"; non-permanent racket swing
Don't allow the player to hit the ball with the racket when
an "out" state has been reached. The ball will fly-by the
racket even with the racket swung at the time of impact.
Disallow keeping the "swing racket" button permanently
pressed, but add a lock to disallow re-swinging the rack when
the corresponding key has not been released yet.
Thomas Perl [Wed, 12 Sep 2007 14:18:48 +0000 (12 16:18 +0200)]
Fix problem with data2csrc on amd64 and another bug
Thomas Perl [Wed, 12 Sep 2007 11:13:19 +0000 (12 13:13 +0200)]
data2csrc determines variable names, shell compatibility
João Pinto pointed out that Tennix will not compile when
not using bash as /bin/sh, as the makefile in data/ will
complain about bad substitution.
This has been worked around by making data2csrc generating
the variable name on-the-fly if the variable name is not
passed as second command line argument.
Thomas Perl [Sun, 9 Sep 2007 20:10:22 +0000 (9 22:10 +0200)]
Tennix 0.4.0
Fixed makefile
Thomas Perl [Sun, 9 Sep 2007 19:32:23 +0000 (9 21:32 +0200)]
New and updated SVG artwork, referee, clean-up
Added updated SVG artwork by Thomas Perl, new game graphics
and removed some obsolete files in the data folder.
Make in-game ball rotation faster to fit better to
the new-style ball graphic.
Make right-mouse button act as color switcher in main
menu (currently this is just a visual gimmick..).
Thomas Perl [Sun, 9 Sep 2007 16:12:10 +0000 (9 18:12 +0200)]
Keep track of changed resource files in makefile
If graphics or sounds in the "data/" folder change,
let the main makefile update the .c source files in
"data/" to reflect the new state of the resource
files and as a result also rebuild the tennix binary.
Thomas Perl [Sat, 8 Sep 2007 17:26:33 +0000 (8 19:26 +0200)]
Add support for unix-style installation (to /usr/local)
Added support for the "install" makefile target and added
a "tennix.desktop" file for a Tennix menu entry/icon.
Thomas Perl [Thu, 6 Sep 2007 20:24:36 +0000 (6 22:24 +0200)]
Tennix 0.3.4
Removed ChangeLog and pushed version in makefile to 0.3.4
Thomas Perl [Wed, 5 Sep 2007 22:58:29 +0000 (6 00:58 +0200)]
Resources in binary support, button drawing functions
Added support for converting data files to c source, which
will then be included and compiled into the binary. This
makes Tennix run without the "data" folder, and the game
resources (sounds and data) cannot simply be edited for the
binary distribution.
Added first cut of button drawing routines which can be
useful for menu navigation later on. (including text)
Fix space character in Smallish font.
Thomas Perl [Wed, 5 Sep 2007 15:14:12 +0000 (5 17:14 +0200)]
Font improvements, faded lines, simplified menu+quitting
In-game scores are now displayed using the fond code, the
"score.png" graphic and show_digit() function got removed.
Add dkc2 font, and improve font and graphics code (image
width, image height, sprite width, simplified char search.
New draw_line_faded() method that draws a line with faded
colors, fixed old draw_line() code and make draw_line() a
macro that calls draw_line_faded().
Add support for quitting tennix by closing the tennix window.
Elektrons beatified, added faded line drawing. Move around
items in the menu, remove sound + racket animation.
Fade to black the menu when quitting.
Clean-up stuff in tennix.h.
Thomas Perl [Sun, 2 Sep 2007 15:00:40 +0000 (2 17:00 +0200)]
Smoothen animations, fix "release" target for Mac OS X
Fix animations to be more smooth in font_draw_string()
and rename to BUNGEE and PENDULUM (that's what they
look like, after all).
Make the "release-osx" target create a zipfile that is
named "tennix-x.y.z-macosx.zip" (added "-macosx").
Thomas Perl [Sat, 1 Sep 2007 17:26:29 +0000 (1 19:26 +0200)]
draw_line() function and pixel getting/setting
Added new function to directly draw a line to the screen,
and define macros: GET_PIXEL_DATA, GET_PIXEL_RGB, SET_PIXEL_RGB.
Thomas Perl [Fri, 31 Aug 2007 23:56:38 +0000 (1 01:56 +0200)]
Tennix 0.3.3: Dynamic Text Engine
This is Tennix 0.3.3, adding the first version of our dynamic
text engine, which enables us drawing animated bit-mapped fonts
to the screen. Currently used in menus and as gameplay status.
This also disables loading the custom icon (SDL_WM_SetIcon)
when Tennix is ran on Mac OS X, as Tennix on OS X already has a
beatiful icon and OS X doesn't display per-window icons.
Thomas Perl [Sat, 7 Jul 2007 13:51:26 +0000 (7 15:51 +0200)]
Tennix 0.3.2 and website transition
Bumped version to 0.3.2 and changed all website
URLs to http://icculus.org/tennix/, as this is the new
website of Tennix!. Also removed the "settings" menu
item from the menu until it will become active.
Thomas Perl [Thu, 28 Jun 2007 18:03:31 +0000 (28 20:03 +0200)]
Add "Playing Tennix" section in README
Added a Playing Tennix section in README to explain
keyboard controls for playing tennix in two-player mode.
Thomas Perl [Mon, 25 Jun 2007 20:03:28 +0000 (25 22:03 +0200)]
Support for ball service; AI improved; gameplay fading
Add support for doing serving the ball (using a stopped,
non-moving ball that the player has to hit to start the
game) and re-factor ball-resetting code into a seperate
function.
Improve AI player movement to make the game livelier :)
Fade between two scores and block input (both human and
AI input) while the scene is being faded to add a smooth
crossfade between scores. Don't wait for keypresses as
before.
Fade out audience sound when returning to main menu.
Thomas Perl [Sun, 17 Jun 2007 21:23:21 +0000 (17 23:23 +0200)]
Added application window icon setup code
Added a simple tennis ball (from the menu) as application
window icon and set this as the window icon in the graphics
initialization code.
Thomas Perl [Sun, 17 Jun 2007 15:26:43 +0000 (17 17:26 +0200)]
Move release information to makefile, update win32 target
Move release version information to makefile where it will
be used for release file naming and remove it from tennix.h,
so we have the release version information in one central
location for both code and release work.
Update the win32 target to create tennix-x.y.z-win32.zip.
Thomas Perl [Sun, 17 Jun 2007 14:30:55 +0000 (17 16:30 +0200)]
Tennix 0.3.1
Added ChangeLog file to keep track of Tennix' history, added
some documentation about how to format and generate the
changelog file, updated the README file and pushed version
string to 0.3.1 in tennix.h.
Thomas Perl [Sat, 16 Jun 2007 18:57:28 +0000 (16 20:57 +0200)]
Add fading effect for menu/game transitions
Add fading effect by utilizing alpha blending and an
additional screen buffer. This effect is used for the
menu->game and game->menu transitions currently.
Thomas Perl [Sat, 16 Jun 2007 13:57:14 +0000 (16 15:57 +0200)]
More elektron-based full screen menu bling bling
Added fullscreen elektron movements when not hovering
over a menu item with the elektrons zooming in to the
menu item when hovering. Also different colors and other
options for the single elektrons.
Removed the menu-highlight.png image, as we don't need
it anymore :)
Thomas Perl [Fri, 15 Jun 2007 18:21:29 +0000 (15 20:21 +0200)]
Removed powershot sound
Removed the optional powershot sound in favor of the
better-suited default racket sounds.
Thomas Perl [Fri, 15 Jun 2007 12:06:22 +0000 (15 14:06 +0200)]
New main menu with highlight and elektron bling bling
Added rectangle function to graphics library and added
code for an elektron swarm. This adds nice bling bling
effects to the main menu, which in turn has also been
updated.
Thomas Perl [Fri, 15 Jun 2007 07:25:21 +0000 (15 09:25 +0200)]
Modularize human input and AI input (AI vs. AI testing)
Add input_human and input_ai functions that handle human
and computer-controlled players and added several flags
and settings to the Player struct.
This makes it possible to make a match AI vs. AI to test
the quality of our AI code. AI vs. AI is currently the
default for single player mode (still in testing mode :).
Thomas Perl [Thu, 14 Jun 2007 22:13:02 +0000 (15 00:13 +0200)]
First cut of single-player mode support (Player 2 = AI)
This adds a gameplay mode that makes the 2nd player
controlled by an AI tennix bot which is quite good at
playing tennix.
The single-player (AI) mode is activated with the hi-
scores menu item currently. Still no difficulty settings.
Thomas Perl [Thu, 14 Jun 2007 21:49:34 +0000 (14 23:49 +0200)]
Fix ball direction gameplay bug
This commit fixes a small bug that appeared while testing
the game - ball direction sometimes was inversed, resulting
in the ball to go into the wrong direction.
Thomas Perl [Wed, 13 Jun 2007 18:48:29 +0000 (13 20:48 +0200)]
Added tennis ball and its shadow to 3D test
Added a yellow circle and a gray shadow to the
Tennix pygame 3D-rendering test. The shadow size
changes depending on the ball height (z) and both
ball and shadow size decrease when the ball moves
away from the observer.
Thomas Perl [Tue, 12 Jun 2007 20:39:07 +0000 (12 22:39 +0200)]
Setting version to 0.3.0 in tennix.h
Thomas Perl [Tue, 12 Jun 2007 20:37:03 +0000 (12 22:37 +0200)]
Merge branch 'gameplay'
Thomas Perl [Sun, 10 Jun 2007 21:09:08 +0000 (10 23:09 +0200)]
Bugfix for ball not moving completely off-screen
This fix makes the game only stop when the ball is
completely off-screen, so it doesn't look like the
ball was stopped at the edge of the screen.
Thomas Perl [Sun, 10 Jun 2007 21:04:37 +0000 (10 23:04 +0200)]
Support for ball out with sound
Added support for situations when the ball is out, i.e.
responsibilities don't change and playback out signal beep.
Thomas Perl [Sun, 10 Jun 2007 20:19:40 +0000 (10 22:19 +0200)]
Compile-time debug mode, get_move_y gameplay fixes
Added compile-time DEBUG variable to enable or disable
debugging code (currently position visualisation) and
added dest1/dest2 variables to the Ball struct.
Fix return value and handling in get_move_y() to have
smoother gameplay and better ball movement control.
Thomas Perl [Sat, 9 Jun 2007 17:45:21 +0000 (9 19:45 +0200)]
Line drawing methods and new gameplay fixes
Added horizontal and vertical line drawing methods for debugging
purposes and fix bugs for gameplay changes introduced in May, so
that we have working gameplay again.
thp [Fri, 25 May 2007 17:53:34 +0000 (25 17:53 +0000)]
testing 3d-to-2d conversion with a pygame draft script :)
thp [Thu, 17 May 2007 20:24:36 +0000 (17 20:24 +0000)]
First cut of gameplay updates, partly broken
thp [Wed, 23 May 2007 07:35:27 +0000 (23 07:35 +0000)]
Updated Mac OS X icon