[Balder-cvs] SF.net SVN: balder: [1] src
Status: Beta
Brought to you by:
holomorph
From: <hol...@us...> - 2006-10-16 06:47:02
|
Revision: 1 http://svn.sourceforge.net/balder/?rev=1&view=rev Author: holomorph Date: 2006-10-15 23:42:21 -0700 (Sun, 15 Oct 2006) Log Message: ----------- Imported [debianized and cleaned up] sources to svn Added Paths: ----------- Balder2D.desktop LEGAL.TXT README.TXT SConstruct bin/ bin/SFont/ bin/SFont/lifefont.png bin/SFont/scorefont.png bin/balder2d.ico bin/balder2d.xpm bin/config.xml bin/maps/ bin/maps/balder2d_export.py bin/maps/co-ax/ bin/maps/co-ax/background.png bin/maps/co-ax/geometry.png bin/maps/co-ax/maptags.xml bin/maps/corners/ bin/maps/corners/background.png bin/maps/corners/geometry.png bin/maps/corners/maptags.xml bin/maps/default/ bin/maps/default/background.png bin/maps/default/geometry.png bin/maps/default/maptags.xml bin/maps/ellipse/ bin/maps/ellipse/background.png bin/maps/ellipse/geometry.png bin/maps/ellipse/maptags.xml bin/maps/liptoid/ bin/maps/liptoid/background.png bin/maps/liptoid/geometry.png bin/maps/liptoid/maptags.py bin/maps/liptoid/maptags.xml bin/maps/minimaze/ bin/maps/minimaze/background.png bin/maps/minimaze/geometry.png bin/maps/minimaze/maptags.xml bin/maps/test/ bin/maps/test/background.png bin/maps/test/geometry.png bin/maps/test/maptags.xml bin/maps/tri-duel/ bin/maps/tri-duel/background.png bin/maps/tri-duel/geometry.png bin/maps/tri-duel/maptags.xml bin/menu/ bin/menu/balderfont.png bin/menu/balderheader.png bin/menu/bluespectrum.png bin/menu/greenspectrum.png bin/menu/redspectrum.png bin/music/ bin/music/default.ogg bin/music/menu.ogg bin/music/music.txt bin/powerups.png bin/probe.png bin/projectile.png bin/scripts/ bin/scripts/balderai.py bin/scripts/balderutil/ bin/scripts/balderutil/__init__.py bin/scripts/balderutil/entity.py bin/scripts/balderutil/probe.py bin/scripts/randomai.py bin/scripts/simple_aimer.py bin/scripts/test/ bin/scripts/test/SConscript bin/scripts/test/ac.h bin/scripts/test/balderaitest.py bin/scripts/test/balderutiltest.py bin/scripts/test/runtests.cpp bin/sounds/ bin/sounds/fire.ogg bin/sounds/probe_destroyed.ogg bin/sounds/probe_hit.ogg bin/sounds/probe_shields.ogg bin/sounds/probe_stick.ogg debian/ debian/balder2d.6 debian/changelog debian/compat debian/control debian/copyright debian/docs debian/files debian/menu debian/rules history.txt include/ include/artificialcontroller.h include/balder2dtypes.h include/collisionmask.h include/computerprobecontrol.h include/configmanager.h include/entity.h include/gamemanager.h include/input.h include/log.h include/mapparser.h include/menu/ include/menu/ailistmodel.h include/menu/gamesetup.h include/menu/mainmenu.h include/menu/maplistmodel.h include/menu/menu.h include/menu/network.h include/menu/numberfield.h include/menu/options.h include/menu/playersetup.h include/menu/samplemapwidget.h include/menu/sampleprobewidget.h include/menu/soundvideo.h include/menu/submenu.h include/player.h include/powerup.h include/powerupfactory.h include/probe.h include/probefactory.h include/projectile.h include/projectilefactory.h include/renderer.h include/soundmanager.h run_balder.sh src/ src/SFont/ src/SFont/Font.h src/SFont/SFont.c src/SFont/SFont.h src/artificialcontroller.cpp src/collisionmask.cpp src/computerprobecontrol.cpp src/configmanager.cpp src/entity.cpp src/gamemanager.cpp src/input.cpp src/log.cpp src/main.cpp src/mapparser.cpp src/menu/ src/menu/ailistmodel.cpp src/menu/gamesetup.cpp src/menu/mainmenu.cpp src/menu/maplistmodel.cpp src/menu/menu.cpp src/menu/netwtork.cpp src/menu/numberfield.cpp src/menu/options.cpp src/menu/playersetup.cpp src/menu/samplemapwidget.cpp src/menu/sampleprobewidget.cpp src/menu/soundvideo.cpp src/menu/submenu.cpp src/player.cpp src/powerup.cpp src/powerupfactory.cpp src/probe.cpp src/probefactory.cpp src/projectile.cpp src/projectilefactory.cpp src/renderer.cpp src/soundmanager.cpp src/tinyxml/ src/tinyxml/tinystr.cpp src/tinyxml/tinystr.h src/tinyxml/tinyxml.cpp src/tinyxml/tinyxml.h src/tinyxml/tinyxmlerror.cpp src/tinyxml/tinyxmlparser.cpp todo.txt Added: Balder2D.desktop =================================================================== --- Balder2D.desktop (rev 0) +++ Balder2D.desktop 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,8 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Balder2D +Comment=2D overhead shooter in Zero G +Exec=balder2d +Icon=balder2d.xpm +Type=Application +Categories=Game;ArcadeGame; Added: LEGAL.TXT =================================================================== --- LEGAL.TXT (rev 0) +++ LEGAL.TXT 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,17 @@ +Copyright (C) 2006 by Bjørn Hansen +ho...@us... + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the +Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Added: README.TXT =================================================================== --- README.TXT (rev 0) +++ README.TXT 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,14 @@ +Balder2D is currently under development and may have flaws in it in the form +of minor and/or major bugs. We are always looking for things that we might +have overlooked, so if you find a bug we would like to know about it. +This way we can fix it as promptly as possible. + +Please submit any bug reports that you might have to our bug tracking system at: +http://sourceforge.net/tracker/?func=add&group_id=49631&atid=699305 + +or e-mail our Project Administrator: + +Bjørn Hansen +ho...@us... + +Thank you and we hope you enjoy the game! Added: SConstruct =================================================================== --- SConstruct (rev 0) +++ SConstruct 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,19 @@ +# SConstruct for building balder2d with scons +includepath = ['/usr/include/python2.4'] +libpath = ['../gnelib/lib/linux/'] +env = Environment(CPPPATH=includepath, LIBPATH=libpath) +#avoid leaving .sconsign files all over the place, put all signatures in: +env.SConsignFile("scons-signatures") + +debug = ARGUMENTS.get('debug', 0) +if int(debug): + env.Append(CCFLAGS = '-g') + +import glob +files = glob.glob("src/*.cpp") + glob.glob("src/*/*.cpp") + glob.glob("src/*/*.c") +libs = Split('guichan_sdl guichan SDL_image SDL_mixer SDL_gfx python2.4 boost_filesystem') + +env.ParseConfig('sdl-config --cflags --libs') +env.Program('bin/balder2d',files, LIBS=libs) + +SConscript('bin/scripts/test/SConscript') Added: bin/SFont/lifefont.png =================================================================== (Binary files differ) Property changes on: bin/SFont/lifefont.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/SFont/scorefont.png =================================================================== (Binary files differ) Property changes on: bin/SFont/scorefont.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/balder2d.ico =================================================================== (Binary files differ) Property changes on: bin/balder2d.ico ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/balder2d.xpm =================================================================== --- bin/balder2d.xpm (rev 0) +++ bin/balder2d.xpm 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,42 @@ +/* XPM */ +static char * balder2d_xpm[] = { +"32 32 7 1", +" c None", +". c #0000FF", +"+ c #000000", +"@ c #FFFFFF", +"# c #C0C0C0", +"$ c #808080", +"% c #008080", +" ....... ", +" ....+++++++... ", +" .@#$$$$$$$$$$$+.. ", +" .@%.@++++++++++$++. ", +" .+#..@+++++++++++#@+. ", +" .+$$##$$$$$$$$$$$#%%@+. ", +" .+++++++++++.+++++@..@++. ", +" .+++++++++.......+++@@++++. ", +" .+++++++...........+++++++. ", +" .++++++...............++++++. ", +" .++++++...............++++++. ", +" .+++++.................+++++. ", +".++++++.................+++#### ", +".+++++...................+@@++# ", +".+@@++...................@++++# ", +".@..@+...................@++++# ", +".@..@+...................+@@++# ", +".+@@++...................++#### ", +".++++++.................@@++++. ", +" .+++++................@..@++. ", +" .++++++...............@..@++. ", +" .++++++...............+@@+++. ", +" .+++++++...........+++++++. ", +" .+++++++++.......+++++++++. ", +" .++$$$$$$##$%$$$$$$$$+++. ", +" .++$+++@..@+++++++$+++. ", +" .++$++@..@++++++$+++. ", +" .++$$$##$$$$$$$+++. ", +" ..+++++++++++++.. ", +" ...+++++++... ", +" ....... ", +" "}; Added: bin/config.xml =================================================================== --- bin/config.xml (rev 0) +++ bin/config.xml 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,72 @@ +<?xml version="1.0" ?> +<!-- Balder2d Configuration data --> +<Balder> + <!-- The following is meant to be modified by the user --> + <Map name="tri-duel" /> + <NumberOfPlayers value="3" /> + <GameSetup> + <!-- negative values indicate disabled modes --> + <ScoreLimit value="100" /> + <!-- time limit is in minutes --> + <TimeLimit value="8" /> + <LifeLimit value="15" /> + </GameSetup> + <Video> + <fullscreen value="0" /> + </Video> + <Sound> + <fxvolume value="0.5" /> + <musicvolume value="0.5" /> + <music value="1" /> + <sound value="1" /> + </Sound> + <Player controller="1"> + <Control type="Human" /> + <Actions> + <right key="RIGHT" /> + <left key="LEFT" /> + <stick key="DOWN" /> + <push key="UP" /> + <fire key="UP" /> + </Actions> + <Probe> + <Color probe_color="8487423" /> + </Probe> + </Player> + <Player controller="2"> + <Control type="balderai" /> + <Probe> + <Color probe_color="16711680" /> + </Probe> + </Player> + <Player controller="3"> + <Control type="balderai" /> + <Probe> + <Color probe_color="65280" /> + </Probe> + </Player> + <!-- Values below this line are for tweaking different aspects of the game. regular users will not usually want to mess with this stuff. --> + <Entity> + <maxvelocity value="5" /> + </Entity> + <Probe> + <maxhits value="3" /> + <maxcharge value="5" /> + <rechargetime value="400" /> + <maxspeed value="3" /> + <poweruptime value="10" /> + <turningspeed value="0.041666667" /> + </Probe> + <Projectile> + <radius value="8" /> + <lifetime value="200" /> + <frames value="8" /> + <explodeframes value="8" /> + <exploderadius value="16" /> + <speed value="4" /> + <AddProbeVelocity value="0" /> + </Projectile> + <Powerup> + <spawn_interval value="400" /> + </Powerup> +</Balder> Added: bin/maps/balder2d_export.py =================================================================== --- bin/maps/balder2d_export.py (rev 0) +++ bin/maps/balder2d_export.py 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,66 @@ +#!/usr/bin/env python + +# a script for exporting balder2d maps from the gimp +# to use this script put it in your .gimp-2.2/plug-ins/ directory (make sure +# it is excecutable) then open up +# the gimp and create/open an image in the directory where you want your map +# created. Create two layers named 'background' and 'geometry'. Edit them +# and then go to python-fu->Export->Balder2D and it will save them as separate +# png images. In the future there will be a spawn layer too, and the script +# will create the maptags.xml file. + +from gimpfu import * + +def python_balder2d_export(timg, tdrawable): + width = timg.width + height = timg.height + layers = timg.layers + spawns = [] + path = timg.filename[0:timg.filename.rfind('/')] + progress = 0 + max_progress = width*height + width*height/4 + gimp.progress_init("Exporting Balder2D map files...") + for layer in layers: + name = layer.name + if name.lower() == 'background': + pdb.gimp_file_save(timg, layer, path+'/background.png', 'background.png') + elif name.lower() == 'geometry': + pdb.gimp_file_save(timg, layer, path+'/geometry.png', 'geometry.png') + elif name.lower() == 'spawns' : + p = layer.get_pixel_rgn(0,0,width,height) + for x in range(0,width): + for y in range(0,height): + if p[x,y] == '\xff\x00\x00\xff': #red + spawns.append((x,y)) + progress = progress + width + gimp.progress_update(float(progress) / max_progress) + + # found all the spawns, now write them out to the file + out_file = open(path+"/maptags.xml", "w") + out_file.write('<?xml version="1.0"?>\n<!-- information about the map -->\n') + out_file.write('<Map name="'+timg.name.rsplit('.',1)[0]+'">\n') + out_file.write('\t<Size width="'+`width`+'" height="'+`height`+'" />\n') + for spawn in spawns: + out_file.write('\t<spawn>\n') + out_file.write('\t\t<location x="'+`spawn[0]`+'" y="'+`spawn[1]`+'" />\n') + out_file.write('\t\t<velocity x="0" y="0" />\n') + out_file.write('\t\t<stuck status="true" />\n') + out_file.write('\t</spawn>\n') + out_file.write('</Map>\n') + out_file.close() + gimp.progress_update(max_progress) + +register( + "python_fu_balder2d", + "Export into a Balder2D map", + "Export into a Balder2D map", + "Bjørn Hansen", + "Bjørn Hansen", + "October 2006", + "<Image>/Python-Fu/Export/_Balder2D", + "RGB*, GRAY*", + [], + [], + python_balder2d_export) + +main() Property changes on: bin/maps/balder2d_export.py ___________________________________________________________________ Name: svn:executable + Added: bin/maps/co-ax/background.png =================================================================== (Binary files differ) Property changes on: bin/maps/co-ax/background.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/co-ax/geometry.png =================================================================== (Binary files differ) Property changes on: bin/maps/co-ax/geometry.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/co-ax/maptags.xml =================================================================== --- bin/maps/co-ax/maptags.xml (rev 0) +++ bin/maps/co-ax/maptags.xml 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,36 @@ +<?xml version="1.0"?> +<!-- information about the map --> +<Map name="co-ax"> + <Size width="1024" height="640" /> + <!-- Spawn Locations --> + <spawn> + <location x="512" y="150" /> + <velocity x="0" y="-1.5" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="512" y="490" /> + <velocity x="0" y="1.5" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="345" y="320" /> + <velocity x="-1.5" y="0" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="680" y="320" /> + <velocity x="1.5" y="0" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="95" y="320" /> + <velocity x="-1.5" y="0" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="930" y="320" /> + <velocity x="1.5" y="0" /> + <stuck status="false" /> + </spawn> +</Map> Added: bin/maps/corners/background.png =================================================================== (Binary files differ) Property changes on: bin/maps/corners/background.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/corners/geometry.png =================================================================== (Binary files differ) Property changes on: bin/maps/corners/geometry.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/corners/maptags.xml =================================================================== --- bin/maps/corners/maptags.xml (rev 0) +++ bin/maps/corners/maptags.xml 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,35 @@ +<?xml version="1.0"?> +<!-- information about the map --> +<Map name="orners"> + <Size width="800" height="600" /> + <spawn> + <location x="50" y="50" /> + <velocity x="0" y="0" /> + <stuck status="true" /> + </spawn> + <spawn> + <location x="50" y="550" /> + <velocity x="0" y="0" /> + <stuck status="true" /> + </spawn> + <spawn> + <location x="400" y="300" /> + <velocity x="0" y="0" /> + <stuck status="true" /> + </spawn> + <spawn> + <location x="718" y="104" /> + <velocity x="0" y="0" /> + <stuck status="true" /> + </spawn> + <spawn> + <location x="750" y="50" /> + <velocity x="0" y="0" /> + <stuck status="true" /> + </spawn> + <spawn> + <location x="750" y="550" /> + <velocity x="0" y="0" /> + <stuck status="true" /> + </spawn> +</Map> Added: bin/maps/default/background.png =================================================================== (Binary files differ) Property changes on: bin/maps/default/background.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/default/geometry.png =================================================================== (Binary files differ) Property changes on: bin/maps/default/geometry.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/default/maptags.xml =================================================================== --- bin/maps/default/maptags.xml (rev 0) +++ bin/maps/default/maptags.xml 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,41 @@ +<?xml version="1.0"?> +<!-- information about the map --> +<Map name="default"> + <Size width="800" height="600" /> + <!-- Spawn Locations --> + <spawn> + <location x="50" y="50" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="750" y="550" /> + <velocity x="0" y="0" /> + <stuck status="true" /> + </spawn> + <spawn> + <location x="640" y="220" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="50" y="550" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="505" y="50" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="210" y="380" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="475" y="440" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> +</Map> \ No newline at end of file Added: bin/maps/ellipse/background.png =================================================================== (Binary files differ) Property changes on: bin/maps/ellipse/background.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/ellipse/geometry.png =================================================================== (Binary files differ) Property changes on: bin/maps/ellipse/geometry.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/ellipse/maptags.xml =================================================================== --- bin/maps/ellipse/maptags.xml (rev 0) +++ bin/maps/ellipse/maptags.xml 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,46 @@ +<?xml version="1.0"?> +<!-- information about the map --> +<Map name="default"> + <Size width="1024" height="668" /> + <!-- Spawn Locations --> + <spawn> + <location x="200" y="94" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="824" y="570" /> + <velocity x="0" y="0" /> + <stuck status="true" /> + </spawn> + <spawn> + <location x="824" y="94" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="200" y="570" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="500" y="20" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="1000" y="330" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="500" y="640" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="20" y="330" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> +</Map> \ No newline at end of file Added: bin/maps/liptoid/background.png =================================================================== (Binary files differ) Property changes on: bin/maps/liptoid/background.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/liptoid/geometry.png =================================================================== (Binary files differ) Property changes on: bin/maps/liptoid/geometry.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/liptoid/maptags.py =================================================================== --- bin/maps/liptoid/maptags.py (rev 0) +++ bin/maps/liptoid/maptags.py 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,19 @@ +from scipy import * + +print '<?xml version="1.0"?>' +print '<!-- information about the map -->' +print '<Map name="liptoid">' +print '\t<Size width="1024" height="748" />' +print '\t<!-- Spawn Locations -->' +for a in range(0,8): + x=120*cos(a*pi/4)+512 + y=120*sin(a*pi/4)+384 + print '\t<spawn>' + print '\t\t<location x="',x,'" y="',y,'" />' + xv = 3*cos(a*pi/4) + yv = 3*sin(a*pi/4) + print '\t\t<velocity x="',xv,'" y="',yv,'" />' + print '\t\t<stuck status="false" />' + print '\t</spawn>' + +print '</Map>' Added: bin/maps/liptoid/maptags.xml =================================================================== --- bin/maps/liptoid/maptags.xml (rev 0) +++ bin/maps/liptoid/maptags.xml 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,46 @@ +<?xml version="1.0"?> +<!-- information about the map --> +<Map name="liptoid"> + <Size width="1024" height="760" /> + <!-- Spawn Locations --> + <spawn> + <location x=" 712.0 " y=" 384.0 " /> + <velocity x=" 3.0 " y=" 0.0 " /> + <stuck status="false" /> + </spawn> + <spawn> + <location x=" 653.421356237 " y=" 525.421356237 " /> + <velocity x=" 2.12132034356 " y=" 2.12132034356 " /> + <stuck status="false" /> + </spawn> + <spawn> + <location x=" 512.0 " y=" 584.0 " /> + <velocity x=" 1.83697019872e-16 " y=" 3.0 " /> + <stuck status="false" /> + </spawn> + <spawn> + <location x=" 370.578643763 " y=" 525.421356237 " /> + <velocity x=" -2.12132034356 " y=" 2.12132034356 " /> + <stuck status="false" /> + </spawn> + <spawn> + <location x=" 312.0 " y=" 384.0 " /> + <velocity x=" -3.0 " y=" 3.67394039744e-16 " /> + <stuck status="false" /> + </spawn> + <spawn> + <location x=" 370.578643763 " y=" 242.578643763 " /> + <velocity x=" -2.12132034356 " y=" -2.12132034356 " /> + <stuck status="false" /> + </spawn> + <spawn> + <location x=" 512.0 " y=" 184.0 " /> + <velocity x=" -5.51091059616e-16 " y=" -3.0 " /> + <stuck status="false" /> + </spawn> + <spawn> + <location x=" 653.421356237 " y=" 242.578643763 " /> + <velocity x=" 2.12132034356 " y=" -2.12132034356 " /> + <stuck status="false" /> + </spawn> +</Map> Added: bin/maps/minimaze/background.png =================================================================== (Binary files differ) Property changes on: bin/maps/minimaze/background.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/minimaze/geometry.png =================================================================== (Binary files differ) Property changes on: bin/maps/minimaze/geometry.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/minimaze/maptags.xml =================================================================== --- bin/maps/minimaze/maptags.xml (rev 0) +++ bin/maps/minimaze/maptags.xml 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<!-- information about the map --> +<Map name="default"> + <Size width="640" height="380" /> + <!-- Spawn Locations --> + <spawn> + <location x="32" y="32" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="32" y="344" /> + <velocity x="0" y="0" /> + <stuck status="true" /> + </spawn> + <spawn> + <location x="608" y="32" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="608" y="344" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> +</Map> \ No newline at end of file Added: bin/maps/test/background.png =================================================================== (Binary files differ) Property changes on: bin/maps/test/background.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/test/geometry.png =================================================================== (Binary files differ) Property changes on: bin/maps/test/geometry.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/test/maptags.xml =================================================================== --- bin/maps/test/maptags.xml (rev 0) +++ bin/maps/test/maptags.xml 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<!-- information about the map --> +<Map name="test"> + <Size width="600" height="600" /> + <!-- Spawn Locations --> + <spawn> + <location x="50" y="50" /> + <velocity x="1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="550" y="550" /> + <velocity x="-1.1" y="-1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="550" y="50" /> + <velocity x="-1" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="50" y="550" /> + <velocity x="1" y="-1" /> + <stuck status="false" /> + </spawn> +</Map> Added: bin/maps/tri-duel/background.png =================================================================== (Binary files differ) Property changes on: bin/maps/tri-duel/background.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/tri-duel/geometry.png =================================================================== (Binary files differ) Property changes on: bin/maps/tri-duel/geometry.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/maps/tri-duel/maptags.xml =================================================================== --- bin/maps/tri-duel/maptags.xml (rev 0) +++ bin/maps/tri-duel/maptags.xml 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- information about the map --> +<Map name="tri-duel"> + <Size width="1024" height="640" /> + <!-- Spawn Locations --> + <spawn> + <location x="512" y="574" /> + <velocity x="0" y="1" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="292" y="193" /> + <velocity x="-0.866" y="-0.5" /> + <stuck status="false" /> + </spawn> + <spawn> + <location x="732" y="193" /> + <velocity x="0.866" y="-0.5" /> + <stuck status="false" /> + </spawn> +</Map> Added: bin/menu/balderfont.png =================================================================== (Binary files differ) Property changes on: bin/menu/balderfont.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/menu/balderheader.png =================================================================== (Binary files differ) Property changes on: bin/menu/balderheader.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/menu/bluespectrum.png =================================================================== (Binary files differ) Property changes on: bin/menu/bluespectrum.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/menu/greenspectrum.png =================================================================== (Binary files differ) Property changes on: bin/menu/greenspectrum.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/menu/redspectrum.png =================================================================== (Binary files differ) Property changes on: bin/menu/redspectrum.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/music/default.ogg =================================================================== (Binary files differ) Property changes on: bin/music/default.ogg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/music/menu.ogg =================================================================== (Binary files differ) Property changes on: bin/music/menu.ogg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/music/music.txt =================================================================== --- bin/music/music.txt (rev 0) +++ bin/music/music.txt 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,5 @@ +This file contains information about various pieces of music packaged with balder2d: + +default.ogg - "Prima Percezione" by Giuseppe Mangione (http://www.fonogeno.com). License is Creative Commons by-nc-sa (http://creativecommons.org/licenses/by-nc-sa/2.0/) + +menu.ogg - "Nuevia" by Galdson_Factor\xEDa de Entornos Musicales (http:://www.galdson.com). License is Creative Commons by-sa (http://creativecommons.org/licenses/by-sa/2.5/) Added: bin/powerups.png =================================================================== (Binary files differ) Property changes on: bin/powerups.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/probe.png =================================================================== (Binary files differ) Property changes on: bin/probe.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/projectile.png =================================================================== (Binary files differ) Property changes on: bin/projectile.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/scripts/balderai.py =================================================================== --- bin/scripts/balderai.py (rev 0) +++ bin/scripts/balderai.py 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,85 @@ +import balder +from balderutil import entity, probe +import math, random +try: + import psyco +except ImportError: + # no psyco, so don't use it + pass +else: + psyco.full() + +controlled_probes = {} + +class probe_tracker: + def __init__(self): + self.lastfire = 0 + self.pushtimer = 0 + self.fireAtTarget = True + def incrementFrame(self): + self.lastfire += 1 + +def DestroyClosestProbe(probe_id, probe_dict): + inputs = 0 + # first, lets find out where we are and where we are aiming + xloc = probe_dict[probe_id]['x'] + yloc = probe_dict[probe_id]['y'] + aiming = probe_dict[probe_id]['rotation_angle'] + # aim for the closest probe + target = entity.FindClosestProbe(probe_id, probe_dict) + if not target in probe_dict: + return balder.INPUT_STICK + xtarget = probe_dict[target]['x'] + ytarget = probe_dict[target]['y'] + inputs = probe.AimProbeAt(probe_dict[probe_id], xtarget, ytarget) + if inputs == 0 and balder.IsLineOfSight((xloc,yloc),(xtarget,ytarget)): + inputs = balder.INPUT_FIRE + return inputs + +def DoProbeControl(probe_id, probe_dict, projectile_list, powerup_list): + # don't try to do AI for non existant probes + if not probe_id in probe_dict: + return 0 + global controlled_probes + if not probe_id in controlled_probes: + controlled_probes[probe_id] = probe_tracker() + closestprobe_id = entity.FindClosestProbe(probe_id, probe_dict) + thisprobe = controlled_probes[probe_id] + thisprobe.incrementFrame() + inputs = 0 + # first, lets find out where we are and where we are aiming + xloc = probe_dict[probe_id]['x'] + yloc = probe_dict[probe_id]['y'] + aiming = probe_dict[probe_id]['rotation_angle'] + # first look for powerups + if len(powerup_list) and probe_dict[probe_id]['stuck']: + thisprobe.fireAtTarget = False + xtarget, ytarget = entity.FindClosestEntity(xloc, yloc, powerup_list) + if not balder.IsLineOfSight((xloc,yloc),(xtarget,ytarget)): + thisprobe.fireAtTarget = True + inputs = DestroyClosestProbe(probe_id, probe_dict) + else: + inputs = probe.AimProbeAt(probe_dict[probe_id],xtarget, ytarget) + else: + # aim for the closest probe + thisprobe.fireAtTarget = True + inputs = DestroyClosestProbe(probe_id, probe_dict) + if inputs == balder.INPUT_FIRE: + if closestprobe_id in probe_dict: + closestprobe = probe_dict[closestprobe_id] + distance = entity.DistanceTo(xloc, yloc, closestprobe) + if (distance/10 - thisprobe.lastfire) < 0 \ + and thisprobe.fireAtTarget: + thisprobe.lastfire = 0 + else: + inputs = balder.INPUT_STICK + if probe_dict[probe_id]['stuck']: + if not thisprobe.pushtimer == 0: + inputs = inputs | balder.INPUT_STICK + thisprobe.pushtimer += 1 + # push off after 20 frames + if thisprobe.pushtimer == 20: + thisprobe.pushtimer = 0 + else: + inputs = inputs | balder.INPUT_STICK + return inputs Added: bin/scripts/balderutil/__init__.py =================================================================== Added: bin/scripts/balderutil/entity.py =================================================================== --- bin/scripts/balderutil/entity.py (rev 0) +++ bin/scripts/balderutil/entity.py 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,50 @@ +import math +try: + import psyco +except ImportError: + # no psyco, so don't use it + pass +else: + psyco.full() + +def FindClosestProbe(this_probe_id, probe_dict, max_distance = 1000): + """ returns the ID of the closest probe + """ + closest_distance = max_distance**2; + closest_probe_id = -1 + xorigin = probe_dict[this_probe_id]['x'] + yorigin = probe_dict[this_probe_id]['y'] + for probe in probe_dict.items(): + id = probe[0] + if id == this_probe_id: + continue + xtarget = math.fabs(xorigin - probe_dict[id]['x']) + ytarget = math.fabs(yorigin - probe_dict[id]['y']) + distance = xtarget**2 + ytarget**2 + if distance < closest_distance: + closest_distance = distance + closest_probe_id = id + return closest_probe_id + +def FindClosestEntity(x, y, entity_list, max_distance = 1000): + """ returns the x and y coordinates of the closest entity in the given list + to the given point, or 0,0 if no entity is close enough + """ + xent, yent = 0, 0 + closest_distance = max_distance**2; + for entity in entity_list: + xtarget = math.fabs(x - entity['x']) + ytarget = math.fabs(y - entity['y']) + distance = xtarget**2 + ytarget**2 + if distance < closest_distance: + closest_distance = distance + xent, yent = entity['x'], entity['y'] + return xent, yent + +def DistanceTo(x, y, entity): + """ returns the distance from the entity to the given point + """ + xent = entity['x'] + yent = entity['y'] + return int(math.sqrt((x - xent)**2 + (y - yent)**2)) + \ No newline at end of file Added: bin/scripts/balderutil/probe.py =================================================================== --- bin/scripts/balderutil/probe.py (rev 0) +++ bin/scripts/balderutil/probe.py 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,50 @@ +import math +import balder +try: + import psyco +except ImportError: + # no psyco, so don't use it + pass +else: + psyco.full() + +def AimProbeAt(probeToAim, xtarget, ytarget): + """ figure out how to turn to aim at the given target coordinates + """ + # need these to be floats so that later divisions don't do integer division + xloc = probeToAim['x'] + yloc = probeToAim['y'] + aiming = probeToAim['rotation_angle'] + xaim = float(xtarget - xloc) + yaim = float(ytarget - yloc) + # if xaim is very small, we are going to get something very large if we try + # to devide yaim by xaim. So in this case we just want to aim up or down + if math.fabs(xaim) < 0.1: + if yaim == math.fabs(yaim): # yaim is positive (y is positive down) + want_to_aim = math.pi/2 # pi/2 is straight down + else: + want_to_aim = 3*math.pi/2 + else: # it should be safe to compute the angle directly + want_to_aim = math.atan(yaim/xaim) + # this only gives us the right angle if x and y are positive though + if xaim < 0: + want_to_aim = want_to_aim + math.pi + elif yaim < 0: # y negative, but x positive gives a negative angle, add 2*pi + want_to_aim = want_to_aim + 2*math.pi + # first, lets check if we are already pointed approximately that way + if math.fabs(want_to_aim - aiming) < 0.1: + return 0 + else: # need to adjust our aim + if want_to_aim > aiming: + # make sure we turn the shortest way + if want_to_aim - aiming < math.pi: + inputs = balder.INPUT_RIGHT + else: + inputs = balder.INPUT_LEFT + else: + # again, make sure to turn the quickest way + if aiming - want_to_aim > math.pi: + inputs = balder.INPUT_RIGHT + else: + inputs = balder.INPUT_LEFT + return inputs Added: bin/scripts/randomai.py =================================================================== --- bin/scripts/randomai.py (rev 0) +++ bin/scripts/randomai.py 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,12 @@ +import balder +import random +try: + import psyco +except ImportError: + # no psyco, so don't use it + pass +else: + psyco.full() + +def DoProbeControl(probe_id, probe_dict, projectile_list, powerup_list): + return random.randint(0,16) Added: bin/scripts/simple_aimer.py =================================================================== --- bin/scripts/simple_aimer.py (rev 0) +++ bin/scripts/simple_aimer.py 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,28 @@ +import balder +from balderutil import entity +from balderutil import probe +import math +try: + import psyco +except ImportError: + # no psyco, so don't use it + pass +else: + psyco.full() + +def DoProbeControl(probe_id, probe_dict, projectile_list, powerup_list): + # don't try to do AI for non existant probes + if not probe_id in probe_dict: + return 0 + inputs = 0 + # first, lets find out where we are and where we are aiming] + # aim for the closest probe + target = entity.FindClosestProbe(probe_id, probe_dict) + if not target in probe_dict: + return 0 + xtarget = probe_dict[target]['x'] + ytarget = probe_dict[target]['y'] + inputs = probe.AimProbeAt(probe_dict[probe_id], xtarget, ytarget) + if inputs == 0: + inputs = balder.INPUT_FIRE + return inputs Added: bin/scripts/test/SConscript =================================================================== --- bin/scripts/test/SConscript (rev 0) +++ bin/scripts/test/SConscript 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,4 @@ + +env = Environment(CPPPATH='/usr/include/python2.4') + +env.Program('runtests', 'runtests.cpp', LIBS='python2.4') Added: bin/scripts/test/ac.h =================================================================== --- bin/scripts/test/ac.h (rev 0) +++ bin/scripts/test/ac.h 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,29 @@ +#include "../../../include/input.h" + + +static PyMethodDef BalderAIMethods[] = { + {NULL, NULL, 0, NULL} /* Sentinel */ +}; + +class ArtificialController{ +public: + static void Initialize(){ + Py_InitializeEx(0); + // set up the python environment to find the scrpits + PyRun_SimpleString("import sys\n"); + PyRun_SimpleString("sys.path.append('scripts')\n"); + PyObject *balder_module = Py_InitModule("balder", BalderAIMethods); + PyModule_AddIntConstant(balder_module, "INPUT_LEFT", Balder::LEFT); + PyModule_AddIntConstant(balder_module, "INPUT_RIGHT", Balder::RIGHT); + PyModule_AddIntConstant(balder_module, "INPUT_STICK", Balder::STICK); + PyModule_AddIntConstant(balder_module, "INPUT_FIRE", Balder::FIRE); + } + static void ShutDown(){ + Py_Finalize(); + } + + #ifdef Py_PYTHON_H // so gamemanager doesn't see this python related stuff + static PyObject* py_IsWall(PyObject *self, PyObject *args); + static PyObject* py_IsLineOfSight(PyObject *self, PyObject *args); + #endif +}; Added: bin/scripts/test/balderaitest.py =================================================================== --- bin/scripts/test/balderaitest.py (rev 0) +++ bin/scripts/test/balderaitest.py 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,89 @@ +import unittest +import sys +sys.path.append('..') +from balderutil import entity + +INPUT_LEFT = 1; +INPUT_RIGHT = 2; +INPUT_STICK = 4; +INPUT_PUSH = 8; +INPUT_FIRE = 16; + +# for reference; n*pi/4, n=0...8: +# 0.0 +# 0.785398163397 +# 1.57079632679 +# 2.35619449019 +# 3.14159265359 +# 3.92699081699 +# 4.71238898038 +# 5.49778714378 +# 6.28318530718 + + +class DoProbeControlTests(unittest.TestCase): + def setUp(self): + #lets surround the target at 4 points, 2 probes each point + self.probe_dict = { + 1:{'x':10,'y':10, 'rotation_angle':0.0}} # the target probe + + def testFire(self): + self.probe_dict[2] = {'x':10,'y':20, 'rotation_angle':4.71} # ~3*pi/2should fire + inputs = balderai.DoProbeControl(2, self.probe_dict,[],[]) + self.failUnlessEqual( inputs, balder.INPUT_FIRE) + + def testOnLeftTurnLeft(self): + self.probe_dict[3] = {'x':0,'y':10, 'rotation_angle':1.57} # ~ pi/2, needs to turn left + inputs = balderai.DoProbeControl(3, self.probe_dict,[],[]) + self.failUnlessEqual( inputs, balder.INPUT_LEFT) + + def testOnLeftTurnRight(self): + self.probe_dict[4] = {'x':0,'y':10, 'rotation_angle':4.71} # ~3*pi/2, needs to turn right + inputs = balderai.DoProbeControl(4, self.probe_dict,[],[]) + self.failUnlessEqual( inputs, balder.INPUT_RIGHT) + + def testAboveTurnLeft(self): + self.probe_dict[5] = {'x':10,'y':0, 'rotation_angle':3.14} # needs to turn left + inputs = balderai.DoProbeControl(5, self.probe_dict,[],[]) + self.failUnlessEqual( inputs, balder.INPUT_LEFT) + + def testAboveTurnRight(self): + self.probe_dict[6] = {'x':10,'y':0, 'rotation_angle':0.0} # ~pi, needs to turn right + inputs = balderai.DoProbeControl(6, self.probe_dict,[],[]) + self.failUnlessEqual( inputs, balder.INPUT_RIGHT) + + def testOnRightTurnLeft(self): + self.probe_dict[7] = {'x':20,'y':10, 'rotation_angle':4.71} # ~3*pi/2, needs to turn left + inputs = balderai.DoProbeControl(7, self.probe_dict,[],[]) + self.failUnlessEqual( inputs, balder.INPUT_LEFT) + + def testOnRightTurnRight(self): + self.probe_dict[8] = {'x':20,'y':10, 'rotation_angle':1.57} # ~pi/2, needs to turn right + inputs = balderai.DoProbeControl(8, self.probe_dict,[],[]) + self.failUnlessEqual( inputs, balder.INPUT_RIGHT) + + def testBelowTurnLeft(self): + self.probe_dict[9] = {'x':10,'y':20, 'rotation_angle':0.0} # ~needs to turn left + inputs = balderai.DoProbeControl(9, self.probe_dict,[],[]) + self.failUnlessEqual( inputs, balder.INPUT_LEFT) + + def testBelowTurnRight(self): + self.probe_dict[10] = {'x':10,'y':20, 'rotation_angle':3.14} # ~pi, needs to turn right + inputs = balderai.DoProbeControl(10, self.probe_dict,[],[]) + self.failUnlessEqual( inputs, balder.INPUT_RIGHT) + + +class FindClosestProbeTests(unittest.TestCase): + def testClosestProbe(self): + probe_dict = { + 1:{'x':10,'y':10}, # the target probe + 2:{'x':10,'y':20}, + 3:{'x':20,'y':20}, + 4:{'x':30,'y':10}} + self.failUnlessEqual(2, balder.FindClosestProbe(1,probe_dict)) + + +controlSuite = unittest.makeSuite(DoProbeControlTests) +closestProbeSuite = unittest.makeSuite(FindClosestProbeTests) +testSuite = unittest.TestSuite((controlSuite, closestProbeSuite)) +unittest.TextTestRunner().run(testSuite) Added: bin/scripts/test/balderutiltest.py =================================================================== --- bin/scripts/test/balderutiltest.py (rev 0) +++ bin/scripts/test/balderutiltest.py 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,74 @@ +import unittest +import sys +sys.path.append('..') +from balderutil import probe, entity + +INPUT_LEFT = 1; +INPUT_RIGHT = 2; +INPUT_STICK = 4; +INPUT_PUSH = 8; +INPUT_FIRE = 16; + +# for reference; n*pi/4, n=0...8: +# 0.0 +# 0.785398163397 +# 1.57079632679 +# 2.35619449019 +# 3.14159265359 +# 3.92699081699 +# 4.71238898038 +# 5.49778714378 +# 6.28318530718 + + +class ProbeAimAtTests(unittest.TestCase): + def testNoTurn(self): + inputs = probe.AimAt(10, 20, 4.71, 10, 10) + self.failUnlessEqual( inputs, 0) + + def testOnLeftTurnLeft(self): + inputs = probe.AimAt(0, 10, 1.57, 10, 10) + self.failUnlessEqual( inputs, INPUT_LEFT) + + def testOnLeftTurnRight(self): + inputs = probe.AimAt(0, 10, 4.71, 10, 10) + self.failUnlessEqual( inputs, INPUT_RIGHT) + + def testAboveTurnLeft(self): + inputs = probe.AimAt(10, 0, 3.14, 10, 10) + self.failUnlessEqual( inputs, INPUT_LEFT) + + def testAboveTurnRight(self): + inputs = probe.AimAt(10, 0, 0.0, 10, 10) + self.failUnlessEqual( inputs, INPUT_RIGHT) + + def testOnRightTurnLeft(self): + inputs = probe.AimAt(20, 10, 4.71, 10, 10) + self.failUnlessEqual( inputs, INPUT_LEFT) + + def testOnRightTurnRight(self): + inputs = probe.AimAt(20, 10, 1.57, 10, 10) + self.failUnlessEqual( inputs, INPUT_RIGHT) + + def testBelowTurnLeft(self): + inputs = probe.AimAt(10, 20, 0.0, 10, 10) + self.failUnlessEqual( inputs, INPUT_LEFT) + + def testBelowTurnRight(self): + inputs = probe.AimAt(10, 20, 3.14, 10, 10) + self.failUnlessEqual( inputs, INPUT_RIGHT) + +class EntityFindClosestProbeTests(unittest.TestCase): + def testClosestProbe(self): + probe_dict = { + 1:{'x':10,'y':10}, # the target probe + 2:{'x':10,'y':10}, + 3:{'x':10,'y':10}, + 4:{'x':30,'y':10}} + self.failUnlessEqual(2, entity.FindClosestProbe(1,probe_dict)) + +def run(): + controlSuite = unittest.makeSuite(ProbeAimAtTests) + closestProbeSuite = unittest.makeSuite(EntityFindClosestProbeTests) + testSuite = unittest.TestSuite((controlSuite, closestProbeSuite)) + unittest.TextTestRunner().run(testSuite) Added: bin/scripts/test/runtests.cpp =================================================================== --- bin/scripts/test/runtests.cpp (rev 0) +++ bin/scripts/test/runtests.cpp 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,32 @@ +/*************************************************************************** + * Copyright (C) 2006 by Bjorn Hansen * + * hol...@us... * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., . * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include <Python.h> +#include "ac.h" + +int main(int argc, char *argv[]) +{ +// PySys_SetArgv(argc, argv); + ArtificialController::Initialize(); + PyRun_SimpleString("sys.path.append('')\n"); + PyRun_SimpleString("import balderutiltest\n"); + PyRun_SimpleString("balderutiltest.run()\n"); + ArtificialController::ShutDown(); +} Added: bin/sounds/fire.ogg =================================================================== (Binary files differ) Property changes on: bin/sounds/fire.ogg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/sounds/probe_destroyed.ogg =================================================================== (Binary files differ) Property changes on: bin/sounds/probe_destroyed.ogg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/sounds/probe_hit.ogg =================================================================== (Binary files differ) Property changes on: bin/sounds/probe_hit.ogg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/sounds/probe_shields.ogg =================================================================== (Binary files differ) Property changes on: bin/sounds/probe_shields.ogg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: bin/sounds/probe_stick.ogg =================================================================== (Binary files differ) Property changes on: bin/sounds/probe_stick.ogg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: debian/balder2d.6 =================================================================== --- debian/balder2d.6 (rev 0) +++ debian/balder2d.6 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,54 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH BALDER2D 6 "October 14, 2006" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp <n> insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +balder2d \- 2D zero gravity shooter +.SH SYNOPSIS +.B balder2d +.RI [ config-file] +.br +.SH DESCRIPTION +\fBbalder2d\fP is an arcade style 2d overhead shooter, +in a zero gravity environment. +In Balder2D, players control small probes which shoot tiny projectiles with +which they try to destroy each other. It features a 2D overhead view of the +playing field. Probes may be human or computer controlled. + +A probe can perform the following actions: + + * rotate + * fire projectiles + * "stick" to a wall + * push off of a wall + +Players may rotate their probes while in flight, but the only way to change +the direction or speed of flight is by firing projectiles (which gives a +small kick in the opposite direction) or by running into walls or other probes. + +.SH OPTIONS +.TP +.B config-file +The config file to use +.SH FILES +by default the config file is ~/.Balder2d.conf +.SH BUGS +There most likely are some, please report them. +.SH AUTHOR +balder2d was written by Bjorn Hansen. +.PP +This manual page was written by Bjorn Hansen <hol...@us...>, +for the Debian project (but may be used by others). Added: debian/changelog =================================================================== --- debian/changelog (rev 0) +++ debian/changelog 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,7 @@ +balder2d (1.0~rc1-1) unstable; urgency=low + + * Initial release + * This is my first Debian package. + + -- Bjorn Hansen <hol...@us...> Sat, 14 Oct 2006 15:33:42 -0700 + Added: debian/compat =================================================================== --- debian/compat (rev 0) +++ debian/compat 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1 @@ +4 Added: debian/control =================================================================== --- debian/control (rev 0) +++ debian/control 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,25 @@ +Source: balder2d +Section: games +Priority: optional +Maintainer: Bjorn Hansen <hol...@us...> +Build-Depends: debhelper (>= 4.0.0), scons, libboost-filesystem-dev, libguichan0-dev, libsdl1.2-dev, libsdl-gfx1.2-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev, libstdc++6, python2.4-dev +Standards-Version: 3.7.2 + +Package: balder2d +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: A 2D shooter in zero gravityia32-libs-sdl + In Balder2D, players control small probes which shoot tiny projectiles with + which they try to destroy each other. It features a 2D overhead view of the + playing field. Probes may be human or computer controlled. + . + A probe can perform the following actions: + . + * rotate + * fire projectiles + * "stick" to a wall + * push off of a wall + . + Players may rotate their probes while in flight, but the only way to change + the direction or speed of flight is by firing projectiles (which gives a + small kick in the opposite direction) or by running into walls or other probes. Added: debian/copyright =================================================================== --- debian/copyright (rev 0) +++ debian/copyright 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,10 @@ +This package was debianized by Bjørn Hansen <hol...@us...> on +Sat, 14 Oct 2006 15:33:42 -0700. + +Copyright Holder: Bjørn Hansen <hol...@us...> + +License: +You are free to distribute this software under the terms of +the GNU General Public License. +On Debian systems, the complete text of the GNU General Public +License can be found in the file `/usr/share/common-licenses/GPL'. Added: debian/docs =================================================================== --- debian/docs (rev 0) +++ debian/docs 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,4 @@ +history.txt +LEGAL.TXT +README.TXT +todo.txt Added: debian/files =================================================================== --- debian/files (rev 0) +++ debian/files 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1 @@ +balder2d_1.0~rc1-1_amd64.deb games optional Added: debian/menu =================================================================== --- debian/menu (rev 0) +++ debian/menu 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,4 @@ +?package(balder2d):needs="X11" section="Games/Arcade"\ + title="balder2d" command="/usr/games/balder2d" \ + longtitle="2D shooter in Zero G" icon="/usr/share/pixmaps/balder2d.xpm" + Added: debian/rules =================================================================== --- debian/rules (rev 0) +++ debian/rules 2006-10-16 06:42:21 UTC (rev 1) @@ -0,0 +1,106 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +export DH_VERBOSE=1 +DESTDIR=$(CURDIR)/debian/balder2d + + + +CFLAGS = -Wall -g + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +configure: configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + + touch configure-stamp + + +build: build-stamp + +build-stamp: configure-stamp + dh_testdir + + # Add here commands to compile the package. + scons + #docbook-to-man debian/balder2d.sgml > balder2d.1 + + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -f ... [truncated message content] |