http://wiki.xmoto.tuxfamily.org/api.php?action=feedcontributions&user=Wiki.xmoto&feedformat=atomX-Moto - User contributions [en]2024-03-28T09:40:41ZUser contributionsMediaWiki 1.28.2http://wiki.xmoto.tuxfamily.org/index.php?title=Main_Page&diff=6999Main Page2020-04-25T19:57:19Z<p>Wiki.xmoto: </p>
<hr />
<div>__NOTOC__<br />
[[de:Main_Page|Deutsch]] - [[ca:Main_Page|Català]] - [[es:Main_Page|Español]] - [[fr:Main_Page|Français]] - [[no:Main_Page|Norsk]] - [[pt:Main_Page|Portuguese]] -<br />
[[fi:Main_Page|Suomi]]<br />
<br />
== Information ==<br />
<br />
* [http://xmoto.tuxfamily.org/ X-Moto Home Page]<br />
* [https://xmoto.atlassian.net/wiki/spaces/XMOTOW/pages/6946836/Manual X-Moto Manual]<br />
* [[How to install X-Moto on your computer]]<br />
* [http://forum.xmoto.tuxfamily.org X-Moto Forum]<br />
* [[Server command line|X-Moto server command line]]<br />
* [[Screenshots]]<br />
* [[Faq|FAQ]]<br />
* [[Philip's_xmoto_guide|Philips X-Moto Guide]]<br />
* [[X-Moto on PSP]]<br />
* [[IRC tutorial]]<br />
* [[Public X-Moto servers]]<br />
* [[Wiki Contributors]]<br />
* [[Server rules (slave mode)]]<br />
* [[Network Rules]]<br />
<br />
<br />
'''Features'''<br />
* [[Use X-Moto on a USB-Key]]<br />
* [[Use private rooms in game (instead of World Highscores)]]<br />
* [[Joystick|Using a joystick to control the game]]<br />
* [[Wiimote|Using a wiimote to control the game]]<br />
* [[record_video|Recording Ingame Videos]]<br />
* [[Convert a replay to a video]]<br />
* [[Recording videos with an external program]]<br />
* [[how to capture, edit and create a movie]]<br />
<br />
== Level Creation ==<br />
<br />
*[[About good level design]]<br />
*[[Level Checklist (for Creators and Testers)]]<br />
*[[*Awesome~Style*'s Gfx Guide]]<br />
*[[Level FAQ]]<br />
*[[Notes on Checkpoints]]<br />
<br />
'''Inksmoto Level Editor'''<br />
* [[How to install Inksmoto into Inkscape]]<br />
* [[How to create smooth levels using Inkscape|How to create a smooth level with Inksmoto Level Editor]]<br />
* [[xmoto-edit|How to create a level with xmoto-edit (DEPRECATED)]]<br />
* [[Scripted levels|How to create a scripted level (please look scripting section below)]]<br />
* [[Others tips to make levels]]<br />
* [[Shortcuts for most used actions in the editor]]<br />
* [[Video tutorials]]<br />
* [[Known Issues when using Inksmoto]]<br />
'''Themes and Graphics'''<br />
* [[Make a theme|Make a theme/add a new sprite or texture]]<br />
* [[textures_creation|How to handle your own textures for level creation]]<br />
* [[How to create, test and upload an animated sprite]]<br />
* [[Background graphics pool|Background Graphics Pool]]<br />
* [[sprites_pool|Sprites Pool 4 Gimp]]<br />
* [[Svg Block Pool]]<br />
* [[Transparent Water|How to make transparent water]]<br />
'''Scripting'''<br />
* [[Basics of Scripting]]<br />
* [[How to include Scripts into a Level]]<br />
* [[LTS - Learn To Script Series]]<br />
* [[Funtions for Game Events| Funtions for Game Events (Zones, OnSomersaults, etc.)]]<br />
* [[Scripted levels| List of Scripting Functions]]<br />
* [[Level alteration Functions| Level alteration Functions (Blocks, Physics, etc.)]]<br />
* [[Player Functions| Player Functions (Win, Kill,Positioning, etc.) )]]<br />
* [[Camera Functions| Camera Functions (Zooming, Rotation, etc.)]]<br />
* [[Sound Functions]]<br />
'''Mods, Scripts and Helpers'''<br />
* [[Skate Park Mod]]<br />
* [[Camera Scripts]]<br />
* [[Helpers]]<br />
<br />
== Building XMoto ==<br />
<br />
'''Heads up! We're in the process of moving our codebase to [https://www.github.com/xmoto/xmoto Github], so please check back here frequently for changes!'''<br />
<br />
* [[Build for Unix (like GNU/Linux)]]<br />
* [[Build for MacOSX]]<br />
* [[Build for Windows]]<br />
* [[Build from SVN]]<br />
* [[Build with CMake (experimental)]]<br />
<br />
== Administration ==<br />
* [[How to validate a highscore]]<br />
* [[How to validate a level]]<br />
* [[How to validate a sprite]]<br />
* [[Forum's administration changes]]<br />
* [[How to unvalidate a highscore]]<br />
* [[How to update po pictures]]<br />
* [[How to remove a validated level]]<br />
<br />
== Development ==<br />
* [[Code documentation]]<br />
* [[Contributions|How to contribute to X-Moto]]<br />
* [[Translate X-Moto and X-Moto Website into your language]]<br />
* [[File formats]]<br />
* [[Net protocol]]<br />
* [[Access to the website sources]]<br />
* [[SDL_gfx|SDL_gfx porting effort]]<br />
* [[Chipmunk integration]]<br />
* [[Level collection list]]<br />
* [[Multiplayer design]]<br />
* [[Deliver a X-Moto version MEMO]]<br />
* [[Rooms competition idea]]<br />
* [[How to make lan server]]<br />
* [[XMoto tuxfamily infrastructure]]</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Main_Page&diff=6890Main Page2017-04-21T16:17:10Z<p>Wiki.xmoto: /* Building XMoto */</p>
<hr />
<div>__NOTOC__<br />
<br />
[[de:Main_Page|Deutsch]] - [[ca:Main_Page|Català]] - [[es:Main_Page|Español]] - [[fr:Main_Page|Français]] - [[no:Main_Page|Norsk]] - [[pt:Main_Page|Portuguese]] -<br />
[[fi:Main_Page|Suomi]]<br />
<br />
== Information ==<br />
<br />
* [http://xmoto.tuxfamily.org/ X-Moto Home Page]<br />
* [[manual|X-Moto Manual]]<br />
* [[How to install X-Moto on your computer]]<br />
* [http://forum.xmoto.tuxfamily.org X-Moto Forum]<br />
* [[Server command line|X-Moto server command line]]<br />
* [[Screenshots]]<br />
* [[Faq|FAQ]]<br />
* [[Philip's_xmoto_guide|Philips X-Moto Guide]]<br />
* [[X-Moto on PSP]]<br />
* [[IRC tutorial]]<br />
* [[Public X-Moto servers]]<br />
* [[Wiki Contributors]]<br />
* [[Server rules (slave mode)]]<br />
* [[Network Rules]]<br />
<br />
<br />
'''Features'''<br />
* [[Use X-Moto on a USB-Key]]<br />
* [[Use private rooms in game (instead of World Highscores)]]<br />
* [[Joystick|Using a joystick to control the game]]<br />
* [[Wiimote|Using a wiimote to control the game]]<br />
* [[record_video|Recording Ingame Videos]]<br />
* [[Convert a replay to a video]]<br />
* [[Recording videos with an external program]]<br />
* [[how to capture, edit and create a movie]]<br />
<br />
== Level Creation ==<br />
<br />
*[[About good level design]]<br />
*[[Level Checklist (for Creators and Testers)]]<br />
*[[*Awesome~Style*'s Gfx Guide]]<br />
*[[Level FAQ]]<br />
*[[Notes on Checkpoints]]<br />
<br />
'''Inksmoto Level Editor'''<br />
* [[How to install Inksmoto into Inkscape]]<br />
* [[How to create smooth levels using Inkscape|How to create a smooth level with Inksmoto Level Editor]]<br />
* [[xmoto-edit|How to create a level with xmoto-edit (DEPRECATED)]]<br />
* [[Scripted levels|How to create a scripted level (please look scripting section below)]]<br />
* [[Others tips to make levels]]<br />
* [[Shortcuts for most used actions in the editor]]<br />
* [[Video tutorials]]<br />
* [[Known Issues when using Inksmoto]]<br />
'''Themes and Graphics'''<br />
* [[Make a theme|Make a theme/add a new sprite or texture]]<br />
* [[textures_creation|How to handle your own textures for level creation]]<br />
* [[How to create, test and upload an animated sprite]]<br />
* [[Background graphics pool|Background Graphics Pool]]<br />
* [[sprites_pool|Sprites Pool 4 Gimp]]<br />
* [[Svg Block Pool]]<br />
* [[Transparent Water|How to make transparent water]]<br />
'''Scripting'''<br />
* [[Basics of Scripting]]<br />
* [[How to include Scripts into a Level]]<br />
* [[LTS - Learn To Script Series]]<br />
* [[Funtions for Game Events| Funtions for Game Events (Zones, OnSomersaults, etc.)]]<br />
* [[Scripted levels| List of Scripting Functions]]<br />
* [[Level alteration Functions| Level alteration Functions (Blocks, Physics, etc.)]]<br />
* [[Player Functions| Player Functions (Win, Kill,Positioning, etc.) )]]<br />
* [[Camera Functions| Camera Functions (Zooming, Rotation, etc.)]]<br />
* [[Sound Functions]]<br />
'''Mods, Scripts and Helpers'''<br />
* [[Skate Park Mod]]<br />
* [[Camera Scripts]]<br />
* [[Helpers]]<br />
<br />
== Building XMoto ==<br />
<br />
'''Heads up! We're in the process of moving our codebase to [https://www.github.com/xmoto/xmoto Github], so please check back here frequently for changes!'''<br />
<br />
* [[Build for Unix (like GNU/Linux)]]<br />
* [[Build for MacOSX]]<br />
* [[Build for Windows]]<br />
* [[Build from SVN]]<br />
* [[Build with CMake (experimental)]]<br />
<br />
== Administration ==<br />
* [[How to validate a highscore]]<br />
* [[How to validate a level]]<br />
* [[How to validate a sprite]]<br />
* [[Forum's administration changes]]<br />
* [[How to unvalidate a highscore]]<br />
* [[How to update po pictures]]<br />
* [[How to remove a validated level]]<br />
<br />
== Development ==<br />
* [[Code documentation]]<br />
* [[Contributions|How to contribute to X-Moto]]<br />
* [[Translate X-Moto and X-Moto Website into your language]]<br />
* [[File formats]]<br />
* [[Net protocol]]<br />
* [[Access to the website sources]]<br />
* [[SDL_gfx|SDL_gfx porting effort]]<br />
* [[Chipmunk integration]]<br />
* [[Level collection list]]<br />
* [[Multiplayer design]]<br />
* [[Deliver a X-Moto version MEMO]]<br />
* [[Rooms competition idea]]<br />
* [[How to make lan server]]<br />
* [[XMoto tuxfamily infrastructure]]</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Main_Page&diff=6889Main Page2017-04-21T16:15:48Z<p>Wiki.xmoto: /* Building XMoto */ adding link to github</p>
<hr />
<div>__NOTOC__<br />
<br />
[[de:Main_Page|Deutsch]] - [[ca:Main_Page|Català]] - [[es:Main_Page|Español]] - [[fr:Main_Page|Français]] - [[no:Main_Page|Norsk]] - [[pt:Main_Page|Portuguese]] -<br />
[[fi:Main_Page|Suomi]]<br />
<br />
== Information ==<br />
<br />
* [http://xmoto.tuxfamily.org/ X-Moto Home Page]<br />
* [[manual|X-Moto Manual]]<br />
* [[How to install X-Moto on your computer]]<br />
* [http://forum.xmoto.tuxfamily.org X-Moto Forum]<br />
* [[Server command line|X-Moto server command line]]<br />
* [[Screenshots]]<br />
* [[Faq|FAQ]]<br />
* [[Philip's_xmoto_guide|Philips X-Moto Guide]]<br />
* [[X-Moto on PSP]]<br />
* [[IRC tutorial]]<br />
* [[Public X-Moto servers]]<br />
* [[Wiki Contributors]]<br />
* [[Server rules (slave mode)]]<br />
* [[Network Rules]]<br />
<br />
<br />
'''Features'''<br />
* [[Use X-Moto on a USB-Key]]<br />
* [[Use private rooms in game (instead of World Highscores)]]<br />
* [[Joystick|Using a joystick to control the game]]<br />
* [[Wiimote|Using a wiimote to control the game]]<br />
* [[record_video|Recording Ingame Videos]]<br />
* [[Convert a replay to a video]]<br />
* [[Recording videos with an external program]]<br />
* [[how to capture, edit and create a movie]]<br />
<br />
== Level Creation ==<br />
<br />
*[[About good level design]]<br />
*[[Level Checklist (for Creators and Testers)]]<br />
*[[*Awesome~Style*'s Gfx Guide]]<br />
*[[Level FAQ]]<br />
*[[Notes on Checkpoints]]<br />
<br />
'''Inksmoto Level Editor'''<br />
* [[How to install Inksmoto into Inkscape]]<br />
* [[How to create smooth levels using Inkscape|How to create a smooth level with Inksmoto Level Editor]]<br />
* [[xmoto-edit|How to create a level with xmoto-edit (DEPRECATED)]]<br />
* [[Scripted levels|How to create a scripted level (please look scripting section below)]]<br />
* [[Others tips to make levels]]<br />
* [[Shortcuts for most used actions in the editor]]<br />
* [[Video tutorials]]<br />
* [[Known Issues when using Inksmoto]]<br />
'''Themes and Graphics'''<br />
* [[Make a theme|Make a theme/add a new sprite or texture]]<br />
* [[textures_creation|How to handle your own textures for level creation]]<br />
* [[How to create, test and upload an animated sprite]]<br />
* [[Background graphics pool|Background Graphics Pool]]<br />
* [[sprites_pool|Sprites Pool 4 Gimp]]<br />
* [[Svg Block Pool]]<br />
* [[Transparent Water|How to make transparent water]]<br />
'''Scripting'''<br />
* [[Basics of Scripting]]<br />
* [[How to include Scripts into a Level]]<br />
* [[LTS - Learn To Script Series]]<br />
* [[Funtions for Game Events| Funtions for Game Events (Zones, OnSomersaults, etc.)]]<br />
* [[Scripted levels| List of Scripting Functions]]<br />
* [[Level alteration Functions| Level alteration Functions (Blocks, Physics, etc.)]]<br />
* [[Player Functions| Player Functions (Win, Kill,Positioning, etc.) )]]<br />
* [[Camera Functions| Camera Functions (Zooming, Rotation, etc.)]]<br />
* [[Sound Functions]]<br />
'''Mods, Scripts and Helpers'''<br />
* [[Skate Park Mod]]<br />
* [[Camera Scripts]]<br />
* [[Helpers]]<br />
<br />
== Building XMoto ==<br />
<br />
'''Heads up! We're in the process of moving to our codebase to our [https://www.github.com/xmoto/xmoto Github], so please check back here frequently for changes!'''<br />
<br />
* [[Build for Unix (like GNU/Linux)]]<br />
* [[Build for MacOSX]]<br />
* [[Build for Windows]]<br />
* [[Build from SVN]]<br />
* [[Build with CMake (experimental)]]<br />
<br />
== Administration ==<br />
* [[How to validate a highscore]]<br />
* [[How to validate a level]]<br />
* [[How to validate a sprite]]<br />
* [[Forum's administration changes]]<br />
* [[How to unvalidate a highscore]]<br />
* [[How to update po pictures]]<br />
* [[How to remove a validated level]]<br />
<br />
== Development ==<br />
* [[Code documentation]]<br />
* [[Contributions|How to contribute to X-Moto]]<br />
* [[Translate X-Moto and X-Moto Website into your language]]<br />
* [[File formats]]<br />
* [[Net protocol]]<br />
* [[Access to the website sources]]<br />
* [[SDL_gfx|SDL_gfx porting effort]]<br />
* [[Chipmunk integration]]<br />
* [[Level collection list]]<br />
* [[Multiplayer design]]<br />
* [[Deliver a X-Moto version MEMO]]<br />
* [[Rooms competition idea]]<br />
* [[How to make lan server]]<br />
* [[XMoto tuxfamily infrastructure]]</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Build_from_SVN&diff=6257Build from SVN2012-05-02T20:49:03Z<p>Wiki.xmoto: /* Ok, I can build it ! */</p>
<hr />
<div>[[Ca:Compilacio SVN|Català]] - [[Es:Compilacion SVN|Español]] - [[No:Kompilere_fra_SVN|Norsk]] - [[Fr:Compilation_depuis_SVN|Francais]]<br />
<br />
<br />
== SVN ? ==<br />
<br />
X-Moto uses SVN to develop the game. With SVN files, you have access to new features and... new bugs.<br />
Use svn files only if you know what you are doing. otherwise just go download the stable release from the main page http://xmoto.tuxfamily.org<br />
<br />
You must know that sources downloaded from SVN should not be compiled sometimes !<br />
<br />
[http://en.wikipedia.org/wiki/Subversion_%28software%29 http://en.wikipedia.org/wiki/Subversion_%28software%29]<br />
<br />
=== Download latest files with SVN ===<br />
<br />
The first time you download the svn version you will need to download all the files under "xmoto/" :<br />
<br />
svn co svn://svn.tuxfamily.org/svnroot/xmoto/xmoto/trunk xmoto<br />
<br />
or if you are a developer<br />
<br />
svn co svn+ssh://$USER@svn.tuxfamily.org/svnroot/xmoto/xmoto/trunk xmoto<br />
<br />
(you can upload you public ssh keys to the root of your ftp account on ftp://$USER@ftp.tuxfamily.org/ in a file called ssh_keys)<br />
<br />
Note that there are a lot of graphical clients to use svn if you're afraid of the command line.<br />
<br />
=== Update the files ===<br />
<br />
When you have already download from svn once, you can update the files with this command :<br />
<br />
# svn update<br />
<br />
=== Web access ===<br />
http://svn.tuxfamily.org/viewvc.cgi/?root=xmoto_xmoto<br />
<br />
=== Notification via rss ===<br />
http://svnweb.tuxfamily.org/rss.php?repname=xmoto+%28xmoto%29&path=%2F&rev=0&sc=0&isdir=1<br />
<br />
== Build ==<br />
<br />
=== Dependencies ===<br />
<br />
X-Moto must have the following to compile properly :<br />
<br />
* Latest gcc and g++<br />
* SDL development libraries and headers<br />
* OpenGL development libraries and headers<br />
* SDL_mixer with headers<br />
* SDL_net with headers<br />
* libjpeg with headers<br />
* libpng with headers<br />
* zlib with headers<br />
* libbzip2 with headers<br />
* liblua50 with headers<br />
* liblualib50 with headers<br />
* libode with headers<br />
* libcurl3 with headers<br />
* libxml2 development libraries<br />
* automake >= 1.9<br />
<br />
sudo apt-get install subversion build-essential automake1.9 libsqlite3-dev libjpeg62-dev libbz2-dev libsdl-mixer1.2-dev<br />
sudo apt-get install libsdl-net1.2-dev liblua5.1-0-dev libode-dev zlib1g-dev libpng12-dev libglu1-mesa-dev libsdl-ttf2.0-dev<br />
sudo apt-get install libcurl3-openssl-dev libxdg-basedir-dev libxml2-dev gettext<br />
<br />
To build windows version from linux, you'll need the following extra packages <br />
sudo apt-get install tofrodos nsis mingw32<br />
<br />
Use mingw32 3.4.5.20060117.1.dfsg-3 from gusty for ubuntu otherwise, .exe built are instables<br />
<br />
But with the new features, new dependencies can be asked.<br />
<br />
=== automatic builds ===<br />
sudo apt-get install devscripts libcurl4-gnutls-dev debhelper<br />
mkdir $HOME/xm/builds<br />
cd $HOME/xm/builds<br />
cp /path/to/svn/tools/tuxfamily_fullBuild.sh .<br />
cp /path/to/svn/tools/buildPackages.sh .<br />
svn co svn://svn.tuxfamily.org/svnroot/xmoto/xmoto/trunk trunk<br />
mkdir sources<br />
mkdir windows<br />
# edit the 5 first lines of tuxfamily_fullBuild.sh to change the path and the username for the scp<br />
./tuxfamily_fullBuild.sh<br />
<br />
=== Ok, I can build it ! ===<br />
<br />
$ cd xmoto<br />
$ sh ./bootstrap<br />
$ ./configure<br />
$ make<br />
# make install<br />
<br />
Right now, you can start xmoto with "<code>src/xmoto</code>".<br />
<br />
If sh ./bootstrap failed, you have to edit the ./bootstrap file manually:<br />
aclocal -I config $ACLOCAL_FLAGS\<br />
&& automake --gnu --add-missing --copy \<br />
<br />
so it looks like that:<br />
aclocal-1.9 -I config $ACLOCAL_FLAGS\<br />
&& automake-1.9 --gnu --add-missing --copy \<br />
<br />
=== Doesn't work ? ===<br />
<br />
xmoto.bin not found !<br />
You probably reconfigure without making clean. Do:<br />
make clean<br />
./configure<br />
make<br />
sudo make install<br />
Problems with translations:<br />
make[1]: Entering directory `/home/yourusername/xmoto-dev-folder/po'<br />
rm -f fr_FR.gmo && : -c --statistics -o fr_FR.gmo fr_FR.po<br />
mv: cannot stat `t-fr_FR.gmo': No such file or directory<br />
make[1]: *** [fr_FR.gmo] Error 1<br />
make[1]: Leaving directory `/home/tuhoojabotti/xmoto-dev-folder/po'<br />
make: *** [update-po] Error 2<br />
<br />
SOLUTION (ought to work):<br />
sudo apt-get install gettext<br />
./configure<br />
cd po/<br />
make update-po<br />
cd ..<br />
make<br />
sudo make install<br />
<br />
=== Need help ? ===<br />
Join us on IRC, the channel is #xmoto on the freenode servers.<br />
irc://irc.freenode.net/xmoto</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Build_from_SVN&diff=6256Build from SVN2012-05-01T19:40:50Z<p>Wiki.xmoto: /* Dependencies */</p>
<hr />
<div>[[Ca:Compilacio SVN|Català]] - [[Es:Compilacion SVN|Español]] - [[No:Kompilere_fra_SVN|Norsk]] - [[Fr:Compilation_depuis_SVN|Francais]]<br />
<br />
<br />
== SVN ? ==<br />
<br />
X-Moto uses SVN to develop the game. With SVN files, you have access to new features and... new bugs.<br />
Use svn files only if you know what you are doing. otherwise just go download the stable release from the main page http://xmoto.tuxfamily.org<br />
<br />
You must know that sources downloaded from SVN should not be compiled sometimes !<br />
<br />
[http://en.wikipedia.org/wiki/Subversion_%28software%29 http://en.wikipedia.org/wiki/Subversion_%28software%29]<br />
<br />
=== Download latest files with SVN ===<br />
<br />
The first time you download the svn version you will need to download all the files under "xmoto/" :<br />
<br />
svn co svn://svn.tuxfamily.org/svnroot/xmoto/xmoto/trunk xmoto<br />
<br />
or if you are a developer<br />
<br />
svn co svn+ssh://$USER@svn.tuxfamily.org/svnroot/xmoto/xmoto/trunk xmoto<br />
<br />
(you can upload you public ssh keys to the root of your ftp account on ftp://$USER@ftp.tuxfamily.org/ in a file called ssh_keys)<br />
<br />
Note that there are a lot of graphical clients to use svn if you're afraid of the command line.<br />
<br />
=== Update the files ===<br />
<br />
When you have already download from svn once, you can update the files with this command :<br />
<br />
# svn update<br />
<br />
=== Web access ===<br />
http://svn.tuxfamily.org/viewvc.cgi/?root=xmoto_xmoto<br />
<br />
=== Notification via rss ===<br />
http://svnweb.tuxfamily.org/rss.php?repname=xmoto+%28xmoto%29&path=%2F&rev=0&sc=0&isdir=1<br />
<br />
== Build ==<br />
<br />
=== Dependencies ===<br />
<br />
X-Moto must have the following to compile properly :<br />
<br />
* Latest gcc and g++<br />
* SDL development libraries and headers<br />
* OpenGL development libraries and headers<br />
* SDL_mixer with headers<br />
* SDL_net with headers<br />
* libjpeg with headers<br />
* libpng with headers<br />
* zlib with headers<br />
* libbzip2 with headers<br />
* liblua50 with headers<br />
* liblualib50 with headers<br />
* libode with headers<br />
* libcurl3 with headers<br />
* libxml2 development libraries<br />
* automake >= 1.9<br />
<br />
sudo apt-get install subversion build-essential automake1.9 libsqlite3-dev libjpeg62-dev libbz2-dev libsdl-mixer1.2-dev<br />
sudo apt-get install libsdl-net1.2-dev liblua5.1-0-dev libode-dev zlib1g-dev libpng12-dev libglu1-mesa-dev libsdl-ttf2.0-dev<br />
sudo apt-get install libcurl3-openssl-dev libxdg-basedir-dev libxml2-dev gettext<br />
<br />
To build windows version from linux, you'll need the following extra packages <br />
sudo apt-get install tofrodos nsis mingw32<br />
<br />
Use mingw32 3.4.5.20060117.1.dfsg-3 from gusty for ubuntu otherwise, .exe built are instables<br />
<br />
But with the new features, new dependencies can be asked.<br />
<br />
=== Ok, I can build it ! ===<br />
<br />
$ cd xmoto<br />
$ sh ./bootstrap<br />
$ ./configure<br />
$ make<br />
# make install<br />
<br />
Right now, you can start xmoto with "<code>src/xmoto</code>".<br />
<br />
If sh ./bootstrap failed, you have to edit the ./bootstrap file manually:<br />
aclocal -I config $ACLOCAL_FLAGS\<br />
&& automake --gnu --add-missing --copy \<br />
<br />
so it looks like that:<br />
aclocal-1.9 -I config $ACLOCAL_FLAGS\<br />
&& automake-1.9 --gnu --add-missing --copy \<br />
<br />
=== Doesn't work ? ===<br />
<br />
xmoto.bin not found !<br />
You probably reconfigure without making clean. Do:<br />
make clean<br />
./configure<br />
make<br />
sudo make install<br />
Problems with translations:<br />
make[1]: Entering directory `/home/yourusername/xmoto-dev-folder/po'<br />
rm -f fr_FR.gmo && : -c --statistics -o fr_FR.gmo fr_FR.po<br />
mv: cannot stat `t-fr_FR.gmo': No such file or directory<br />
make[1]: *** [fr_FR.gmo] Error 1<br />
make[1]: Leaving directory `/home/tuhoojabotti/xmoto-dev-folder/po'<br />
make: *** [update-po] Error 2<br />
<br />
SOLUTION (ought to work):<br />
sudo apt-get install gettext<br />
./configure<br />
cd po/<br />
make update-po<br />
cd ..<br />
make<br />
sudo make install<br />
<br />
=== Need help ? ===<br />
Join us on IRC, the channel is #xmoto on the freenode servers.<br />
irc://irc.freenode.net/xmoto</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Main_Page&diff=6250Main Page2011-10-24T20:43:31Z<p>Wiki.xmoto: </p>
<hr />
<div>__NOTOC__<br />
<br />
[[de:Main_Page|Deutsch]] - [[ca:Main_Page|Català]] - [[es:Main_Page|Español]] - [[fr:Main_Page|Français]] - [[no:Main_Page|Norsk]] - [[pt:Main_Page|Portuguese]] -<br />
[[fi:Main_Page|Suomi]]<br />
<br />
== Information ==<br />
<br />
* [http://xmoto.tuxfamily.org/ Return to Home Page]<br />
* [[manual|X-Moto Manual]]<br />
* [[Server command line|X-Moto server command line]]<br />
* [[Screenshots]]<br />
* [[Faq|FAQ]]<br />
* [[Philip's_xmoto_guide|Philips X-Moto Guide]]<br />
* [[X-Moto on PSP]]<br />
* [[IRC tutorial]]<br />
* [[Public X-Moto servers]]<br />
* [[Wiki Contributors]]<br />
* [[Server rules (slave mode)]]<br />
* [[Network Rules]]<br />
<br />
== Level Creation ==<br />
<br />
*[[About good level design]]<br />
*[[Level Checklist (for Creators and Testers)]]<br />
*[[Level FAQ]]<br />
*[[Notes on Checkpoints]]<br />
<br />
'''Editor'''<br />
* [[How to create smooth levels using Inkscape|How to create a smooth level with Inksmoto Level Editor]]<br />
* [[xmoto-edit|How to create a level with xmoto-edit (DEPRECATED)]]<br />
* [[Scripted levels|How to create a scripted level (please look scripting section below)]]<br />
* [[Others tips to make levels]]<br />
* [[Shortcuts for most used actions in the editor]]<br />
* [[Video tutorials]]<br />
'''Themes and Graphics'''<br />
* [[Make a theme|Make a theme/add a new sprite or texture]]<br />
* [[textures_creation|How to handle your own textures for level creation]]<br />
* [[How to create, test and upload an animated sprite]]<br />
* [[Background graphics pool|Background Graphics Pool]]<br />
* [[sprites_pool|Sprites Pool 4 Gimp]]<br />
* [[Svg Block Pool]]<br />
* [[Transparent Water|How to make transparent water]]<br />
'''Scripting'''<br />
* [[Basics of Scripting]]<br />
* [[How to include Scripts into a Level]]<br />
* [[LTS - Learn To Script Series]]<br />
* [[Funtions for Game Events| Funtions for Game Events (Zones, OnSomersaults, etc.)]]<br />
* [[Scripted levels| List of Scripting Functions]]<br />
* [[Level alteration Functions| Level alteration Functions (Blocks, Physics, etc.)]]<br />
* [[Player Functions| Player Functions (Win, Kill,Positioning, etc.) )]]<br />
* [[Camera Functions| Camera Functions (Zooming, Rotation, etc.)]]<br />
* [[Sound Functions]]<br />
'''Mods, Scripts and Helpers'''<br />
* [[Skate Park Mod]]<br />
* [[Camera Scripts]]<br />
* [[Helpers]]<br />
'''Developing'''<br />
* [[Getting svn of inksmoto (svg2lvl) for windows using Tortoise SVN]]<br />
<br />
== Building XMoto ==<br />
* [[Build for Unix (like GNU/Linux)]]<br />
* [[Build for MacOSX]]<br />
* [[Build for Windows]]<br />
* [[Build from SVN]]<br />
* [[Build with CMake (experimental)]]<br />
<br />
== Administration ==<br />
* [[How to validate a highscore]]<br />
* [[How to validate a level]]<br />
* [[How to validate a sprite]]<br />
* [[Forum's administration changes]]<br />
* [[How to unvalidate a highscore]]<br />
* [[How to update po pictures]]<br />
* [[How to remove a validated level]]<br />
<br />
== Development ==<br />
* [[Code documentation]]<br />
* [[Contributions|How to contribute to X-Moto]]<br />
* [[Translate X-Moto and X-Moto Website into your language]]<br />
* [[File formats]]<br />
* [[Net protocol]]<br />
* [[Access to the website sources]]<br />
* [[SDL_gfx|SDL_gfx porting effort]]<br />
* [[Chipmunk integration]]<br />
* [[Level collection list]]<br />
* [[Multiplayer design]]<br />
* [[Deliver a X-Moto version MEMO]]<br />
* [[Rooms competition idea]]</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Main_Page&diff=6249Main Page2011-10-24T20:43:05Z<p>Wiki.xmoto: /* Development */</p>
<hr />
<div>__NOTOC__<br />
<br />
[[de:Main_Page|Deutsch]] - [[ca:Main_Page|Català]] - [[es:Main_Page|Español]] - [[fr:Main_Page|Français]] - [[no:Main_Page|Norsk]] - [[pt:Main_Page|Portuguese]] -<br />
[[fi:Main_Page|Suomi]]<br />
<br />
== Information ==<br />
<br />
* [http://xmoto.tuxfamily.org/ Return to Home Page]<br />
* [[manual|X-Moto Manual]]<br />
* [[Server command line|X-Moto server command line]]<br />
* [[Screenshots]]<br />
* [[Faq|FAQ]]<br />
* [[Philip's_xmoto_guide|Philips X-Moto Guide]]<br />
* [[X-Moto on PSP]]<br />
* [[IRC tutorial]]<br />
* [[Public X-Moto servers]]<br />
* [[Wiki Contributors]]<br />
* [[Server rules (slave mode)]]<br />
* [[Network Rules]]<br />
<br />
== Level Creation ==<br />
<br />
*[[About good level design]]<br />
*[[Level Checklist (for Creators and Testers)]]<br />
*[[Level FAQ]]<br />
*[[Notes on Checkpoints]]<br />
<br />
'''Editor'''<br />
* [[How to create smooth levels using Inkscape|How to create a smooth level with Inksmoto Level Editor]]<br />
* [[xmoto-edit|How to create a level with xmoto-edit (DEPRECATED)]]<br />
* [[Scripted levels|How to create a scripted level (please look scripting section below)]]<br />
* [[Others tips to make levels]]<br />
* [[Shortcuts for most used actions in the editor]]<br />
* [[Video tutorials]]<br />
'''Themes and Graphics'''<br />
* [[Make a theme|Make a theme/add a new sprite or texture]]<br />
* [[textures_creation|How to handle your own textures for level creation]]<br />
* [[How to create, test and upload an animated sprite]]<br />
* [[Background graphics pool|Background Graphics Pool]]<br />
* [[sprites_pool|Sprites Pool 4 Gimp]]<br />
* [[Svg Block Pool]]<br />
* [[Transparent Water|How to make transparent water]]<br />
'''Scripting'''<br />
* [[Basics of Scripting]]<br />
* [[How to include Scripts into a Level]]<br />
* [[LTS - Learn To Script Series]]<br />
* [[Funtions for Game Events| Funtions for Game Events (Zones, OnSomersaults, etc.)]]<br />
* [[Scripted levels| List of Scripting Functions]]<br />
* [[Level alteration Functions| Level alteration Functions (Blocks, Physics, etc.)]]<br />
* [[Player Functions| Player Functions (Win, Kill,Positioning, etc.) )]]<br />
* [[Camera Functions| Camera Functions (Zooming, Rotation, etc.)]]<br />
* [[Sound Functions]]<br />
'''Mods, Scripts and Helpers'''<br />
* [[Skate Park Mod]]<br />
* [[Camera Scripts]]<br />
* [[Helpers]]<br />
'''Developing'''<br />
* [[Getting svn of inksmoto (svg2lvl) for windows using Tortoise SVN]]<br />
<br />
== Building XMoto ==<br />
* [[Build for Unix (like GNU/Linux)]]<br />
* [[Build for MacOSX]]<br />
* [[Build for Windows]]<br />
* [[Build from SVN]]<br />
* [[Build with CMake (experimental)]]<br />
<br />
== Administration ==<br />
* [[How to validate a highscore]]<br />
* [[How to validate a level]]<br />
* [[How to validate a sprite]]<br />
* [[Forum's administration changes]]<br />
* [[How to unvalidate a highscore]]<br />
* [[How to update po pictures]]<br />
* [[How to remove a validated level]]<br />
<br />
== Development ==<br />
* [[Code documentation]]<br />
* [[Contributions|How to contribute to X-Moto]]<br />
* [[Translate X-Moto and X-Moto Website into your language]]<br />
* [[http://www.diamondlinks.net/ Link Builder]]<br />
* [[File formats]]<br />
* [[Net protocol]]<br />
* [[Access to the website sources]]<br />
* [[SDL_gfx|SDL_gfx porting effort]]<br />
* [[Chipmunk integration]]<br />
* [[Level collection list]]<br />
* [[Multiplayer design]]<br />
* [[Deliver a X-Moto version MEMO]]<br />
* [[Rooms competition idea]]</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Main_Page&diff=6248Main Page2011-10-24T20:42:57Z<p>Wiki.xmoto: /* Development */</p>
<hr />
<div>__NOTOC__<br />
<br />
[[de:Main_Page|Deutsch]] - [[ca:Main_Page|Català]] - [[es:Main_Page|Español]] - [[fr:Main_Page|Français]] - [[no:Main_Page|Norsk]] - [[pt:Main_Page|Portuguese]] -<br />
[[fi:Main_Page|Suomi]]<br />
<br />
== Information ==<br />
<br />
* [http://xmoto.tuxfamily.org/ Return to Home Page]<br />
* [[manual|X-Moto Manual]]<br />
* [[Server command line|X-Moto server command line]]<br />
* [[Screenshots]]<br />
* [[Faq|FAQ]]<br />
* [[Philip's_xmoto_guide|Philips X-Moto Guide]]<br />
* [[X-Moto on PSP]]<br />
* [[IRC tutorial]]<br />
* [[Public X-Moto servers]]<br />
* [[Wiki Contributors]]<br />
* [[Server rules (slave mode)]]<br />
* [[Network Rules]]<br />
<br />
== Level Creation ==<br />
<br />
*[[About good level design]]<br />
*[[Level Checklist (for Creators and Testers)]]<br />
*[[Level FAQ]]<br />
*[[Notes on Checkpoints]]<br />
<br />
'''Editor'''<br />
* [[How to create smooth levels using Inkscape|How to create a smooth level with Inksmoto Level Editor]]<br />
* [[xmoto-edit|How to create a level with xmoto-edit (DEPRECATED)]]<br />
* [[Scripted levels|How to create a scripted level (please look scripting section below)]]<br />
* [[Others tips to make levels]]<br />
* [[Shortcuts for most used actions in the editor]]<br />
* [[Video tutorials]]<br />
'''Themes and Graphics'''<br />
* [[Make a theme|Make a theme/add a new sprite or texture]]<br />
* [[textures_creation|How to handle your own textures for level creation]]<br />
* [[How to create, test and upload an animated sprite]]<br />
* [[Background graphics pool|Background Graphics Pool]]<br />
* [[sprites_pool|Sprites Pool 4 Gimp]]<br />
* [[Svg Block Pool]]<br />
* [[Transparent Water|How to make transparent water]]<br />
'''Scripting'''<br />
* [[Basics of Scripting]]<br />
* [[How to include Scripts into a Level]]<br />
* [[LTS - Learn To Script Series]]<br />
* [[Funtions for Game Events| Funtions for Game Events (Zones, OnSomersaults, etc.)]]<br />
* [[Scripted levels| List of Scripting Functions]]<br />
* [[Level alteration Functions| Level alteration Functions (Blocks, Physics, etc.)]]<br />
* [[Player Functions| Player Functions (Win, Kill,Positioning, etc.) )]]<br />
* [[Camera Functions| Camera Functions (Zooming, Rotation, etc.)]]<br />
* [[Sound Functions]]<br />
'''Mods, Scripts and Helpers'''<br />
* [[Skate Park Mod]]<br />
* [[Camera Scripts]]<br />
* [[Helpers]]<br />
'''Developing'''<br />
* [[Getting svn of inksmoto (svg2lvl) for windows using Tortoise SVN]]<br />
<br />
== Building XMoto ==<br />
* [[Build for Unix (like GNU/Linux)]]<br />
* [[Build for MacOSX]]<br />
* [[Build for Windows]]<br />
* [[Build from SVN]]<br />
* [[Build with CMake (experimental)]]<br />
<br />
== Administration ==<br />
* [[How to validate a highscore]]<br />
* [[How to validate a level]]<br />
* [[How to validate a sprite]]<br />
* [[Forum's administration changes]]<br />
* [[How to unvalidate a highscore]]<br />
* [[How to update po pictures]]<br />
* [[How to remove a validated level]]<br />
<br />
== Development ==<br />
* [[Code documentation]]<br />
* [[Contributions|How to contribute to X-Moto]]<br />
* [[Translate X-Moto and X-Moto Website into your language]]<br />
* [[http://www.diamondlinks.net/ Link Builder]]<br />
* [[File formats]]<br />
* [[Net protocol]]<br />
* [[Access to the website sources]]<br />
* [[SDL_gfx|SDL_gfx porting effort]]<br />
* [[Chipmunk integration]]<br />
* [[Level collection list]]<br />
* [[Multiplayer design]]<br />
* [[Deliver a X-Moto version MEMO]]<br />
* [[Rooms competition idea]]<br />
* [[https://www.800paydayloans.com/ payday loans online]]</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Main_Page&diff=6247Main Page2011-10-24T20:42:30Z<p>Wiki.xmoto: /* Level Creation */</p>
<hr />
<div>__NOTOC__<br />
<br />
[[de:Main_Page|Deutsch]] - [[ca:Main_Page|Català]] - [[es:Main_Page|Español]] - [[fr:Main_Page|Français]] - [[no:Main_Page|Norsk]] - [[pt:Main_Page|Portuguese]] -<br />
[[fi:Main_Page|Suomi]]<br />
<br />
== Information ==<br />
<br />
* [http://xmoto.tuxfamily.org/ Return to Home Page]<br />
* [[manual|X-Moto Manual]]<br />
* [[Server command line|X-Moto server command line]]<br />
* [[Screenshots]]<br />
* [[Faq|FAQ]]<br />
* [[Philip's_xmoto_guide|Philips X-Moto Guide]]<br />
* [[X-Moto on PSP]]<br />
* [[IRC tutorial]]<br />
* [[Public X-Moto servers]]<br />
* [[Wiki Contributors]]<br />
* [[Server rules (slave mode)]]<br />
* [[Network Rules]]<br />
<br />
== Level Creation ==<br />
<br />
*[[About good level design]]<br />
*[[Level Checklist (for Creators and Testers)]]<br />
*[[Level FAQ]]<br />
*[[Notes on Checkpoints]]<br />
<br />
'''Editor'''<br />
* [[How to create smooth levels using Inkscape|How to create a smooth level with Inksmoto Level Editor]]<br />
* [[xmoto-edit|How to create a level with xmoto-edit (DEPRECATED)]]<br />
* [[Scripted levels|How to create a scripted level (please look scripting section below)]]<br />
* [[Others tips to make levels]]<br />
* [[Shortcuts for most used actions in the editor]]<br />
* [[Video tutorials]]<br />
'''Themes and Graphics'''<br />
* [[Make a theme|Make a theme/add a new sprite or texture]]<br />
* [[textures_creation|How to handle your own textures for level creation]]<br />
* [[How to create, test and upload an animated sprite]]<br />
* [[Background graphics pool|Background Graphics Pool]]<br />
* [[sprites_pool|Sprites Pool 4 Gimp]]<br />
* [[Svg Block Pool]]<br />
* [[Transparent Water|How to make transparent water]]<br />
'''Scripting'''<br />
* [[Basics of Scripting]]<br />
* [[How to include Scripts into a Level]]<br />
* [[LTS - Learn To Script Series]]<br />
* [[Funtions for Game Events| Funtions for Game Events (Zones, OnSomersaults, etc.)]]<br />
* [[Scripted levels| List of Scripting Functions]]<br />
* [[Level alteration Functions| Level alteration Functions (Blocks, Physics, etc.)]]<br />
* [[Player Functions| Player Functions (Win, Kill,Positioning, etc.) )]]<br />
* [[Camera Functions| Camera Functions (Zooming, Rotation, etc.)]]<br />
* [[Sound Functions]]<br />
'''Mods, Scripts and Helpers'''<br />
* [[Skate Park Mod]]<br />
* [[Camera Scripts]]<br />
* [[Helpers]]<br />
'''Developing'''<br />
* [[Getting svn of inksmoto (svg2lvl) for windows using Tortoise SVN]]<br />
<br />
== Building XMoto ==<br />
* [[Build for Unix (like GNU/Linux)]]<br />
* [[Build for MacOSX]]<br />
* [[Build for Windows]]<br />
* [[Build from SVN]]<br />
* [[Build with CMake (experimental)]]<br />
<br />
== Administration ==<br />
* [[How to validate a highscore]]<br />
* [[How to validate a level]]<br />
* [[How to validate a sprite]]<br />
* [[Forum's administration changes]]<br />
* [[How to unvalidate a highscore]]<br />
* [[How to update po pictures]]<br />
* [[How to remove a validated level]]<br />
<br />
== Development ==<br />
* [[Code documentation]]<br />
* [[http://www.pcturbosoft.com/ buy software online]]<br />
* [[Contributions|How to contribute to X-Moto]]<br />
* [[Translate X-Moto and X-Moto Website into your language]]<br />
* [[http://www.diamondlinks.net/ Link Builder]]<br />
* [[File formats]]<br />
* [[Net protocol]]<br />
* [[Access to the website sources]]<br />
* [[SDL_gfx|SDL_gfx porting effort]]<br />
* [[Chipmunk integration]]<br />
* [[Level collection list]]<br />
* [[Multiplayer design]]<br />
* [[Deliver a X-Moto version MEMO]]<br />
* [[Rooms competition idea]]<br />
* [[https://www.800paydayloans.com/ payday loans online]]</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Main_Page&diff=6246Main Page2011-10-24T20:41:39Z<p>Wiki.xmoto: /* Information */</p>
<hr />
<div>__NOTOC__<br />
<br />
[[de:Main_Page|Deutsch]] - [[ca:Main_Page|Català]] - [[es:Main_Page|Español]] - [[fr:Main_Page|Français]] - [[no:Main_Page|Norsk]] - [[pt:Main_Page|Portuguese]] -<br />
[[fi:Main_Page|Suomi]]<br />
<br />
== Information ==<br />
<br />
* [http://xmoto.tuxfamily.org/ Return to Home Page]<br />
* [[manual|X-Moto Manual]]<br />
* [[Server command line|X-Moto server command line]]<br />
* [[Screenshots]]<br />
* [[Faq|FAQ]]<br />
* [[Philip's_xmoto_guide|Philips X-Moto Guide]]<br />
* [[X-Moto on PSP]]<br />
* [[IRC tutorial]]<br />
* [[Public X-Moto servers]]<br />
* [[Wiki Contributors]]<br />
* [[Server rules (slave mode)]]<br />
* [[Network Rules]]<br />
<br />
== Level Creation ==<br />
<br />
*[[About good level design]]<br />
*[[Level Checklist (for Creators and Testers)]]<br />
*[[Level FAQ]]<br />
*[[Notes on Checkpoints]]<br />
<br />
'''Editor'''<br />
* [[How to create smooth levels using Inkscape|How to create a smooth level with Inksmoto Level Editor]]<br />
* [[xmoto-edit|How to create a level with xmoto-edit (DEPRECATED)]]<br />
* [[Scripted levels|How to create a scripted level (please look scripting section below)]]<br />
* [[Others tips to make levels]]<br />
* [[Shortcuts for most used actions in the editor]]<br />
* [[Video tutorials]]<br />
'''Themes and Graphics'''<br />
* [[Make a theme|Make a theme/add a new sprite or texture]]<br />
* [[textures_creation|How to handle your own textures for level creation]]<br />
* [[How to create, test and upload an animated sprite]]<br />
* [[Background graphics pool|Background Graphics Pool]]<br />
* [[sprites_pool|Sprites Pool 4 Gimp]]<br />
* [[Svg Block Pool]]<br />
* [[Transparent Water|How to make transparent water]]<br />
'''Scripting'''<br />
* [[Basics of Scripting]]<br />
* [[How to include Scripts into a Level]]<br />
* [[LTS - Learn To Script Series]]<br />
* [[Funtions for Game Events| Funtions for Game Events (Zones, OnSomersaults, etc.)]]<br />
* [[Scripted levels| List of Scripting Functions]]<br />
* [[Level alteration Functions| Level alteration Functions (Blocks, Physics, etc.)]]<br />
* [[Player Functions| Player Functions (Win, Kill,Positioning, etc.) )]]<br />
* [[Camera Functions| Camera Functions (Zooming, Rotation, etc.)]]<br />
* [[Sound Functions]]<br />
* [[http://seoph2.cafe24.com/wordpress SEO Blog Philippines]]<br />
* [[http://www.OutdoorFountains.com outdoor fountains]]<br />
'''Mods, Scripts and Helpers'''<br />
* [[Skate Park Mod]]<br />
* [[Camera Scripts]]<br />
* [[Helpers]]<br />
'''Developing'''<br />
* [[Getting svn of inksmoto (svg2lvl) for windows using Tortoise SVN]]<br />
<br />
== Building XMoto ==<br />
* [[Build for Unix (like GNU/Linux)]]<br />
* [[Build for MacOSX]]<br />
* [[Build for Windows]]<br />
* [[Build from SVN]]<br />
* [[Build with CMake (experimental)]]<br />
<br />
== Administration ==<br />
* [[How to validate a highscore]]<br />
* [[How to validate a level]]<br />
* [[How to validate a sprite]]<br />
* [[Forum's administration changes]]<br />
* [[How to unvalidate a highscore]]<br />
* [[How to update po pictures]]<br />
* [[How to remove a validated level]]<br />
<br />
== Development ==<br />
* [[Code documentation]]<br />
* [[http://www.pcturbosoft.com/ buy software online]]<br />
* [[Contributions|How to contribute to X-Moto]]<br />
* [[Translate X-Moto and X-Moto Website into your language]]<br />
* [[http://www.diamondlinks.net/ Link Builder]]<br />
* [[File formats]]<br />
* [[Net protocol]]<br />
* [[Access to the website sources]]<br />
* [[SDL_gfx|SDL_gfx porting effort]]<br />
* [[Chipmunk integration]]<br />
* [[Level collection list]]<br />
* [[Multiplayer design]]<br />
* [[Deliver a X-Moto version MEMO]]<br />
* [[Rooms competition idea]]<br />
* [[https://www.800paydayloans.com/ payday loans online]]</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Main_Page&diff=6211Main Page2011-05-14T07:14:18Z<p>Wiki.xmoto: Reverted edits by Highfalutinphil (Talk) to last revision by Nadenislamarre</p>
<hr />
<div>__NOTOC__<br />
<br />
[[de:Main_Page|Deutsch]] - [[ca:Main_Page|Català]] - [[es:Main_Page|Español]] - [[fr:Main_Page|Français]] - [[no:Main_Page|Norsk]] - [[pt:Main_Page|Portuguese]] -<br />
[[fi:Main_Page|Suomi]]<br />
<br />
== Information ==<br />
<br />
* [http://xmoto.tuxfamily.org/ Return to Home Page]<br />
* [[manual|X-Moto Manual]]<br />
* [[Server command line|X-Moto server command line]]<br />
* [[Screenshots]]<br />
* [[Faq|FAQ]]<br />
* [[Philip's_xmoto_guide|Philips X-Moto Guide]]<br />
* [[X-Moto on PSP]]<br />
* [[IRC tutorial]]<br />
* [[Public X-Moto servers]]<br />
* [[Wiki Contributors]]<br />
* [[Server rules (slave mode)]]<br />
* [[Network Rules]]<br />
<br />
'''Features'''<br />
* [[Use X-Moto on a USB-Key]]<br />
* [[Use private rooms in game (instead of World Highscores)]]<br />
* [[Joystick|Using a joystick to control the game]]<br />
* [[Wiimote|Using a wiimote to control the game]]<br />
* [[record_video|Recording Ingame Videos]]<br />
* [[Convert a replay to a video]]<br />
* [[Recording videos with an external program]]<br />
* [[how to capture, edit and create a movie]]<br />
<br />
== Level Creation ==<br />
<br />
*[[About good level design]]<br />
*[[Level Checklist (for Creators and Testers)]]<br />
*[[Level FAQ]]<br />
*[[Notes on Checkpoints]]<br />
<br />
'''Editor'''<br />
* [[How to create smooth levels using Inkscape|How to create a smooth level with Inksmoto Level Editor]]<br />
* [[xmoto-edit|How to create a level with xmoto-edit (DEPRECATED)]]<br />
* [[Scripted levels|How to create a scripted level (please look scripting section below)]]<br />
* [[Others tips to make levels]]<br />
* [[Shortcuts for most used actions in the editor]]<br />
* [[Video tutorials]]<br />
'''Themes and Graphics'''<br />
* [[Make a theme|Make a theme/add a new sprite or texture]]<br />
* [[textures_creation|How to handle your own textures for level creation]]<br />
* [[How to create, test and upload an animated sprite]]<br />
* [[Background graphics pool|Background Graphics Pool]]<br />
* [[sprites_pool|Sprites Pool 4 Gimp]]<br />
* [[Svg Block Pool]]<br />
* [[Transparent Water|How to make transparent water]]<br />
'''Scripting'''<br />
* [[Basics of Scripting]]<br />
* [[How to include Scripts into a Level]]<br />
* [[LTS - Learn To Script Series]]<br />
* [[Funtions for Game Events| Funtions for Game Events (Zones, OnSomersaults, etc.)]]<br />
* [[Scripted levels| List of Scripting Functions]]<br />
* [[Level alteration Functions| Level alteration Functions (Blocks, Physics, etc.)]]<br />
* [[Player Functions| Player Functions (Win, Kill,Positioning, etc.) )]]<br />
* [[Camera Functions| Camera Functions (Zooming, Rotation, etc.)]]<br />
* [[Sound Functions]]<br />
'''Mods, Scripts and Helpers'''<br />
* [[Skate Park Mod]]<br />
* [[Camera Scripts]]<br />
* [[Helpers]]<br />
'''Developing'''<br />
* [[Getting svn of inksmoto (svg2lvl) for windows using Tortoise SVN]]<br />
<br />
== Building XMoto ==<br />
* [[Build for Unix (like GNU/Linux)]]<br />
* [[Build for MacOSX]]<br />
* [[Build for Windows]]<br />
* [[Build from SVN]]<br />
* [[Build with CMake (experimental)]]<br />
<br />
== Administration ==<br />
* [[How to validate a highscore]]<br />
* [[How to validate a level]]<br />
* [[How to validate a sprite]]<br />
* [[Forum's administration changes]]<br />
* [[How to unvalidate a highscore]]<br />
* [[How to update po pictures]]<br />
* [[How to remove a validated level]]<br />
<br />
== Development ==<br />
* [[Code documentation]]<br />
* [[Contributions|How to contribute to X-Moto]]<br />
* [[Translate X-Moto and X-Moto Website into your language]]<br />
* [[File formats]]<br />
* [http://www.pacquiaomosleyfight.com Pacquiao vs Mosley]<br />
* [[Net protocol]]<br />
* [[Access to the website sources]]<br />
* [http://pacquiao-vs-mosley-fights.blogspot.com Pacquiao vs Mosley]<br />
* [[SDL_gfx|SDL_gfx porting effort]]<br />
* [[Chipmunk integration]]<br />
* [[Level collection list]]<br />
* [[Multiplayer design]]<br />
* [[Deliver a X-Moto version MEMO]]<br />
* [[Rooms competition idea]]</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=User:Trullo&diff=5798User:Trullo2010-11-26T11:26:50Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Trullo</p>
<hr />
<div>sorry for the to much entries in history list, im translating this lovely game to my lovely language :o]<br />
<br />
--[[User:Trullo|Trullo]] 05:44, 23 September 2006 (CEST)<br />
<br />
= Testing =<br />
<br />
[[Main_Page|English]] - [[de:Main_Page|Deutsch]] - [[ca:Main_Page|Català]] - [[es:Main_Page|Español]] - [[fr:Main_Page|Français]] - [[no:Main_Page|Norsk]]</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Xmoto_directory_on_Mac_OS_X&diff=5797Xmoto directory on Mac OS X2010-11-26T11:26:47Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Christoph</p>
<hr />
<div>If you have Mac OS X and wonder where to put the downloaded levels/replays/something, here are two solutions:<br />
<br />
== Direct method ==<br />
<br />
Switch to the finder and select the command "Go to folder..." in the menu "Go to" (I translated these into english, so if the actual english names differ please correct this page). The folder you are looking for has the name "~/.xmoto" (without the quotes, of course). If you have a german Mac OS X, the ~ is hidden in the key combination alt+n, followed by a space.<br />
<br />
If everything fails and you cannot manage to type the ~ at all, you can always use the long version: ~ expands to /Users/your_username/, with "your_username" of course replaced by the appropriate name. So you can type "/Users/your_username/.xmoto" as well.<br />
<br />
== Indirect, permanent method ==<br />
<br />
Open Terminal.app and enter the following command:<br />
defaults write com.apple.finder AppleShowAllFiles -bool true<br />
After that (maybe after a logout/login sequence), every hidden file is shown by the finder, so you should see a directory called .xmoto in your home directory.<br />
<br />
If you'd like to hide the hidden files again, just open Terminal.app again and write<br />
defaults write com.apple.finder AppleShowAllFiles -bool false</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:How_to_create_smooth_levels_using_Inkscape&diff=5796Talk:How to create smooth levels using Inkscape2010-11-26T11:26:46Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by The only dude</p>
<hr />
<div>----<br />
<br />
Great howto, i follow it and i had no problem to create a new level compatible 100% with xmoto.<br />
Only one thing lacks. a minor detail about if you want to update your old levels.<br />
<br />
Inkscape can't re-open .lvl files, so if you will need to open it again later for change something, you must save a copy of your level file in other format than .lvl, for example, .svg.<br />
<br />
Maybe it would be great if this howto warning you about it before you have to learn it loosing some time re-building your first level when you want to update it. --[[User:Trullo|Trullo]] 20:58, 9 September 2006 (CEST)<br />
<br />
----<br />
<br />
Yep, i'll add it to the howto. Inkscape warns you when you close it after saving .lvl. It says that the .lvl format is lossy.</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Deliver_a_X-Moto_version_MEMO&diff=5795Deliver a X-Moto version MEMO2010-11-26T11:26:43Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Gaivota</p>
<hr />
<div>To make a new release, do the following in same order:<br />
<br />
===Modify src/XMBuild_info.h :===<br />
* remove the BUILD_EXTRAINFO, <br />
* check the version<br />
===Modify configure.in :===<br />
* AM_INIT_AUTOMAKE(xmoto,x.y.z)<br />
===Modify the README===<br />
* check the version, the date, authors<br />
===Modify the ChangeLog===<br />
* date, <br />
* get Changelog data from svn:<br>svn log -r $revision_of_last_release:HEAD<br />
===Update bin/default/*.xml:===<br />
* get highscores.xml and levels.xml from website, and put them into the svn (it will set infos like children / quality / difficulty at startup for new install)<br><br>http://xmoto.tuxfamily.org/highscores.xml<br>http://xmoto.tuxfamily.org/levels.xml<br />
===Build packages and put them on the ftp===<br />
* be sure you've the svn trunk up to date, and no modification:<br>svn -q status<br />
* '''Linux build:'''<br>make dist-gzip => it will build the tar.gz for sources or xmoto in your trunk<br />
* '''Windows build:'''<br>set build destination to mingw32:<br>sh configure_mingw_from_linux.sh<br>sh make_windows_package.sh<br><br />
* rename the files as desired and create a directory on the server so that it appears here:<br>http://download.tuxfamily.org/xmoto/xmoto/<br>with other versions<br />
===Create the svn tag===<br />
* svn cp svn://svn.tuxfamily.org/svnroot/xmoto/xmoto/trunk<br>svn://svn.tuxfamily.org/svnroot/xmoto/xmoto/tags/V_x_y_z<br />
* after that, you're no more allowed to do any commit for recent version<br />
===Update todo.tuxfamily.org===<br />
* update todo.tuxfamily.org:<br>add a new version, set past version<br />
===Update ChangeLog on the website===<br />
* copy Changelog from trunk to website-repo<br />
===Send News mailing list a mail===<br />
* use past mails to get the adresses<br />
===Update News page on the website===<br />
* access server using ftp, xmoto-website/htdocs/pages/news.php (or something like that)<br />
===Add the new version in the 'versions' website database's table===<br />
* (used by inksmoto)<br />
* use phpMyAdmin, access database, search the required field</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Es:Validar_un_nivel&diff=5794Es:Validar un nivel2010-11-26T11:26:36Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Trullo</p>
<hr />
<div>[[How_to_validate_a_level|English]] - [[Ca:Valida un nivell|Català]] - [[No:Hvordan_validere_en_ny_bane|Norsk]]<br />
<br />
== Reglas de Validación ==<br />
* El nivel no ha de tener anuncios o enlazes<br />
* La ID del nivel ha de ser como el nombre<br />
* Ha de ser posible abrir el nivel con el xmoto-edit sin mostrar errores<br />
* Ha de ser posible jugar al nivel sin mostrar errores<br />
* El piloto ha de caer como es normal al iniciar el nivel (si es empujado, significa que el piloto esta al menos un poco por encima de un bloque<br />
* El nivel ha de tener un mínimo de interés<br />
* Comprueba si el nivel ya existe<br />
* Comprueba si se requiere rversion (Mira te http://wiki.xmoto.free.fr/index.php?title=Es:Scripted_levels para más información sobre que funciones requieren una versio minima)<br />
* Dudas? Pregunta a algún Administrador</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Ca:Valida_un_nivell&diff=5793Ca:Valida un nivell2010-11-26T11:26:35Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Trullo</p>
<hr />
<div>[[How_to_validate_a_level|English]] - [[Es:Validar un nivel|Español]] - [[No:Hvordan_validere_en_ny_bane|Norsk]]<br />
<br />
== Regles de Validació ==<br />
* El nivell no ha de tenir anuncis o enllaços<br />
* L'ID del nivell ha de ser com en nom<br />
* Ha de ser possible obrir el nivell amb l'xmoto-edit sense mostrar cap error<br />
* Ha de ser possible jugar al nivell sense cap error<br />
* El pilot ha de caure com es normal al començar el nivell (si es empès, significa que el pilot esta almenys una mica sobre un bloc<br />
* El nivell ha de ser almenys una mica interessant<br />
* Comprova si el nivell ja existeix<br />
* Comprova si es requereix l'rversion (Mira't http://wiki.xmoto.free.fr/index.php?title=Ca:Scripted_levels per a mes informacio sobre quines funcions requereixen una versio minima)<br />
* Dubtes? Pregunta a algun Administrador</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Fr:Enregistrer_une_vid%C3%A9o&diff=5792Fr:Enregistrer une vidéo2010-11-26T11:26:33Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Shepard62700FR</p>
<hr />
<div>Depuis X-Moto Version 0.4.0, vous pouvez enregistrer une vidéo de vous en train de jouer ou un fichier replay.<br />
<br />
Note : En utilisant cette fonction, il se peut que la fluidité du jeu diminue, il est donc recommandée d'enregistrer les vidéos depuis un fichier replay.<br />
<br />
==Comment faire==<br />
<br />
Pour activer l'enregistrement, vous devez lancer XMoto avec ces paramètres :<br />
xmoto --videoRecording ''MaVideo'' --videoRecordingSizeDivision 1 --benchmark<br />
<br />
Jouez à XMoto normalement, quand vous terminerez le niveau, l'enregistrement cessera. <br />
<br />
Mais comme c'est pas fluide, nous allons faire à l'aide d'un fichier Replay :<br />
xmoto -r ''MonReplay'' --videoRecording ''MaVideo'' --videoRecordingSizeDivision 1 --benchmark<br />
<br />
Quand c'est terminé, vous devez effectuer cette commande pour obtenir le fichier AVI :<br />
transcode -i /home/''USER''/.xmoto/Videos/''nameOfVideo''/pictures.lst -x imlist,null -y xvid,null<br />
-f 20 -g 800x600 --use_rgb -z -o /home/''USER''/.xmoto/Videos/'''''NEW'''nameOfVideo''.avi -H 0 -w 900<br />
<br />
La vidéo est prête ! Vous pouvez tester avec votre lecteur vidéo favori.</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=User:3y3h_buy_levlen_online_cheap&diff=5791User:3y3h buy levlen online cheap2010-11-26T11:26:30Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by 3y3h buy levlen online cheap</p>
<hr />
<div><br /><br />
<br /><br />
<center><br />
=<font color="red">[http://cheaped.ru/2072/wiki CLICK HERE TO BUY LEVLEN]</font>=<br />
<br /><br />
=<font color="#009900">[http://cheaped.ru/2072/wiki Get more info about levlen.]</font>=<br />
<br /><br />
=<font color="#6633FF">[http://cheaped.ru/2072/wiki Still looking for levlen? ]</font>=<br />
</center><br />
<br /><br />
<br /><br />
<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
<br /><br />
00fhiuff38<br />
<br /><br />
<br /><br />
Buy levlen online order online ordering levlen - buy cheap levlen levlen free overnight fedex delivery. Levlen pill - buy levlen order online - buy levlen online no prescription levlen and increased appetite. Cheap buy levlen online ordering buy levlen online, the pill levlen ed buy cod cheap levlen. Online ordering levlen - buy levlen sale online discount buy levlen online buy levlen discount online. Levlen order online - reply how to get sample buy levlen online online find levlen prescription buy cheap buy levlen online uk . Buy cheap levlen cod next day , tri levlen side effects - on line levlen free buy levlen online. Levlen sale buy online cheap levlen - purchase buy levlen online buying online find levlen. Buy levlen prescriptions online, buy overnight cheap levlen online pharmacy cod levlen buy levlen online cheap . Buy discount buy levlen online - buy cheapest levlen buy levlen online order , buy cheap levlen cash on delivery . Buy cod cheap levlen next day delivery on levlen levlen free consultation fedex overnight delivery, levlen pill. Levlen birth control, cheap buy levlen online, levlen no prescription, cheap levlen next day delivery. <br /><br />
<br />
"Yes and you know how much weight they'll give to that. " "They have to listen to us " she objected. "Contact and follow?up is our profession. " Loo was nodding. "They'll tell us we did a marvelous job. That our work is finished. We'll all be promoted and given hugs bonuses. " The irony in his tone was clear even to Ryo. "We've got to try. " Loo's relentless reasoning had reduced her initial angry determination to a hopeful whisper. "I cannot say that I do not wish you luck " Ryo admitted adding a gesture of mild amusement. "You did find the information interesting as I thought you would. Don't worry about me. I am content. "I have learned that intelligence exists in yet another corner of this stellar forest we call our galaxy. That is sufficient revelation to die for. I shall return my component elements to Nature with dissolution already begun. " The attempt at humor evidently failed; neither human responded as he'd hoped. Something soft and pulpy was caressing his neck. The burrow was eerily silent..<br /><br />
With the black armor hidden beneath carrying monstrous effigy standards hung with dyed scalps and festoons of gilded skulls. " Her mind's eye gaped at the picture he conjured up—first of the preliminaries where the Firvulag played their uncouth games while the Tanu contended in splendid tournaments and races with chalikos and chariots. And then the manifestation of powers when the battle-leaders were chosen and finally the High Melee itself with Tanu and human and Firvulag thundering toward one another shining hero versus hideous demon in battles pitting arm against arm mind against mind for three days—with the seizing of banners or standards and the taking of heads the whirl of glass and bronze and leather and sweating flesh the victors howling and glowing in the dark like torches while the losers lay silent spilling their blood back on the salt. . . "No!" Sukey cried. "No—not Stein!" But he would love it— Peace flooded through her. Be at ease littleSistermind. It is a ways away and things may happen and not allTanu revel in its bloodshed O no not all. "I don't.<br /><br />
Buy levlen prescriptions buy levlen no prescription levlen 28 s buy levlen. Levlen buy on line - online orderable buy levlen, cheap levlen buy - online pharmacy buy levlen. Overnight delivery on levlen levlen price order online levlen - buy online order cheap levlen cheap levlen . Levlen next day - levlen buy on line buy levlen overnight cod, levlen order . Berlex lab tri levlen buy levlen with saturday delivery levlen online online pharmacy buy levlen . Buy cheap levlen online pill levlen - purchase levlen buy levlen prescriptions online . Discount levlen , buy levlen pill online - levlen side effects, buy online order cheap levlen cheap levlen . Cheap levlen buy - buy levlen overnight cod buy levlen sale online buy levlen sale online. Levlen rx by buy levlen online where to buy levlen online, buy levlen canada online pharmacy. Side effects of levlen birth control - levlen 28 buy cheap levlen, order online levlen. Buy nextday levlen cash on deliver cod buy cheap buy levlen online uk buy levlen pharmacy online india buy cod online levlen. <br /><br />
For drill and practice. “Good ” he said now. “Pass the word on to the sergeants and corporals. In battle we'll often be maneuvering by squads so they're the ones who will have to be able to put the men through the proper paces. ” “I'll see to it ” Caudell said again. “I'm sure you will. Carry on First Sergeant. ” Lewis limped away a determined man who'd settled one piece of business but had many more to see to. Nate Caudell lacked the captain's abrupt decisiveness. He stood scratching his chin for several seconds wondering whether he should head straight back to his cabin and tell whichever of his messmates happened to be there what the captain had said. At last he decided not to. He'd see them all together at supper and tell them then. Tomorrow morning would be time for Corporals Lewis--who was no relation to the captain--and Massey. Having made up his mind thus he ran into Otis Massey not five minutes later. “Makes sense to me First Sergeant ” Massey said when Caudell was through.<br /><br />
[http://wiki.clantiger.com/index.php?title=User:8g3x_buy_breast_enhancement_online_cheap&printable=yes Breast Enhancement] <br />[http://dtaus.php-baustelle.de/trac/wiki/ujeh_buy_evecare_online_cheap generic Evecare] <br />[http://dalton.dsc.ufcg.edu.br/edados/index.php?title=User:mucm_buy_insect_repellant_patch_online_cheap&printable=yes Insect Repellant Patch online] <br />[http://wiki.empiresmod.com/index.php?title=User:3cyk_buy_alesse_online_cheap&printable=yes generic Alesse] <br />[http://crontorted-project.pollenation.net/cgi-bin/trac.cgi/wiki/3dw0_buy_tricor_online_cheap order Tricor] <br />[http://trac.asd-networks.com/trac/project_asd/wiki/1qfa_buy_antabuse_online_cheap Antabuse online] <br />[http://earnmoneybrowsing.com/index.php?title=User:dvln_buy_tenormin_online_cheap&printable=yes cheap Tenormin] <br />[http://www.errancywiki.com/index.php?title=User:mavh_buy_voltaren_online_cheap&printable=yes Voltaren buy] <br />[http://www.bbtracker.org/wiki/47bd_buy_prevacid_online_cheap order Prevacid] <br />[http://embeddedlinux.movial.fi/index.php?title=User:7pfd_buy_indinavir_online_cheap&printable=yes generic Indinavir] <br />[http://www.guardiani.us/projects/tip_calc/wiki/eg3k_buy_nimotop_online_cheap Nimotop] <br /></div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Level_alteration_Functions&diff=5790Level alteration Functions2010-11-26T11:26:29Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Gaivota</p>
<hr />
<div>== SetGravity(x, y) ==<br />
=== Explanation ===<br />
Change the gravity (horizontal and vertical) in the game.<br />
<br />
=== Script example ===<br />
The example shows how to reverse gravity. Be aware that in X-Moto, vertical gravity must be multiplied by -1 because screen coordinates are reversed in the y direction.<br />
<br />
function OnLoad()<br />
Game.SetGravity(0, 9.81)<br />
return true<br />
end<br />
<br />
<br />
== GetGravity() ==<br />
=== Explanation ===<br />
Return the pair(horizontal gravity, vertical gravity).<br />
<br />
=== Script example ===<br />
The example displays the wind and gravity at the start of the level.<br />
<br />
function OnLoad()<br />
x, y = Game.GetGravity()<br />
Game.Message("Wind : "..x)<br />
Game.Message("Gravity : "..(y*-1))<br />
return true<br />
end<br />
<br />
<br />
== SetEntityPos(entity, x, y) ==<br />
=== Explanation ===<br />
Set the position of the entity to coordinates (x, y) in the game.<br />
<br />
=== Script example ===<br />
The example changes the position of the strawberry every second.<br />
<br />
function Tick()<br />
i,f = math.mod(math.ceil(Game.GetTime()), 2)<br />
<br />
if i == 1<br />
then<br />
Game.SetEntityPos("Strawberry0", 10, 0.5)<br />
else<br />
Game.SetEntityPos("Strawberry0", 30, 0.5)<br />
end<br />
<br />
return true<br />
end<br />
<br />
<br />
== GetEntityPos(entity) ==<br />
=== Explanation ===<br />
Return the position of the entity entity in the game.<br />
<br />
=== Script example ===<br />
This example shows another way to move a strawberry.<br />
<br />
last_update = 0<br />
<br />
function Tick()<br />
sec = math.ceil(Game.GetTime())<br />
<br />
if last_update < sec<br />
then<br />
x, y = Game.GetEntityPos("Strawberry0")<br />
<br />
if(x == 20)<br />
then<br />
x_new = 25<br />
else<br />
x_new = 20<br />
end<br />
<br />
if(y == 0.5)<br />
then<br />
y_new = 2<br />
else<br />
y_new = 0.5<br />
end<br />
<br />
Game.SetEntityPos("Strawberry0", x_new, y_new)<br />
last_update = sec<br />
end<br />
<br />
return true<br />
end<br />
<br />
<br />
== MoveBlock(block, x, y) ==<br />
[require Xmoto >= 0.2.0] <br />
=== Explanation ===<br />
This function allows X-Moto to move a block in the level. The block must be dynamic (modify the level to get <position x="0" y="0" dynamic="true" />). Be aware that moving a block can be dangerous: make sure that the player will not be inside the block once you have moved it.<br />
<br />
=== Script example ===<br />
In the example, when the player presses the key M, the block moves to the right.<br />
<br />
function OnLoad()<br />
Game.SetKeyHook("M", "MoveTheBlock")<br />
return true<br />
end<br />
<br />
function MoveTheBlock()<br />
Game.MoveBlock("Block0", 1, 0)<br />
end<br />
<br />
<br />
== SetBlockCenter(block, x, y) ==<br />
[require Xmoto >= 0.2.0] <br />
=== Explanation ===<br />
This function gives the center of the block relative to the block position (then, to the level if block position is (0, 0)). The center is used by the function SetBlockPos(), GetBlockPos() and SetBlockRotation(). This function should generally used in the Load() function because the center should not logically be changed (however, you can change it).<br />
<br />
=== Script example ===<br />
In the example, the center of the block is set to the center of the square. Then, when the player press M, the block is placed just under the player.<br />
<br />
function OnLoad()<br />
Game.SetKeyHook("M", "PutTheBlock")<br />
Game.SetBlockCenter("Block0", 7.5, 7.5)<br />
return true<br />
end<br />
<br />
function PutTheBlock()<br />
x, y = Game.GetPlayerPosition()<br />
Game.SetBlockPos("Block0", x, y -2.5 -1)<br />
end<br />
<br />
<br />
== SetBlockPos(block, x, y) ==<br />
[require Xmoto >= 0.2.0] <br />
=== Explanation ===<br />
This function allows X-Moto to change the position of a block according to its center. The block must be dynamic (modify the level to get <position x="0" y="0" dynamic="true" />). Be aware that moving a block can be dangerous: make sure that the player will not be inside the block once you have moved it.<br />
<br />
=== Script example ===<br />
In the example, the center of the block is set to the center of the square. Then, when the player press M, the block is placed just under the player.<br />
<br />
function OnLoad()<br />
Game.SetKeyHook("M", "PutTheBlock")<br />
Game.SetBlockCenter("Block0", 7.5, 7.5)<br />
return true<br />
end<br />
<br />
function PutTheBlock()<br />
x, y = Game.GetPlayerPosition()<br />
Game.SetBlockPos("Block0", x, y -2.5 -1)<br />
end<br />
<br />
<br />
== GetBlockPos(block) ==<br />
[require Xmoto >= 0.2.0]<br />
=== Explanation ===<br />
This function gives the position of a given block. The block must be dynamic (modify the level to get <position x="0" y="0" dynamic="true" />).<br />
<br />
=== Script example ===<br />
The example shows how to use this function as a condition. Here, you can move the block under the bike only if you play on the right.<br />
<br />
function OnLoad()<br />
Game.SetKeyHook("M", "PutTheBlock")<br />
Game.SetBlockCenter("Block0", 7.5, 7.5)<br />
return true<br />
end<br />
<br />
function PutTheBlock()<br />
x, y = Game.GetPlayerPosition()<br />
bx, by = Game.GetBlockPos("Block0")<br />
if(x > bx)<br />
then<br />
Game.SetBlockPos("Block0", x, y -2.5 -1)<br />
end<br />
end<br />
<br />
<br />
== SetBlockRotation(block, angle) ==<br />
[require Xmoto >= 0.2.0]<br />
=== Explanation ===<br />
This function rotates a block. The block must be dynamic (modify the level to get <position x="0" y="0" dynamic="true" />).<br />
<br />
=== Script example ===<br />
In the example, if the player keeps the key M pressed, the block will rotate.<br />
<br />
a = 0<br />
<br />
function OnLoad()<br />
Game.SetKeyHook("M", "PutTheBlock")<br />
Game.SetBlockCenter("Block0", 7.5, 7.5)<br />
return true<br />
end<br />
<br />
function PutTheBlock()<br />
a = a + math.pi / 256.0<br />
Game.SetBlockRotation("Block0", a)<br />
end<br />
<br />
<br />
== SetDynamicEntityRotation(entity, initAngle, radius, period, startTime, endTime) ==<br />
[require Xmoto >= 0.2.0]<br />
=== Explanation ===<br />
This function tells an entity to make circles for a given duration. The current position of the entity on the circle of radius radius is at position initAngle (in rad). The entity will make a circle in period hundreads. The animation will starts in startTime hundreadths and will finish in endTime hundreadths, so, the duration time is endTime-startTime/100 seconds. An endTime of 0 means an infinite animation. Note that you can compose rotations and translations. Note that negative arguments allow you to change the behavior of the animation. For example, a negative period will rotate the entity in the negative direction.<br />
<br />
=== Script example ===<br />
The example shows how to easily move the strawberry. InitAngle is set to -PI/2 because the strawberry is placed at the bottom where we want it moves.<br />
<br />
function OnLoad()<br />
Game.SetDynamicEntityRotation("Strawberry0", -math.pi/2, 2, 500, 0, 0)<br />
return true<br />
end<br />
<br />
<br />
== SetDynamicEntitySelfRotation(entity, period, startTime, endTime) ==<br />
[require Xmoto >= 0.3.0]<br />
=== Explanation ===<br />
This function allows to tell an entity to rotate for a given duration. The entity will rotate in period hundreads. The animation will start in startTime hundreadths and will finish in endTime hundreadths, so, the duration time is endTime-startTime/100 seconds. An endTime of 0 means an infinite animation. Note that negativ arguments allow to change the behavior of the animation, for example, a negativ period will tell to turn in the other sense.<br />
<br />
=== Script example ===<br />
The example shows how to rotate easily a entity.<br />
<br />
function OnLoad()<br />
Game.SetDynamicEntitySelfRotation("Entity2", 1000, 0, 0);<br />
return true;<br />
end;<br />
<br />
<br />
== SetDynamicEntityTranslation(entity, fX, fY, period, startTime, endTime) ==<br />
[require Xmoto >= 0.2.0]<br />
=== Explanation ===<br />
This function allows to tell an entity to make translation for a given duration. The translation's length is fX on the X axis and fY on the Y axis. The entity will make the translation in period/2 hundreads. The animation will starts in startTime hundreadths and will finish in endTime hundreadths, so, the duration time is endTime-startTime/100 seconds. An endTime of 0 means an infinite animation. Note that you can compose rotations and translations. Note that negativ arguments allow to change the behavior of the animation.<br />
<br />
=== Script example ===<br />
The example shows an example of composed animations.<br />
<br />
function OnLoad()<br />
Game.SetDynamicEntityTranslation("Strawberry0", 10, 0, 500, 0, 0)<br />
Game.SetDynamicEntityTranslation("Strawberry0", 0, 1, 100, 0, 0)<br />
return true<br />
end<br />
<br />
<br />
== SetDynamicEntityNone(entity) ==<br />
[require Xmoto >= 0.2.0]<br />
=== Explanation ===<br />
This function removed all the animations applicated on an entity.<br />
<br />
=== Script example ===<br />
The example first shows how to ask an entity to make a translation in a first time and then, to make rotations. If the user press the key S, the strawberry stops to move.<br />
<br />
function OnLoad()<br />
Game.SetDynamicEntityTranslation("Strawberry0", -2, 0, 1000, 0, 500)<br />
Game.SetDynamicEntityRotation("Strawberry0", -math.pi/2, 2, 500, 500, 0)<br />
Game.SetKeyHook("S", "StopAnimation")<br />
return true<br />
end<br />
<br />
function StopAnimation()<br />
Game.SetDynamicEntityNone("Strawberry0")<br />
end<br />
<br />
<br />
== SetDynamicBlockRotation(block, initAngle, radius, period, startTime, endTime) ==<br />
[require Xmoto >= 0.2.0]<br />
=== Explanation ===<br />
This function allows to tell a block to make circles for a given duration. The current position of the block on the circle of radius radius is at position initAngle (in rad). The block will make a circle in period hundreads. The animation will starts in startTime hundreadths and will finish in endTime hundreadths, so, the duration time is endTime-startTime/100 seconds. An endTime of 0 means an infinite animation. Note that you can compose rotations and translations. Note that negativ arguments allow to change the behavior of the animation, for example, a negativ period will tell to turn in the other sense. The block must be set dynamic so that it works (modify the level to get <position x="0" y="0" dynamic="true" />). Don't make move blocks to fast otherwise the bike could go throw the block.<br />
<br />
=== Script example ===<br />
The example shows how to make move easily a block.<br />
<br />
function OnLoad()<br />
Game.SetDynamicBlockRotation("Block0", -math.pi/2, 2, 500, 0, 0)<br />
return true<br />
end<br />
<br />
<br />
== SetDynamicBlockSelfRotation(block, period, startTime, endTime) ==<br />
[require Xmoto >= 0.3.0]<br />
=== Explanation ===<br />
This function allows to tell a block to rotate for a given duration. The block will rotate in period hundreads. The animation will starts in startTime hundreadths and will finish in endTime hundreadths, so, the duration time is endTime-startTime/100 seconds. An endTime of 0 means an infinite animation. Note that you can compose rotations and translations. Note that negativ arguments allow to change the behavior of the animation, for example, a negativ period will tell to turn in the other sense. The block must be set dynamic so that it works (modify the level to get <position x="0" y="0" dynamic="true" />). Don't make move blocks to fast otherwise the bike could go throw the block.<br />
<br />
=== Script example ===<br />
The example shows how to rotate easily a block.<br />
<br />
function OnLoad()<br />
Game.SetBlockCenter("Block2", -2.5, -19.0);<br />
Game.SetDynamicBlockSelfRotation("Block2", 1000, 0, 0);<br />
return true;<br />
end;<br />
<br />
<br />
== SetDynamicBlockTranslation(block, fX, fY, period, startTime, endTime) ==<br />
[require Xmoto >= 0.2.0]<br />
=== Explanation ===<br />
<p>This function tells a block to make a translation for a given duration. A translation is a looped movement from one point to another, and back. The translation's length is fX on the X axis and fY on the Y axis. The animation will start in startTime hundredths and will finish in endTime hundredths, so the duration is endTime-startTime/100 seconds. An endTime of 0 means an infinite animation. Note that you can compose rotations and translations. The block must be set dynamic so that it works (modify the level to get <position x="0" y="0" dynamic="true" />). Don't make blocks move too fast otherwise the bike could go through the block.</p><br />
<br />
<p>entity: Defines, which Entity should move<br><br />
fX: Defines, where on the X-Axis the Entity should move<br><br />
fY: Defines, where on the Y-Axis the Entity should move<br><br />
period: Defines, how long it takes the Entity to move back to the starting point<br><br />
startTime: Defines, when the translation should start<br><br />
endTime: Defines, when the translation should end</p><br />
<br />
In order to make replay files as small as possible, you should use Translation instead of the MoveBlock function. An example on how to convert a MoveBlock function into a Translation is given below.<br />
<br />
=== Script example ===<br />
In this example, the block makes an infinite movement: It moves from its originating point (0,0) to (10,1) within 750ms, and then back in another 750ms.<br />
<br />
function OnLoad()<br />
Game.SetDynamicBlockTranslation("Block0", 10, 1, 1500, 0, 0)<br />
return true<br />
end<br />
<br />
Example on how to convert a MoveBlock function into a Translation (see above):<br />
<br />
function Tick()<br />
Game.MoveBlock("Block0", 0.5,0)<br />
return true<br />
end<br />
<br />
Block0 moves forever to the right: 0.5px every 1/100s<br />
So it moves at a speed of 300m/60s<br />
<br />
function OnLoad()<br />
Game.SetDynamicBlockTranslation("Block0", 300, 0, 12000, 0, 6000)<br />
return true<br />
end<br />
<br />
This is the MoveBlock function in the translation-version. <br />
It moves 300m to the right and 300m back to the left in 12000ms. endTime is set to 12000/2=6000, so that the translation stops as soon as Block0 reaches (300,0)<br />
<br />
<br />
== SetDynamicBlockNone(block) ==<br />
[require Xmoto >= 0.2.0]<br />
=== Explanation ===<br />
This function stops all the animation applied on the block. The block must be set dynamic so that it works (modify the level to get <position x="0" y="0" dynamic="true" />).<br />
<br />
=== Script example ===<br />
In the example, the block will move until the player presses the key S.<br />
<br />
function OnLoad()<br />
Game.SetDynamicBlockTranslation("Block0", 10, 1, 1500, 0, 0)<br />
Game.SetKeyHook("S", "StopAnimation")<br />
return true<br />
end<br />
<br />
function StopAnimation()<br />
Game.SetDynamicBlockNone("Block0")<br />
end<br />
<br />
<br />
== GetEntityRadius(entity) ==<br />
[require Xmoto >= 0.2.0]<br />
=== Explanation ===<br />
Return the radius of an entity. This radius is used for collision. You can use this function for your own collision or anything else.<br />
<br />
=== Script example ===<br />
The example shows you the radius of the strawberry.<br />
<br />
function OnLoad()<br />
Game.Message("Radius of the strawberry : "..Game.GetEntityRadius("Strawberry0"))<br />
return true<br />
end<br />
<br />
<br />
== KillEntity(entityID) ==<br />
[require Xmoto >= 0.2.1]<br />
=== Explanation ===<br />
If you call this function, the entity entityID will be deleted. The entity can be a strawberry or any sprite.<br />
<br />
=== Script example ===<br />
In the following example, the strawberry will be deleted when the player will enter in the zone Zone0.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.KillEntity("Strawberry0")<br />
end</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=User_talk:Hiddo&diff=5789User talk:Hiddo2010-11-26T11:26:28Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Hiddo</p>
<hr />
<div>== Changing an image to an image that you can see in X-Moto ==<br />
<br />
First paste the picture you want to use.<br />
<br />
[[Image:Tut1.jpeg]]<br />
<br />
Select the picture -> Click on Path -> In the Path menu, click on Trace Bitmap (The hotkey for this is Shift+Alt+B) <br />
In the Mode tab select Edge Detection<br />
In the “Treshold” box besides the Edge Detection, change the Treshold from 0 to 1 and update, keep doing this until you get the desired line thickness. In the example I took a Treshold amount of 1. Press Ok.<br />
<br />
[[Image:Tut2.jpeg]]<br />
<br />
Now you have a selection of lines, move the lines away from the image as showed above.<br />
Now you could change the block texture of this to a color and you have a simple X colored block.<br />
To color stuff, close all parts if they aren’t already. When you’re done with that, get the “Fill bounded areas” tool. Fill all the parts of the image. Now, change all parts to the textures you want them filled with.<br />
<br />
[[Image:Tut3.jpeg]]<br />
<br />
As you can see I’ve made the vest blue using the texture “Blue1InRainbows” (I’m not coloring the whole picture in the tutorial)<br />
As it is now it won’t work, because closed spaces will be filled up with the color which is around it, so you need to cut a small opening in closed space you want colored (Maybe it can be done more easily, but that’s my method) by making a thin 4 node line:<br />
<br />
[[Image:Tut4.jpeg]]<br />
<br />
[[Image:Tut5.jpeg]]<br />
<br />
Copy the line for multiple uses. Move the line to the place you want to cut open as shown in the image below.<br />
<br />
[[Image:Tut6.jpeg]]<br />
<br />
Select the thin line and the part you want to cut, if you have them both selected go to: Path -> Difference (Ctrl + -) and then you should have a thin cut in the line you wanted to cut. (Make sure the thin line is on a layer that is above the layer you want the cut in.) <br />
<br />
[[Image:Tut7.jpeg]]<br />
<br />
As you can see, there is a nice thin cut that you can barely or can’t see in X-Moto or when zoomed out. Make sure that the cut is well made by checking if the nodes one each side of the cut don’t hit each other.<br />
<br />
An example: <br />
<br />
[[Image:Tut8.jpeg]]<br />
<br />
And the result below:<br />
<br />
[[Image:Tut9.jpeg]]<br />
<br />
<br />
Please note that these images, because they have a huge amount of nodes, are really large, you can somewhat make the amount of kb's less by "Smoothening" (Ctrl+L) the image. But it's still quite large, I believe the maximum amount of kb's a level can have to upload at the X-Moto site is 600 kb, atleast around that amount.<br />
<br />
Good luck<br />
<br />
Hiddo<br />
<br />
[[Category:Editor]]</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:Wishlist&diff=5788Talk:Wishlist2010-11-26T11:26:27Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Nadenislamarre</p>
<hr />
<div>* System requirements down! The game is rather simple, and the requirement of a 500Mhz proc. is simply ridiculous.<br />
Comment : who has a computer slower ?<br />
In fact, if it is slow on a computer, it is mainly because of the graphical card which must allow 3D acceleration.<br />
<br />
Comment : Has xmoto ever been profile to find possible bottleneck ??<br />
<br />
Comment : as someone stated in the first comment, if it's slow, it's probably because <br />
of an old non-opengl video card, although there's a large number of unoptimized parts. <br />
The development philosophy has generally been to focus on making a game, rather than <br />
making efficient code that runs on ancient computers.</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Fr:Guide_%C3%A0_X-Moto_de_Philip&diff=5787Fr:Guide à X-Moto de Philip2010-11-26T11:25:48Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Computerhelp</p>
<hr />
<div>[[Philip's xmoto guide|English]]<br />
<center><u><font size="20" color=#aaaaff><br />
Leçons intéressantes de Philip<br />
</font></u></center><br />
<br/><br />
<br/><br />
Auteur : Philip Winter (traduit en français par Shepard62700FR et Computerhelp) <br />
<br/><br />
Date : Février 2009<br />
<br/><br />
<br/><br />
<p>Ce „guide“ va vous aider a faire de vous un bon joueur, faire un record et d'autres choses...</p><br />
<br />
... comme : „être une légende“<br/><br />
ou „Ultra rapide“<br/><br />
ou „Choses que vous voulez savoir“<br/><br />
ou „Choses que vous savez pas et que je vais vous dire“ (hehe^^)<br/><br />
ou „la leçon historique“<br/><br />
et „quelques interviews“<br/><br />
<br/><br />
Et beaucoup d'autres...<br />
<br/><br />
<br/><br />
Prologue : Ce guide est pour tout ceux qui ont du mal à jouer à XMoto et qui ont besoin de trucs et astuces... ou ceux qu'ils veulent faire un record. J'essaye de tout bien expliquer...<br/><br />
Si vous avez des questions : philwin01@gmail.com, ou sur Internet via XMoto ou le chat IRC (si je suis là)<br />
<br/><br />
<br/><br />
J'espère que beaucoup vont lire ce guide donc je veux remercier mes fans et ceux qui m'ont aidé avec mes problèmes (ou essayé) et ceux qui améliorent XMoto - spécialement les créateurs de niveaux.<br/><br />
Gaivota a dit : „Si tu veux faire ce truc, fait le cool, professionnel et marrant“ ou quelque chose comme ca... j'essaye.<br />
<br/><br />
<br/><br />
J'ai décidé de rédiger ce document car c'est le meilleur moyen d'aider les autres<br />
<br/><br />
<br/><br />
<br/><br />
<br/><br />
<font size="5" color=#ff9900><center>Dédicace à Duuferna, Destroyer, Zigi, link et Arctis</center></font><br />
<br/><br />
<br/><br />
<br />
<font size="10" color=#aaffaa>Etre une légende...</font><br />
<br />
<font size="5" color=#ff0000>La traduction n'est pas terminée | Translation is not done yet</font><br />
<br/><br />
Tout d'abord, je dois dire que personne ne peut décider si vous êtes une légende ou non. Tout est une question de <font color=#4444ff>renommée, de détermination, de destin, de courage</font> et de certaines autres choses.<br/><br />
Il est difficile d'écrire sur „devenir une légende"parce que je ne sais vraiment ce que je voudrais dire.<br/><br />
Vous avez toujours à croire en vous-même et vous avez besoin de beaucoup de temps - vraiment beaucoup. Seules les autres personnes peuvent dire si vous êtes une légende ou non. Je pense que j'ai perdu la moyenne réelle du titre maintenant, mais c'est également important.<br/><br />
<br/><br />
Beaucoup d'entre vous qui lisez pensent qu'ils ne jouent pas très bien à X-Moto . C'est ok. Maintenant vous aller penser „pourquoi dit-il cela?" C'est simple : les personnes qui pensent qu'ils sont faibles ne peuvent pas faire mieux. Vous avez toujours à croire en vous-même. 1 des règles les plus importante est que vous ne devez <font color=#4444ff>JAMAIS ABANDONNER!</font> Si vous ne pouvez pas terminer un niveau, c'est tant pis. Vous savez que vous êtes bon et ce que vous pouvez faire ou non. Essayez d'abord les niveaux simples et vous verrez que vous obtiendrez meilleure vitesse plus façilement. Vous remarquerez que vous êtes en mesure de terminer les niveaux maintenant. Puis, vous savez que vous êtes sur la bonne voie... <br/><br />
<br/><br />
La chose la plus importante lorsqu'on devien une légende est d'être différent de toutes les autres personnes. Cela vous semble bizarre ? ... ça l'est... mais vous voyez (ou je dis maintenant "u") que j'ai de nombreux fans et certains d'entre eux pense que je suis une légende. Peut-être ils ont raison, peut-être pas. Je ne veux pas être égoïste... C'est pourquoi je dis toujours que je ne suis plus le gars qui rend les replays plus difficiles et de meilleure qualité. Il est difficile d'obtenir l'image d'une légende. Exemple: K. (Désolé k.) est maintenant le 1er et a certains replays a de très bons records (5.2.09). Il avait une carrière de superstar mais je n'ai jamais entendu personne dire que c'est une légende.<br/><br />
<br/><br />
La chose réelle à ce sujet est que <font color=#4444ff>vous êtes une légende si vous avez arrêté de jouer à X-Moto</font>... C'est tout (une demi-page pour rien - quelle honte)<br/><br />
<br/><br />
<font color=#4444ff>La carrière d'une légende:</font><br />
<br/><br />
*Adorer X-Moto et essayer de terminer les niveaux façiles<br />
*S'entraîner<br />
*Essayer de terminer les niveaux moyens et difficiles<br />
*S'entraîner<br />
*Encore s'entraîner<br />
*Faire des records<br />
*Si des gens disent „WOW“ au sujet de vos records vous avez presque terminé.<br />
*Arrêter de jouer à X-Moto.<br />
*Profitez d'être une Légende....<br />
<br/><br />
Je pense que c'est suffisant pour le début. Faites une pause et buvez un peu d'eau ou de lait (facultatif). Dans les 3 sections suivantes vous apprendrez quelques bons trucs et la pratiques des choses. <br />
<br/><br />
<br/><br />
<br />
<font size="10" color=#aaffaa> Les choses que vous voulez savoir...</font><br />
<br />
Lorsque j'ai commencé à écrire ce document je voulais obtenir certains titres agréable et intéressants, comme vous pouvez le voir. Je ne savais pas vraiment ce que je devais écrire ici et j'ai beaucoup réfléchi sur ce que les autres aimeraient savoir. Donc, j'ai demandé à certaines personnes ce qu'ils voulaient savoir sur X-Moto et il y avait quelques bonnes questions...<br />
<br />
<font color=#4444ff>Anonyme:</font> „Pourquoi les profils meurrent toujours dans mes niveaux ?“ --- Les profils ne sont pas des Dieux. Ce sont des humains qui vous aiment bien et ont également essayé un niveau parfois, aussi si ils jouent bien comme Krzys ou Zigi.<br />
<br />
<font color=#4444ff>Darknight:</font> „Comment faire un bon looping dans l'éditeur de niveaux "? --- Assurez-vous d'abord que cela ressemble à un cercle. Il est donc facile de conduire l'ensemble avec une certaine vitesse dans un looping. Le cercle ne peut pas être inférieur à 2 largeurs de moto.<br />
<br />
<font color=#4444ff>Janii:</font> „How to keep balance?“ --- Thats a thing of training. Always try to have the head and one wheel at the same high (or head a bit higher). First you should try to stand on one wheel with this trick. (it helps if you brake while doing this) Then you could try to give gas a bit. You will see that it is harder to hold balance because the wheel you are standing on is moving. Press left and right <font color=#4444ff>moderately and carefully</font> to hold the balance. You can also regulate this with giving gas. (but i would only recommend this to experienced players) I hope you can take my bad english...<br />
<br />
<font color=#4444ff>Scor:</font> „How to drive up mountains?“ --- Always try to have as much contact with the ground as possible. Only look at your <font color=#4444ff>front and back wheel.</font> The head is unimportant at this moment. If you see that the front wheel goes up very fast and you will die soon you just have to turn right. Good players can profit from this feature too but it is hard. If the wheel goes up you have to jump a bit. If you turn right at the right time then (and give gas) you can move on very fast. You know that you turned at the right time when your front wheel goes down slowly then.<br />
<br />
<font color=#4444ff>crazymotorc:</font> „How to pass a climbing section at a Heaven level?“ --- You have to care about your speed and the time when you turn. Most times you have to drive in with normal – slow speed and turn very fast at the first wall. The rest is very similar to the first turn. Always try another speed and another time you turn. So you can do this climbing paths very simple.<br />
<br />
<font color=#4444ff>Scor:</font> „How long do i have to play this game to finish hard levels?“ --- It depends on what you mean with „hard“ levels. It also depends on how fast you get better. But i'd say that you need 5 weeks if you play 1-2 hours per day.<br />
<br />
<font color=#4444ff>Unnheulu:</font> „How to wheely uphill when there is a low ceiling?“ --- Try to look at your front wheel. If it is too high you know that your head is too low. It is also bad if it is almost at the bottom. So try to hold your head in the middle even if it is hard. There is no trick you could use at this problem... just training.<br />
<br />
<font color=#4444ff>The chosen one:</font> „How u and other advanced players can wheelee so balanced?“ --- <font color=#4444ff>Training!!!</font> That's all. Look at Janii's question if you want to get more information.<br />
<br />
<font color=#4444ff>KONA:</font> „When should i start gettin wr's of my own?“ --- When you think that you are ready. I can't tell you when you are ready. Everybody has to decide on his/her own if he/she is ready to make a record. <font color=#4444ff>Assurance</font> ... that's the word i was searching for.<br />
<br />
<font color=#4444ff>Scor:</font> „What should i do when i don't know where to go next in a level?“ --- Press the „tab“ button to have a look on the level. So you can plan where to go next. Otherwise look at the record.<br />
<br />
<br />
<br />
<font size="10" color=#aaffaa>things you don't know and i tell you...</font><br />
<br />
In this section i'll tell you many nice, useful tipps and other cool stuff. The title of this section seems weird but i didn't want to use „profi tipps“ because that seems boring. I hope i can give you some useful tipps. They might seem so crazy but the really help you. I'll also try to show you how good some of them can help you. Some of these things are my personal secret tipps i wouldn't tell any person, exccept really good friends. They are also my secret of success – so this section might be very important for you...<br />
<br />
<font color=#4444ff>Rule 1)</font><br/><br />
Never think about how you want to make a trick or how to play a level. Sure u have to know how to do the tricks but you shouldn't concentrate on doing it. You maybe won't belive me but it really helps. (also at making a record) I'd say that it makes you 20% better than you are at the moment. Thats a lot. So just try it and you will see...<br />
<br />
<font color=#4444ff>Rule 2)</font><br/><br />
Imagine how the bike and the driver will move. Your brain always guesses what will happen in 0.1 sec. This means that it guesses the future. I'm sure you want to know why i tell you that: Because it is interesting hehe.<br />
Imagine how the bike will move and what you do after. This means that you always have to think 0.5 – 1 sec into the future and not to think about what you do at the moment. Seems hard? It is. But with this technique you can get 30 - 40% better than you are now. This rule is similar to the first one but both of them help you in another way.<br />
<br />
<font color=#4444ff>Rule 3)</font><br/><br />
Look at the record to estimate how hard the level is. You can also look how the ghost made a trick. This helps you a lot while plaing the level. You can learn a lot by watching other people playing and solving problems. This makes you 15-20% better.<br />
<br />
<br />
<br />
<font size="10" color=#aaffaa>the history lesson...</font><br />
<br />
I dont want to make this section that long because i made the interviews and the end before i wrote this text hehe. I just wanted that other people know what was going on at xmoto the last 5 years from my perspective...<br />
<br />
When i begun to play there were „only“ 231 levels. Nowadays some ppl have 231 records. What a weird thing... Whatever. First of all i have to tell you the big legends at xmoto. They were masters when i had problems to finish the basic levels.<br />
<br />
*<font color=#4444ff>jj</font> (has great skill)<br/><br />
*<font color=#4444ff>kg </font>(very fast)<br/><br />
*<font color=#4444ff>exodus </font>(beat those hardest levels at first)<br/><br />
*<font color=#4444ff>Tarkan BJK</font> (just crazy)<br/><br />
*<font color=#4444ff>Duuferna </font>(oldschool)<br/><br />
*<font color=#4444ff>Destroyer </font>(horribly fast and good)<br/><br />
*<font color=#4444ff>EITROX </font>(solid record beater)<br/><br />
*<font color=#4444ff>Bat the baseball</font> (fast and clever)<br/><br />
*<font color=#4444ff>Adrien</font>(very fast and concentrated)<br/><br />
<br />
I hope i didn't forget one :P<br />
These players were and are my idols. I always looked up to them. I'm so sorry that most of them dont have records any more...<br />
<br />
Whatever. Xmoto grew every day and the community got bigger very fast. Particularly the last 2 years. The following list will show you the people who were #1<br />
<br />
*<font color=#4444ff>Duuferna </font>(136 Wrs)<br />
*<font color=#4444ff>Destroyer </font>(227 Wrs)<br />
*<font color=#4444ff>philip </font>(311 Wrs)<br />
*<font color=#4444ff>Zigainer </font>(around 345 Wrs)<br />
*<font color=#4444ff>Krzys </font>(around 320 Wrs)<br />
<br />
<br />
Xmoto got many updates since it has been released years ago. The coolest updates since its release:<br />
<br />
*Get levels from internet<br />
*Record uploading and looking at ghosts<br />
*Multiplayer for 4 people<br />
*Network play<br />
*Chipmunk<br />
<br />
I think xmoto will have a nice future. Let's see what happens...<br />
Ps: All the people who work on xmoto like <font color=#4444ff>nicolas, tod, gaivota etc.</font> do great work every day (just wanted to say)<br />
<br />
<br />
<font size="10" color=#aaffaa>some interviews...</font><br />
<br />
I thought it would be nice to know what some of the <font color=#4444ff>world best players </font>think and what is going on in their brains. They have some nice Tipps for you... I copied their answers 1:1 so I'm <font color=#4444ff>not responsible</font> for the following grammar mistakes hehe<br />
<br />
*<font color=#4444ff>What is you secret of success?</font><br />
<br />
**<font color=#ff00ff>Hiddo</font> -“No idea, I'm mostly just talented in video games :)“<br />
**<font color=#ff00ff>KONA</font> - „It is much easyer when there are two player playing the same account but I'm gonna say that i had bene very critical to the WR's and just had faith that it its possible to beat it. „<br />
**<font color=#ff00ff>philip</font> - „Assurance and 3 years of training. Man i can tell u that wasnt easy^^“<br />
**<font color=#ff00ff>ade626</font> - “well i usually try to adapt to the level. i keep trying and never give up“<br />
**<font color=#ff00ff>Zigainer </font>- „self-assurance, trust in yourself, you can do whatever you want, just believe it.“<br />
**<font color=#ff00ff>Duuferna </font>- „i guess i was good because i trained so hard“<br />
**<font color=#ff00ff>linkdu44</font> - "I played a lot, thats all :)"<br />
<br />
*<font color=#4444ff>Which tipps you have for people who want to get better?</font><br />
<br />
**<font color=#ff00ff>Hiddo</font> - „Practice hard levels, practice in general, in balancing parts, minimize the amount of turning (left and right arrow) you use, mostly stay balanced using throttle since it's more stable.“ <br />
**<font color=#ff00ff>KONA</font> - „Play different levels. The time isnt the major thin at first. The most important thing is to beat meny levels.„<br />
**<font color=#ff00ff>philip</font> - „Read this document lol. I think thats enough information for you^^“<br />
**<font color=#ff00ff>ade626</font> -“i think that people should keep trying and trying“<br />
**<font color=#ff00ff>Zigainer</font> - „You won't get better if you think "I want to get better", just think "I am good", play levels you like and in which you're good, play them as long as you get near to WR or beat it. After it you'll be better in all things.“<br />
**<font color=#ff00ff>Duuferna</font> - „have to love xmoto and love playing it to get better, have to practise a lot - hunger to be better and ofcourse be patience“<br />
**<font color=#ff00ff>linkdu44</font> - "first at all, try to finish maximum of levels, then try to have a good time in maximum of levels, then try to do exactly like the wr (tricks), then start to beat wr =p" <br />
<br />
*<font color=#4444ff>How did you get so *!#&$ good?</font><br />
<br />
**<font color=#ff00ff>Hiddo</font> - „I'm not *!#&$ good, you are, anyway, I think it's mostly because I only like and play hard levels.“<br />
**<font color=#ff00ff>KONA</font> - „I used almost all the time i was on computer to x-moto. <br />
**<font color=#ff00ff>philip </font>- „Many things are responsible for that: The long time i was playing (i stopped to count the years^^) or other people. Also my fans etc.“<br />
**<font color=#ff00ff>ade626</font> - “I get good because i like to play“<br />
**<font color=#ff00ff>Zigainer</font> - „Just played many times, for many hours, always looked for new tricks, tried to improve bad made tricks or levels and beat WR..“<br />
**<font color=#ff00ff>Duuferna </font>- „like i said i played so many hours a day :DD and i didnt quit trying if there was hard record to brake“<br />
**<font color=#ff00ff>linkdu44</font> - "I just played a lot. Also when i did my first wr, my motivation was bigger. I really enjoy to make wr, whatever the time i spend, that why i spend a lot of time and why i get so *!#&$ good(everyone can, and im ( *!#&$ good)/38 than philip =p)"<br />
<br />
*<font color=#4444ff>Who has the chance to be a legend?</font><br />
<br />
**<font color=#ff00ff>Hiddo</font> - „Well you already are so... I don't know who else, Kryzs is fast but not that strong... Don't really know Zigi though his records are good, but he's probably a legend already... Benzi Heler maybe? You guys always say I have the chance but w/e :p“ <br />
**<font color=#ff00ff>KONA</font> - „everyone ^^“<br />
**<font color=#ff00ff>philip</font> - „Everybody who is crazy enough“<br />
**<font color=#ff00ff>ade626</font> - “Everyone has a chance of being a legend“<br />
**<font color=#ff00ff>Zigainer</font> - „Everyone“<br />
**<font color=#ff00ff>Duuferna</font> - „oh i have to check the ranking list :DDDD - but first i say you - and i think u are kind of legend ? :D - toughest records - old school too :D“ philip - „i meant generally :D“ Duuferna - „destroyer and adrien i guess - but i think destroyer is a legend - that no crash, noob guy“<br />
**<font color=#ff00ff>linkdu44</font> - "Everyone. It dont need to have a crazy numbe of wr, just crazy wr."<br />
<br />
*<font color=#4444ff>Do you think philip is crazy?</font><br />
<br />
**<font color=#ff00ff>Hiddo</font> - „Yes, you are :D“<br />
**<font color=#ff00ff>KONA</font> - „Oh...Philip is sooooo crazy xD u should't take him seriously ;)“<br />
**<font color=#ff00ff>philip</font> - „If im not why i made this question then? What a great LOL“<br />
**<font color=#ff00ff>ade626</font> - “if u mean crazy as in good then yes i do“<br />
**<font color=#ff00ff>Zigainer</font> - „Don't know if he's crazy, just know that he sucks :P“<br />
**<font color=#ff00ff>Duuferna</font> - „:DDD - i think everybody is a little crazy when they play xmoto :D“<br />
**<font color=#ff00ff>linkdu44</font> - "Dude, i dont know a craziest man!"<br />
<br />
Sorry that i couldn't get more answers from people like Krzys or Destroyer. I sent like 12 messages to the „elite of xmoto“. I was very proud to make an interview with Duuferna – one of the biggest legends of xmoto. My heart was going like 100 times per minute...<br />
<br />
<br />
<br />
Done... huh... That was a lot of work. (especially the interviews took a lot of time) I hope you enjoyed this text. I tried to explain as good as possible for my english knowledge hehe. I had a lot of fun at making this guide so i hope you also had fun by reading it. I wanted to write a bigger end-paragraph but i don't know what i should write now^^ I think you can take the end as it is :D<br />
<br />
Thanks that you read these 6 pages so intensely. <br />
<br />
<br />
<br />
<br />
<font size="10" color=#aaffaa>Have a nice day...</font></div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=.rpl&diff=5786.rpl2010-11-26T11:25:46Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Nadenislamarre</p>
<hr />
<div>[[Ca:.rpl|Català]] - [[Es:.rpl|Español]]<br />
<br />
It's a binary file, and below is a description of it's format.<br />
<br />
==Format==<br />
<br />
===Header===<br />
<br />
{| border="1" cellspacing="0" cellpadding="5" align="center"<br />
!n Bytes<br />
!Type<br />
!Name<br />
!Default Value<br />
!Comment<br />
|-<br />
|1<br />
|Byte<br />
|Version<br />
|0x01<br />
|Version of the replay<br />
|-<br />
|4<br />
|Little-endian integer<br />
|N/A<br />
|0x12345678<br />
|Little/big endian safety check<br />
|-<br />
|?<br />
|STRING<br />
|LevelID<br />
|<br />
|Level ID<br />
|-<br />
|?<br />
|STRING<br />
|PlayerName<br />
|<br />
|Player name<br />
|-<br />
|4<br />
|Little-endian float<br />
|FrameRate<br />
|25<br />
|Replay frame rate<br />
|-<br />
|4<br />
|Little-endian integer<br />
|StateSize<br />
|<br />
|State size<br />
|-<br />
|1<br />
|Boolean<br />
|Finished<br />
|0x00 or 0x01<br />
|Level finished ? (0x01 = true)<br />
|-<br />
|4<br />
|Little-endian float<br />
|FinishTime<br />
|<br />
|Finish time (in seconds)<br />
|-<br />
|}<br />
<br />
===Events===<br />
<br />
.rpl version 1 includes event data :<br />
<br />
{| border="1" cellspacing="0" cellpadding="5" align="center"<br />
!n Bytes<br />
!Type<br />
!Name<br />
!Default Value<br />
!Comment<br />
|-<br />
|4<br />
|Little-endian integer<br />
|InputEventsDataSize<br />
|<br />
|Uncompressed events' size<br />
|-<br />
|1<br />
|Boolean<br />
|N/A<br />
|0x00 or 0x01<br />
|Are events' data compressed ? (0x01 = true)<br />
|-<br />
|}<br />
<br />
If events' data are compressed :<br />
<br />
{| border="1" cellspacing="0" cellpadding="5" align="center"<br />
!n Bytes<br />
!Type<br />
!Name<br />
!Default Value<br />
!Comment<br />
|-<br />
|4<br />
|Little-endian integer<br />
|CompressedEventsSize<br />
|<br />
|Compressed events' size<br />
|-<br />
|CompressedEventsSize<br />
|BUFFER<br />
|CompressedEvents<br />
|<br />
|Compressed events<br />
|-<br />
|}<br />
<br />
else if events' data aren't compressed :<br />
<br />
{| border="1" cellspacing="0" cellpadding="5" align="center"<br />
!n Bytes<br />
!Type<br />
!Name<br />
!Default Value<br />
!Comment<br />
|-<br />
|InputEventsDataSize<br />
|BUFFER<br />
|InputEventsData<br />
|<br />
|Not compressed events<br />
|-<br />
|}<br />
<br />
===Chunks===<br />
<br />
{| border="1" cellspacing="0" cellpadding="5" align="center"<br />
!n Bytes<br />
!Type<br />
!Name<br />
!Default Value<br />
!Comment<br />
|-<br />
|4<br />
|Little-endian integer<br />
|NumChunks<br />
|<br />
|Number of chunks<br />
|-<br />
|}<br />
<br />
For each chunk : <br />
<br />
{| border="1" cellspacing="0" cellpadding="5" align="center"<br />
!n Bytes<br />
!Type<br />
!Name<br />
!Default Value<br />
!Comment<br />
|-<br />
|4<br />
|Little-endian integer<br />
|NumStates<br />
|<br />
|Number of states in the chunk<br />
|-<br />
|1<br />
|Boolean<br />
|N/A<br />
|0x00 or 0x01<br />
|Are states' data compressed ? (0x01 = true)<br />
|-<br />
|}<br />
<br />
If states' data are compressed :<br />
<br />
{| border="1" cellspacing="0" cellpadding="5" align="center"<br />
!n Bytes<br />
!Type<br />
!Name<br />
!Default Value<br />
!Comment<br />
|-<br />
|4<br />
|Little-endian integer<br />
|CompressedSize<br />
|<br />
|Compressed states' size<br />
|-<br />
|CompressedSize<br />
|BUFFER<br />
|Compressed<br />
|<br />
|Compressed states<br />
|-<br />
|}<br />
<br />
else if states' data aren't compressed :<br />
<br />
{| border="1" cellspacing="0" cellpadding="5" align="center"<br />
!n Bytes<br />
!Type<br />
!Name<br />
!Default Value<br />
!Comment<br />
|-<br />
|NumStates * StateSize<br />
|BUFFER<br />
|ChunkData<br />
|<br />
|Not compressed states<br />
|-<br />
|}<br />
<br />
===Some Explanations===<br />
<br />
STRINGs are stored in a Pascal-like way, where the first byte tells how long the string is, followed by the actual string.<br />
Notice that there's no tailing \0 to mark the end of the string.<br />
And yes, this means strings can't be longer than 255 characters.<br />
To confirm : according to the code, the size is not limited to 256 chars, but 256^4<br />
<br />
BUFFERs are like STRINGs without the first byte "how long the string is".<br />
Notice that there's ''maybe'' no tailing \0 to mark the end of the buffer !<br />
<br />
Compressed data are in GZip format.<br />
<br />
==States==<br />
<br />
TODO<br />
<br />
==Chunks==<br />
<br />
TODO<br />
<br />
"States" follow "Serialized bike state". (in MotoGame.h line ~200)<br />
<br />
==See Also==<br />
<br />
*[[File formats]]</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:Others_tips_to_make_levels&diff=5785Talk:Others tips to make levels2010-11-26T11:25:45Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Nadenislamarre</p>
<hr />
<div>Should this article be merged with the .lvl link on this page:[http://wiki.xmoto.free.fr/index.php?title=File_formats]? It's about the same stuff.<br />
And, I am going to translate this page to Norwegian. Does "astuces" mean the same as "ways"? [[User:Elbeem|Elbeem]] 19:44, 1 September 2006 (CEST)<br />
<br />
Hum i'm not sure it's a good idea even if there are linked :<br />
File formats is for xmoto's developpers while this page is for people wanting to create a new level. Currently, it's not possible to do what is written on this page with the editor, it's why i added this page just next to the editor page. However, a link could be nice.<br />
Nicolas<br />
<br />
Astuces is not an english word... it could be translate as 'hints'.</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Net_protocol&diff=5784Net protocol2010-11-26T11:25:43Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Nadenislamarre</p>
<hr />
<div>== Architecture ==<br />
===Server side===<br />
* 2 ports : port 4130 TCP, and port 4130 UDP<br />
===Client side===<br />
* 1 or 2 ports if possible : random ports<br />
* go throw nat/firewall<br />
<br />
== Main packet ==<br />
Format:<br />
[size of the subheader+subpacket written in ascii]\n<br />
===> beginning of the subheader<br />
[source written in ascii]\n<br />
[subsource written in ascii]\n<br />
[actionType]\n<br />
===> beginning of the subpacket<br />
[subpacket]\n<br />
<br />
* source : -1 for the server, or the uniq number associated to the client<br />
* subsource : the client subsource (0, 1, 2 or 3), for the player on the client machine<br />
* action type : name of the netAction<br />
* subpacket : specific to the netAction. \n is added at each subpacket so that it's more readable on a network sniffer, moreover, it can be used to be replaced by \0 to get the char.<br />
<br />
For each NetAction, you have these two functions: send and NetAction(void* data, int len). When you send, you don't have to add the \n while it's added after. When you received, the len value includes the \n which is in data so that you can use it to retrieve the data easily (by replacing it by \0)<br />
<br />
== Sub packets ==<br />
===NA_clientInfos===<br />
[protocol version]\n<br />
[udp bind key]\n<br />
<br />
* the protocol version is an integer <br />
* the udp bind key cannot contains a \n <br />
<br />
When connecting, the client generates a random key that he sends via tcp (via clientInfos) and udp (via udpBind) so that the server can bind both connections.<br />
The protocol version is compared to the one used by the server, if the both value are not the same, the server remove the client (and send a serverError packet).<br />
<br />
===NA_udpBind===<br />
[udp bind key]\n<br />
<br />
* the udp bind key cannot contains a \n<br />
<br />
===NA_udpBindQuery===<br />
\n<br />
Once the server received the clientInfos packet, he sends a NA_udpBindQuery to the client to ask him to send its udp bind key via udp.<br />
<br />
===NA_chatMessage===<br />
[message]\n<br />
<br />
* message can contain any char on several lines<br />
<br />
Example to show how send and read works :<br />
<br />
// data contains the \n of the protocol. It's included into len :<br />
NA_chatMessage::NA_chatMessage(void* data, unsigned int len) {<br />
((char*)data)[len-1] = '\0';<br />
m_msg = std::string((char*)data);<br />
((char*)data)[len-1] = '\n';<br />
}<br />
<br />
// don't send the ending \n while it's added automatically<br />
void NA_chatMessage::send(TCPsocket* i_tcpsd,<br />
UDPsocket* i_udpsd, UDPpacket* i_sendPacket,<br />
IPaddress* i_udpRemoteIP) {<br />
// force TCP<br />
NetAction::send(i_tcpsd, NULL, NULL, NULL, m_msg.c_str(), m_msg.size()); // don't send the 0<br />
}<br />
<br />
===NA_serverError===<br />
[message]\n<br />
<br />
===NA_frame===<br />
[SerializedBikeState]\n<br />
<br />
Contains the image of the bike at a given time (littleendian order, or bigendian, i don't remember).<br />
<br />
struct SerializedBikeState {<br />
unsigned char cFlags; /* State flags */<br />
float fGameTime; /* Game time */<br />
float fFrameX,fFrameY; /* Frame position */<br />
float fMaxXDiff,fMaxYDiff; /* Addressing space around the frame */<br />
<br />
unsigned short nRearWheelRot; /* Encoded rear wheel matrix */<br />
unsigned short nFrontWheelRot; /* Encoded front wheel matrix */<br />
unsigned short nFrameRot; /* Encoded frame matrix */<br />
<br />
unsigned char cBikeEngineRPM; /* Maps to a float between 400 and 5000 */<br />
<br />
signed char cRearWheelX,cRearWheelY; /* Rear wheel position */<br />
signed char cFrontWheelX,cFrontWheelY; /* Front wheel position */<br />
signed char cElbowX,cElbowY; /* Elbow position */<br />
signed char cShoulderX,cShoulderY; /* Shoulder position */<br />
signed char cLowerBodyX,cLowerBodyY; /* Ass position */<br />
signed char cKneeX,cKneeY; /* Knee position */<br />
};<br />
<br />
===NA_changeName===<br />
===NA_playingLevel===<br />
[level id]\n<br />
<br />
Indicate that you've playing an other level or empty to indicate that you've not playing.<br />
<br />
===NA_changeClients===<br />
<br />
== Scenario ==<br />
* the client connects to the server via TCP<br />
* the client sends a NA_clientInfos netAction via TCP<br />
* the server sends a NA_udpBindQuery netAction to the client via TCP<br />
* the client sends 3 NA_udpBind netActions via UDP to the server<br />
* the server know which tcp connection is bind to which udp connection (several clients could have the same ip) and can send packets via the udp way.<br />
* the server sends the connected client list with a NA_changeClients netAction<br />
<br />
== Examples ==<br />
25<br />
7<br />
0<br />
message<br />
hi everybody</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=How_to_validate_a_sprite&diff=5783How to validate a sprite2010-11-26T11:25:42Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by The only dude</p>
<hr />
<div>= How to validate =<br />
* Download the image file<br />
* Put it to .xmoto/textures/ where it belongs to<br />
* Edit you theme file xml<br />
* Fix the theme file xml (most probably screwed ;-))<br />
* Re-Upload sprite with your theme xml<br />
* Remove old upload<br />
* Click Validate<br />
<br />
= Notes =<br />
There is a glitch in the website code which causes <br />
* Validating of animated and normal sprites break, the link generated for the website doens't work, so it must be fixed by hand (to be continuted)<br />
<br />
=Updating a sprite=<br />
<br />
#update the image on the xmoto server<br />
#update the image md5sum in the website database<br />
#update the image in the svn if it's already in it<br />
#regenerate the themes<br />
#update themes in the svn<br />
#update the package.lst so that xmoto.bin got regenerated<br />
#update the 92x92 bitmap used by inksmoto in ftp://<user>@ftp.tuxfamily.org:21/xmoto/xmoto.tuxfamily.org-web/htdocs/svg2lvl/xmoto_bitmap/ and in svn in extensions/inksmoto/xmoto_bitmap</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Camera_Scripts&diff=5782Camera Scripts2010-11-26T11:25:40Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by GrayFace</p>
<hr />
<div>Here are some scripts you can use in your level.<br />
<br />
== Extended Camera ==<br />
<br />
This script adds new functions to control camera position.<br />
<br />
'''Game.CameraPos()''' returns camera position (x, y) relative to player position.<br />
<br />
'''Usage:''' x, y = Game.CameraPos()<br />
<br />
'''Game.CameraPosAbs()''' returns camera position (x, y) in level coordinates.<br />
<br />
'''Usage:''' x, y = Game.CameraPosAbs()<br />
<br />
'''Game.CameraMoveTo(x, y)''' moves the camera to position (x, y) relative to player.<br />
<br />
'''Example:''' Game.CameraMoveTo(0, 0) -- return camera to its normal state<br />
<br />
'''Game.CameraMoveAbs(x, y)''' moves the camera to position (x, y) in level coordinates.<br />
<br />
'''Example:''' Game.CameraMoveTo(Game.GetEntityPos("cam1")) -- make camera look at "cam1" sprite<br />
<br />
To use the functions add this script to your Lua file:<br />
<br />
-- ExtendedCamera<br />
do<br />
local CamX, CamY = 0, 0<br />
<br />
function Game.CameraPos()<br />
return CamX, CamY<br />
end<br />
function Game.CameraPosAbs()<br />
local x, y = Game.GetPlayerPosition()<br />
return x + CamX + 0.6, y + CamY<br />
end<br />
<br />
local Game_CameraMove = Game.CameraMove<br />
function Game.CameraMove(x, y, ...)<br />
if x ~= 0 and y ~= 0 then<br />
CamX = CamX + x<br />
CamY = CamY + y<br />
return Game_CameraMove(x, y, ...)<br />
end<br />
end<br />
function Game.CameraMoveTo(x, y)<br />
return Game.CameraMove(x - CamX, y - CamY)<br />
end<br />
function Game.CameraMoveAbs(x, y)<br />
local px, py = Game.CameraPosAbs()<br />
return Game.CameraMove(x - px, y - py)<br />
end<br />
end<br />
-- /ExtendedCamera<br />
<br />
Author: GrayFace<br />
<br />
== Static Camera ==<br />
<br />
This script lets you set the camera to a fixed position. The camera will not follow the player any more.<br />
<br />
'''StaticCamera(x, y)''' will set the camera to (x, y) coordinates in the level<br />
<br />
'''StaticCamera()''' ''(without parameters)'' will reset the camera, so it will follow the player again<br />
<br />
Example:<br />
function OnLoad()<br />
StaticCamera(Game.GetEntityPos("cam1")) -- make the camera always look at "cam1" sprite<br />
return true<br />
end<br />
<br />
To use Static Camera add '''Extended Camera''' script to your Lua file and then add this script:<br />
-- StaticCamera<br />
do<br />
local camX, camY<br />
local oldTick<br />
<br />
local function MyTick()<br />
local ret = oldTick and oldTick() or true<br />
Game.CameraMoveAbs(camX, camY)<br />
return ret<br />
end<br />
<br />
function StaticCamera(x, y)<br />
if x then<br />
if camX == nil then<br />
oldTick = Tick<br />
Tick = MyTick<br />
end<br />
camX, camY = x, y<br />
Game.CameraMoveAbs(camX, camY)<br />
else<br />
if camX then<br />
Tick = oldTick<br />
camX, camY = nil, nil<br />
Game.CameraMoveTo(0, 0)<br />
end<br />
end<br />
end<br />
end<br />
-- /StaticCamera<br />
<br />
Author: GrayFace<br />
<br />
== Zone Camera (sprites based) ==<br />
<br />
This script is based on idea from ''Cigam_Interesting Effect 03 (Zone Camera)'' level. It implements it using camera sprites instead of zones.<br />
<br />
Usage:<br />
<br />
Create sprites in your level at points where you want cameras to be. Name them "cam1", "cam2", "cam3" and so on. (use Effects -> X-moto -> Other -> Change Id in Inkscape) I suggest using invisible sprites.<br />
<br />
Then call '''UseZoneCamera(cam_count, keep_cams)''' to turn zone cameras on.<br />
<br />
'''cam_count''' parameter is the number of cameras.<br />
<br />
If '''keep_cams''' parameter is ''true'', the sprites used as cameras will remain on the level. If it's ''false'' or not specified, the sprites will be deleted once zone camera is activated.<br />
<br />
Example:<br />
function OnLoad()<br />
UseZoneCamera(3) -- if you have only 3 cameras: "cam1", "cam2", "cam3"<br />
return true<br />
end <br />
<br />
You can also make some camera preferable. Change its ''Sprite scale'' value to do so. (in Effects -> X-moto -> Entities -> Sprite dialog) Set bigger value to make the camera more 'respected'. The script likes bigger cameras ;)<br />
<br />
Test your level in 1280x1024 resolution to make sure player is always visible.<br />
<br />
''Note: don't use Zone Camera if it doesn't fit your level. It brings certain inconvenience into playing. IMO, it may be good only for rooms-based levels.''<br />
<br />
To use Zone Camera add '''Extended Camera''' script to your Lua file and then add this script:<br />
<br />
-- UseZoneCamera<br />
function UseZoneCamera(CamCount, keep_sprites)<br />
-- const<br />
local stick_radius = 0.5<br />
local y_coeff = 0.8<br />
-- /const<br />
<br />
local Cams = {}<br />
local CurCam<br />
local CamX, CamY = 0, 0<br />
<br />
local abs = math.abs<br />
local sqrt = math.sqrt<br />
<br />
local function ChangeCam()<br />
local x, y = Game.GetPlayerPosition()<br />
<br />
local function dist(cam)<br />
local c = Cams[cam]<br />
local dx, dy = abs(c[1] - x), abs(c[2] - y)*y_coeff<br />
return sqrt(dx*dx + dy*dy)/c[3]<br />
end<br />
<br />
local cam = CurCam<br />
local m = cam and (dist(cam) - stick_radius)<br />
<br />
for i = 1, CamCount do<br />
local d = dist(i)<br />
if not m or d < m then<br />
m = d<br />
cam = i<br />
end<br />
end<br />
CurCam = cam<br />
Game.CameraMoveAbs(Cams[cam][1], Cams[cam][2])<br />
end<br />
<br />
for i = 1, CamCount do<br />
local name = "cam"..i<br />
local cam = {Game.GetEntityPos(name)}<br />
cam[3] = Game.GetEntityRadius(name)<br />
Cams[i] = cam<br />
if not keep_sprites then Game.KillEntity(name) end<br />
end<br />
ChangeCam()<br />
<br />
local oldTick = Tick<br />
Tick = function()<br />
local ret = oldTick and oldTick() or true<br />
ChangeCam()<br />
return ret<br />
end<br />
end<br />
-- /UseZoneCamera<br />
<br />
Author: GrayFace</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Inkscape-0.3.0&diff=5781Inkscape-0.3.02010-11-26T11:25:39Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Wiki.xmoto</p>
<hr />
<div>[[de:Inkscape-0.3.0|Deutsch]]<br />
<br />
<br />
'''Svg made with previous version of svg2lvl (0.2.0) are not compatible with this version of svg2lvl.'''<br />
<br />
=Required software=<br />
<br />
* [http://www.7zip.org/ 7-Zip] for extracting the Inkscape packages (Windows only)<br />
* [http://www.inkscape.org/ Inkscape] (>= 0.45)<br />
* [http://www.python.org/ Python] (>= 2.3)<br />
* Svg2lvl converter (0.3.0)<br />
<br />
= Prerequisites =<br />
<br />
You have to install the svg2lvl Inkscape extension.<br />
<br />
== GNU/Linux ==<br />
<br />
$ tar zxvf svg2lvl-0.3.0.tar.gz<br />
$ cd ~/svg2lvl-0.3.0/<br />
$ mkdir -p ~/.inkscape/extensions/<br />
$ cp -rf * ~/.inkscape/extensions/<br />
<br />
Then, you can launch Inkscape.<br />
<br />
== Mac OS X ==<br />
<br />
You have to install PyXML. Get its .dmg from http://inkscape.modevia.com/macosx-snap/?M=D<br />
<br />
Then, install svg2lvl the same way as under GNU/Linux.<br />
<br />
== Windows 95 & 98 ==<br />
<br />
Extract the archive, then copy all of the files from the svg2lvl-0.3.0 directory into the share/extensions/ directory of the Inkscape installation.<br />
(It will ask if you want to override the inkex.py and bezmisc.py files, answer no)<br />
<br />
Then, you can launch Inkscape.<br />
<br />
== Windows 2000 & XP ==<br />
<br />
Extract the archive then copy the files from svg2lvl-0.3.0 directory into the C:\Documents And Settings\<USER>\Applications Data\Inkscape\extensions\ directory.<br />
<br />
Then, you can launch Inkscape.<br />
<br />
If you get a problem when you launch an X-Moto effect, i.e: "'C:\Document' not found", wait for a new development version of Inkscape, or install svg2lvl the same way as with Windows 95 & 98.<br />
<br />
=Tutorial=<br />
<br />
== Check that svg2lvl is properly installed ==<br />
<br />
* Check in the 'Effects' menu that there is an entry 'X-moto'<br />
* Do 'Save as...' (Shift-Ctrl-S), and check that you can select the 'X-Moto Level (*.lvl)' file format. <br />
<br />
If the installation is not ok, please go to the IRC so we can help you find out why it failed.<br />
<br />
== Draw the level ==<br />
<br />
Note that since X-Moto 0.2.4, you have to press F5 at the menu stage<br />
when you modify the Levels directory (if you make a new level for example)<br />
<br />
Draw you level using inkscape shapes (like circles, rectangles, ...), bezier curves, hand draw, ...<br />
<br />
Tips:<br />
* If you are hand drawing your level, select a shape, and then press Ctrl-L, it will smooth your shape (You can press it more than one time).<br />
* The default zoom is 35%, try change it to 100 or 200%.<br />
* Don't take care of the svg dimensions, you will adjust them to fit your level in the end.<br />
<br />
Example of level :<br />
[[Image:tuto-1.png]]<br />
<br />
== Change block properties ==<br />
<br />
Select one of more shape that you want to transform into an xmoto block.<br />
Then go to the Effect menu, select the xmoto sub entry like in this picture:<br />
<br />
[[Image:tuto-2.png]]<br />
<br />
This windows will popup which allow you to choose your texture for the block(s).<br />
<br />
[[Image:tuto-3.png]]<br />
<br />
Then your level will look like that:<br />
<br />
[[Image:tuto-4.png]]<br />
<br />
== Add entities ==<br />
<br />
Add the player start and then, test your level to verify the good placement of the differents blocks.<br />
<br />
Then, add the other entities:<br />
*end of level<br />
*wreckers<br />
*sprites<br />
*particles sources<br />
*strawberries<br />
<br />
After placing the entities and moving the blocks, your level will now looks like that:<br />
[[Image:tuto-5.png]]<br />
<br />
== Adjust the size of the svg ==<br />
<br />
The svg have to surround all the level blocks. To do that, there's two solutions:<br />
<br />
*Select all the objects of your svg with Ctrl-A, then open the document preferences with Shift-Ctrl-D, and click on 'Adjust the page on the selection'.<br />
*If you want a space between your blocks and the surroundings of the svg, then add a rectangle to your svg, a rectangle with the size of your svg, select it then press Shift-Ctrl-D and click on 'Adjust the page on the selection'. After that, remove the rectangle.<br />
<br />
If your level is too big or too small when you want to play it, change its size.<br />
*Select all the objects with Ctrl-A<br />
*Press Shift-Ctrl-M<br />
*Select the 'dimensions' tab<br />
*Enter the modification percentage and Apply<br />
<br />
== Save the level ==<br />
<br />
Now, you can save your drawing as a xmoto level. First save your svg as an 'Inkscape svg' (the export to .lvl is a destructive one).<br />
Then Save a copy with Shift-Ctrl-Alt-S, and save it as a xmoto level.<br />
<br />
This window will popup:<br />
[[Image:tuto-6.png]]<br />
<br />
Populate it with your informations.<br />
*smooth: put a high value to this, the bigger, the smoother your level. (If there's some graphic glitches in the level when you play it, make this value smaller)<br />
*level id: put no space in it, only alphanumeric and digits.<br />
*required xmoto version:<br />
**put it to 0.2.0 by default<br />
**put it to 0.2.1 if you change the physic of blocks<br />
**if you add a script to your level, put the right value depending on the functions you are using in your script.<br />
<br />
== Play the level ==<br />
<br />
Copy your .lvl into your xmoto Level directory (~/.xmoto/Levels/ under Linux and MacosX), then launch Xmoto.<br />
<br />
If you are using the 0.2.4 version of xmoto, press F5 to reload all the levels so that your level appears in the list.<br />
<br />
== Get tutorial files==<br />
<br />
*svg:[[Media:tutorial.svg]]<br />
*lvl:[[Media:Balls.lvl]]<br />
<br />
= Update the texture and sprite list=<br />
<br />
With new textures and sprites coming out from the net, you need a way to add this new resources into svg2lvl drop down values.<br />
<br />
To do that, update the xml file into the Inkscape extension directory (~/.inkscape/extensions/ under Linux) with the one provided at [http://xmoto.tuxfamily.org/svg2lvl/listAvailableElements.xml]<br />
Then, from Inkscape xmoto menu, select 'Update Xmoto menus', and after that, relaunch Inkscape.<br />
<br />
You will have up-to-date list of value for sprites and textures now.</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Level_FAQ&diff=5780Level FAQ2010-11-26T11:25:36Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Gaivota</p>
<hr />
<div>=Frequently asked Questions=<br />
<br />
===1. How can I create my own Level?===<br />
Its simple: First, download the newest release of the Inksmoto level editor on the main page.<br>Second, read the '''[[How_to_create_smooth_levels_using_Inkscape|wiki tutorials]]''' to learn how to use it.<br>Third, read the guide '''[[About_good_level_design| about good level design]]''', to learn about our quality standards, and why not every first try level gets available for download.<br><br />
<br />
===2. It doesnt work, can you help me?===<br />
Generally you should make sure that the problem isn't caused by anything which is widely described in the [[Main_Page|wiki]] or already discussed in the [http://forum.xmoto.tuxfamily.org/ forum]!<br>If you still have no idea whats the cause, come to our IRC channel to ask for help. Usually you can meet some insiders there that are willing to help.<br>Provide all necessary information such as software versions, logfiles and error messages!<br />
<br />
===3. Your level standards suck! For Elma there are 3,5 Million Levels available and not just 2000!===<br />
Regardless of quantitive considerations, we decided to have some quality standards, which make it '''possible to enjoy the game for all kinds of players''': Beginners, Average and Casual Players, as well as XMoto Professionals. Its not enough doing a level just for some pro players, who dont like Graphics or to upload levels just to have an own level in the game.<br><br />
There are graphically poor levels in the game, which is mostly caused by the fact, that XMoto exists for many years now, and the graphical engine wasn't as far developed in the old days as it is today. So there's no need to emphasize the fact that there are poor levels, because we know! And we don't care about Elma!<br />
<br />
===4. But its so hard to make XMoto levels, that meet your requirements!===<br />
Well, no one said it would be easy! Some gameplay experience, artistic and design skills are required to be able to make a good level. <br />
<br />
===5. Can Elma levels be used in XMoto?===<br />
Since XMoto and Elma use different physics engines, and another level format as well, it is '''not possible''' to use Elma levels in XMoto. Anyway if you feel that an Elma level should be available for XMoto, you could do a GPL remake, which applies to the different physics and needs, but interprets the gameplay of the original level.<br />
<br />
===6. But Elma is so much better than XMoto!===<br />
Then stop whining and play Elma instead.<br />
<br />
===7. Why is my first cave level rejected? It meets all requirements!!1!===<br />
There are already loads of cave levels in the level pool, where the only challenge is to squeeze through low ceiling passages. For most players (or all beyond Pro expertise) this is NOT FUN! XMoto Physics are not designed to do that trick and being able to enjoy the nice gameplay at the same time. Instead, its rather frustrating and shows lack of creativity in level design. So no validation for levels who basically consist of that evil thing!<br />
<br />
===8. But all my friends like it!!1 You must validate it!!===<br />
Well, no. The level validation team is NOT a democratic institution! Not the majority decides but people who have long time experience playing xmoto and also have some artistic and design skills. Sorry, but its up to us, if we find a level good enough or not.</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Es:Contribucions&diff=5779Es:Contribucions2010-11-26T11:25:34Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Trullo</p>
<hr />
<div>[[Contributions|English]] - [[de:Beitragen|Deutsch]] - [[Ca:Contribucions|Català]] - [[No:Bidrag|Norsk]]<br />
<br />
* Puedes añadir información sobre el X-Moto en esta wiki<br />
* Puedes traducir la pagina web o las entradas de la wiki a tu idioma<br />
* Puedes crear un nuevo nivel para el X-Moto<br />
* Puedes crear un nuevo tema para el X-Moto<br />
* Si sabes C++, puedes hacer un patch con la nueva característica que desees<br />
<br />
Para mas información, contacta-nos en el IRC (#xmoto on irc.netrusk.net).</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Es:Sala&diff=5778Es:Sala2010-11-26T11:25:32Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Flo</p>
<hr />
<div>[[Room|English]] - [[de:Raum|Deutsch]] - [[No:Rom|Norsk]] - [[Ca:Sala|Català]]<br />
<br />
Una '''sala''', es en el mundo del X-Moto, una lista privada de récords, los cuales funcionan igual que los récords mundiales oficiales que se pueden ver en la web [http://xmoto.free.fr/index.php?page=all_highscores].</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=User:Cigam&diff=5777User:Cigam2010-11-26T11:25:29Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Cigam</p>
<hr />
<div>This is my basic page, because i am still getting used to editing the WIKI...<br />
<br />
I have added these pages:<br />
<br />
1: [http://wiki.xmoto.tuxfamily.org/index.php?title=Recording_videos_with_an_external_program Recording videos with an external program]<br />
<br />
2:[http://wiki.xmoto.tuxfamily.org/index.php?title=Inksmoto-0.5.0#Tutorial:_Layers_and_Backgrounds Tutorial: Layers and Backgrounds]</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Help:Contents&diff=5776Help:Contents2010-11-26T11:25:28Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Wiki.xmoto</p>
<hr />
<div>[http://meta.wikimedia.org/wiki/Help:Editor How to contribute]<br />
<br />
[http://meta.wikimedia.org/wiki/Help:Wikitext Text formating]</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=No:Hvordan_validere_en_ny_bane&diff=5775No:Hvordan validere en ny bane2010-11-26T11:25:26Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Trullo</p>
<hr />
<div>[[How_to_validate_a_level|English]] - [[Ca:Valida un nivell|Català]] - [[Es:Validar un nivel|Español]]<br />
<br />
=== Regler for hvordan validere en ny bane ===<br />
* Level id må likne på navnet til banen.<br />
* Det må være mulig å åpne banen i xmoto-edit uten å få en error-melding.<br />
* Det må være mulig å spille banen uten å få en error-melding.<br />
* Spilleren må falle normalt på starten (hvis spilleren rykker i starten, betyr det at den starter litt inni veggen).<br />
* Banen bør være ''litt'' interessant.<br />
* Er du usikker? Spør en annen administrator.</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Use_X-Moto_on_a_USB-Key&diff=5774Use X-Moto on a USB-Key2010-11-26T11:25:25Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Nadenislamarre</p>
<hr />
<div>When you run xmoto, it creates a directory into ~/.xmoto, then, if you put xmoto on a usb key and change of computer, you don't find your data back.<br />
By the way, xmoto has an option "--configpath" to change the directory where data are saved.<br />
<br />
==Windows==<br />
# Copy xmoto and files (get the .zip package for example) on a usb key<br />
# Copy the following [[#Media:xmoto_local.bat|this section]] next xmoto.exe and run the .bat<br />
<br />
The .bat runs xmoto with the configpath option set to myConfig<br />
<br />
<br />
===Media:xmoto_local.bat===<br />
This file contains only one line:<br />
@xmoto --configpath myConfig --noDBDirsCheck<br />
<br />
--noDBDirsCheck appears with X-Moto 0.4.3</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=User:Flo&diff=5773User:Flo2010-11-26T11:25:08Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Flo</p>
<hr />
<div>Hi! My name is Flo.<br />
<br />
I'm from Austria and I'm translating this wiki into German.</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=User_talk:Flo&diff=5772User talk:Flo2010-11-26T11:25:07Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Battlestar</p>
<hr />
<div>* Sollte man nicht eher "kompilieren" sagen, statt "erstellen" ? Als langjähriger Entwickler konnte ich mir die ersten drei Sekunden unter dem Begriff nicht viel vorstellen. Erstellen hat eher was mit "selbst schreiben" zu tun, als schlicht und ergreifend den Quellcode in eine binäre Form zu übersetzen.</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Fr:Jouer_%C3%A0_XMoto_sur_une_cl%C3%A9_USB&diff=5771Fr:Jouer à XMoto sur une clé USB2010-11-26T11:25:06Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Shepard62700FR</p>
<hr />
<div>Quand vous lancez XMoto, il crée un répertoire nommé ~/.xmoto, si vous mettez XMoto sur une clé USB et que vous changez de PC, vous n'aurez pas vos sauvegardes.<br />
<br />
A propos, XMoto dispose d'une option "--configpath" pour changer le répertoire où XMoto sauvegarde les données.<br />
<br />
==Windows==<br />
# Copiez XMoto et les fichiers (Archive .ZIP par exemple) sur une clé USB<br />
# Copiez [[#Media:xmoto_local.bat|cette section]] dans le répertoire où se trouve le fichier xmoto.exe et lancez le fichier .bat<br />
<br />
Le .bat lance XMoto de manière à ce qu'il sauvegarde les données dans MaConfiguration.<br />
<br />
<br />
===Media:xmoto_local.bat===<br />
Ce fichier contient 1 ligne :<br />
@xmoto --configpath MaConfiguration --noDBDirsCheck<br />
<br />
--noDBDirsCheck apparaît avec X-Moto 0.4.3 ou supérieur.</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Fi:Screenshots&diff=5770Fi:Screenshots2010-11-26T11:25:03Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Googlebotti</p>
<hr />
<div>__NOTOC__<br />
<br />
[[Screenshots|English]] - [[pt:Screenshots|Portuguese]] <br />
<br />
=X-Moto kuvia=<br />
<br />
<br />
{|<br />
| [[Image:Screenshot0023.png|thumb|left]] || [[Image:Screenshot0005.png|thumb|center]] || [[Image:Screenshot0018.png|thumb|right]]<br />
|-<br />
| [[Image:Screenshot0022.png|thumb|left]] || [[Image:Screenshot0020.png|thumb|center]] || [[Image:Screenshot0019.png|thumb|right]]<br />
|-<br />
| [[Image:Screenshot0025.png|thumb|left]] || [[Image:Screenshot0027.png|thumb|center]] || [[Image:Screenshot0030.png|thumb|right]]<br />
|-<br />
| [[Image:Screenshot0034.png|thumb|left]] || [[Image:Screenshot0036.png|thumb|center]] || [[Image:Screenshot0037.png|thumb|right]]<br />
|-<br />
| [[Image:Screenshot0038.png|thumb|left]] || [[Image:Xmoto01.png|thumb|center]] || [[Image:Xmoto02.png|thumb|right]]<br />
|}<br />
<br />
=Inksmoto Kenttä editorin kuvia=<br />
<br />
<br />
{|<br />
| [[Image:Inksmoto01.png|thumb|left]] || [[Image:Inksmoto02.png|thumb|center]] || [[Image:Inksmoto03.png|thumb|right]]<br />
|-<br />
| [[Image:Inksmoto4.png|thumb|left]]<br />
|}</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Pt:Screenshots&diff=5769Pt:Screenshots2010-11-26T11:25:02Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Jeferson</p>
<hr />
<div>__NOTOC__<br />
<br />
[[Screenshots|English]]<br />
<br />
=Telas de Exemplo do Jogo Xmoto=<br />
<br />
<br />
{|<br />
| [[Image:Screenshot0023.png|thumb|left]] || [[Image:Screenshot0005.png|thumb|center]] || [[Image:Screenshot0018.png|thumb|right]]<br />
|-<br />
| [[Image:Screenshot0022.png|thumb|left]] || [[Image:Screenshot0020.png|thumb|center]] || [[Image:Screenshot0019.png|thumb|right]]<br />
|-<br />
| [[Image:Screenshot0025.png|thumb|left]] || [[Image:Screenshot0027.png|thumb|center]] || [[Image:Screenshot0030.png|thumb|right]]<br />
|-<br />
| [[Image:Screenshot0034.png|thumb|left]] || [[Image:Screenshot0036.png|thumb|center]] || [[Image:Screenshot0037.png|thumb|right]]<br />
|-<br />
| [[Image:Screenshot0038.png|thumb|left]] || [[Image:Xmoto01.png|thumb|center]] || [[Image:Xmoto02.png|thumb|right]]<br />
|}<br />
<br />
=Telas de Exemplo do Editor de Níveis Inksmoto=<br />
<br />
<br />
{|<br />
| [[Image:Inksmoto01.png|thumb|left]] || [[Image:Inksmoto02.png|thumb|center]] || [[Image:Inksmoto03.png|thumb|right]]<br />
|-<br />
| [[Image:Inksmoto4.png|thumb|left]]<br />
|}</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Ca:FAQ&diff=5768Ca:FAQ2010-11-26T11:24:46Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Trullo</p>
<hr />
<div>[[Faq|English]] - [[Es:Faq|Español]] - [[No:Ofte_Stilte_Sp%C3%B8rsm%C3%A5l|Norsk]]<br />
<br />
=== P: Quins son els requisits mínims? ===<br />
R: Aquí hi ha un pla detallat de les recomanacions mínimes del sistema:<br />
<br />
{| class="wikitable"<br />
|-<br />
|CPU: || ~500 MHz (una mica exagerat)<br />
|-<br />
|RAM: || 128 MB (com a mínim 40 MB de memòria preferent)<br />
|-<br />
|Gràfics: || Targeta GeForce-class amb 32 MB de memòria de vídeo (o millor)<br />
|-<br />
|Disc Dur: || 10 MB lliures<br />
|-<br />
|Software: || Microsoft Windows 2000/XP, Linux, Mac OS X, o FreeBSD, i OpenGL-amb suport vídeo driver<br />
|}<br />
<br />
=== P: Vull jugar al X-Moto en un ordinador molt lent! Algun consell? ===<br />
R: Oh i tan! Aquí tens un quants consells que pots aplicar en el cas de tenir un ordinador vell i lent, tenint en compte la pèrdua de qualitat gràfica. Prova a arrancar el joc d'aquesta manera des de la línia de comandament d'ordres:<br />
xmoto -ugly<br />
Això farà que el joc arrenqui amb "ugly mode" activat. Des de X-Moto 0.2.1, simplement prem F1 per canviar a aquest mode. (Fixa't que abans de 0.2.1, els menús del mode "ugly" eren lents, així doncs, si tens una versió antiga de l'X-Moto, escriu xmoto -ugly -level 1 (per començar directament en el nivell 1)<br />
<br />
Al X-Moto es pot jugar en un 233-MHz IBM laptop seguint aquest consell.<br />
<br />
=== P: No puc jugar-hi en Linux/PPC, quan arrenca, la moto es confon ===<br />
R: Es un error de l'ODE ja corregit. La gent que ha tingut aquest problema ha provat amb l'ODE 0.7 i aquests fa que xmoto funcioni correctament.<br />
<br />
=== P: Pot suportar X-Moto sistemes Mac/FreeBSD/etc? ===<br />
R: Com nomes tinc accés a un numero d'ordinadors limitat, no he passat gaire temps comprovant la compatibilitat.<br />
Algunes persones han dit que tots dos estan suportats. MacOS, FreeBSD, inclòs les plataformes de 64-bit estan suportades,<br />
però no ho he pogut comprovar jo mateix.<br />
<br />
=== P: (Mac OS X) No puc trobar on esta el directori dels nivells, les repeticions i els arxius de configuració ===<br />
R: Mira't [[Xmoto directory on Mac OS X]].<br />
<br />
=== P: X-Moto te suport per als nivells de Elastomania? ===<br />
R: No, la física es diferent entre els jocs.<br />
De totes maneres es possible importar les nivells de l'Elastomania al X-Moto,<br />
i també es possible crear nivells aptes per a tots dos jocs.<br />
<br />
=== P: (Linux) Lua i/o ODE provoca que ./configure falli, però TINC les llibreries correctament instal·lades! ===<br />
R: Alguna gent sembla que te problemes mentre es compila l'X-Moto en Linux (la majoria dels casos en la distribució Gentoo),<br />
això es per que el joc no pot trobar correctament les llibreries compartides de Lua i/o ODE.<br />
Si aquest es el teu cas, prova a descarregar el paquet especial de l'X-Moto que inclou el codi font de Lua i ODE:<br />
xmoto-0.1.16-with-ode-lua-src.tar.gz<br />
Instal·lar-lo de manera habitual.<br />
<br />
A mes, abans de l'xmoto 0.2.2, no es comprovava el g++ però la comprovació de libode requereix g++ ; així doncs, assegurat de que tens instal·lat el g++.<br />
<br />
=== P: (Linux) Perquè desprès de compilar-lo i escriure ./xmoto el joc no funciona? ===<br />
R: No pot trobar els arxius de dades.<br />
Prova a instal·lar-lo de nou (amb l'usuari root fes: make install),<br />
o cd cap al directori bin i arrenca el joc amb ../xmoto.<br />
L'ultima versió te una sortida d'errors molt mes clara.<br />
<br />
=== P: Com hem connecto al IRC ? ===<br />
R: El canal #xmoto esta accessible en irc.netrusk.net/6667</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Public_X-Moto_servers&diff=5767Public X-Moto servers2010-11-26T11:24:45Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Nadenislamarre</p>
<hr />
<div>* games.tuxfamily.org</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Es:Scripted_levels&diff=5766Es:Scripted levels2010-11-26T11:24:41Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Trullo</p>
<hr />
<div>[[Scripted levels|English]] - [[Ca:Scripted levels|Català]]<br />
<br />
= Introducción =<br />
Los Scripts hacen que un nivel sea dinámico. Puedes cambiar algunas propiedades físicas, mover objetos, modificar la lógica del juego, etc. Un script está hecho con el lenguaje Lua y se puede añadir al archivo del nivel.<br />
<br />
La documentación sobre el lenguaje Lua la puedes encontrar aquí:<br />
http://www.lua.org/manual/5.1/<br />
<br />
Para hacer un script, has de saber al menos un poco sobre el archivo de nivel. Es un archivo XML. Incluye propiedades como el nombre del nivel, su descripción ... Además, incluye las definiciones de los bloques y las figuras. Un bloque se compone por vértices que son puntos unidos para formar un polígono.<br />
<br />
Para presentar la forma de escribir un script, lo siguiente es un nivel básico que utilizaremos de ejemplo:<br />
<br />
<?xml version="1.0" encoding="utf-8"?><br />
<level id="tutscript"><br />
<info><br />
<name>tutscript</name><br />
<description></description><br />
<author></author><br />
<date></date><br />
<sky>sky1</sky><br />
</info><br />
<script><br />
</script><br />
<limits left="0" right="50" top="30" bottom="0"/><br />
<block id="Block0"><br />
<position x="0" y="0"/><br />
<usetexture id="default"/><br />
<vertex x="5" y="5"/><br />
<vertex x="5" y="10"/><br />
<vertex x="10" y="10"/><br />
<vertex x="10" y="5"/><br />
</block><br />
<entity id="MyPlayerStart0" typeid="PlayerStart"><br />
<size r="0.4"/><br />
<position x="7.5" y="10"/><br />
</entity><br />
<entity id="Strawberry0" typeid="Strawberry"><br />
<size r="0.4"/><br />
<position x="20" y="0.5"/><br />
</entity><br />
<entity id="SnowMan0" typeid="Sprite"><br />
<param name="name" value="SnowMan"/><br />
<position x="19" y="0.2"/><br />
<param name="z" value="-1"/><br />
</entity><br />
<zone id="Zone0"><br />
<box left="40" right="50" top="5" bottom="0"/><br />
</zone><br />
</level><br />
<br />
Este nivel se puede hacer fácilmente con el xmoto-edit. Incluye un bloque llamado Block0 que es un cuadrado, una fresa llamada Strawberry0 y una zona llamada Zone0. Una zona es una parte invisible del nivel que hará que se ejecuten acciones cuando el jugador esté a dentro.<br />
<br />
Algunas funciones requieren una mínima versión del xmoto para funcionar. Si haces servir alguna de estas funciones, por favor, pon esta información en le archivo del nivel. Por ejemplo, para hacer que tu nivel requiera el X-Moto 0.2.0, añade esta linea al código de tu nivel:<br />
<level id="tutscript" rversion="0.2.0"><br />
<br />
[[Image:Scripted_level.jpg]]<br />
<br />
Todo el código del script es lenguaje Lua. Puedes encontrar la sintaxis aquí. De todas maneras, si escoges incluir el script dentro de un archivo XML, los símbolos < y > se han de reemplazar con &amp;lt; y &amp;gt;. El código del script se puede añadir entre <script> y </script> dentro de archivo de nivel.<br />
<br />
= Funciones llamadas por el X-Moto =<br />
<br />
== OnLoad() ==<br />
=== Explicación ===<br />
Esta función es llamada una vez al inicio del nivel. Has de retornar true si nada malo sucede.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra un mensaje al inicio del nivel.<br />
<br />
function OnLoad()<br />
Game.Message("This level is scripted")<br />
return true<br />
end<br />
<br />
== Tick() ==<br />
=== Explicación ===<br />
Función llamada una vez cada centésima de segundo.<br />
Has de retornar true si nada malo sucede.<br />
<br />
=== Ejemplo de Script ===<br />
Este ejemplo se iniciara con gravedad 0 ; después, irá incrementándose con el tiempo. Como la gravedad de la tierra es 9.81, no habrá gravedad terrestre hasta alcanzar los 9.81 segundos. Fíjate que en el X-Moto la gravedad vertical se ha de multiplicar por -1 porqué las coordenadas de la pantalla están invertidas.<br />
<br />
function Tick()<br />
if Game.GetTime() < 9.81<br />
then<br />
Game.SetGravity(0, Game.GetTime() * -1)<br />
end<br />
return true<br />
end<br />
<br />
function Load()<br />
Game.SetGravity(0, 0)<br />
return true<br />
end<br />
<br />
== Entity.Touch() ==<br />
=== Explicación ===<br />
Esta función es llamada cuando una figura (una fresa por ejemplo) es tocada. La figura se ha de declarar en el script. Fíjate que el parámetro <size r> permite escoger el margen de la distancia que se considera para que una figura sea tocada.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra un mensaje cuando se toca una fresa.<br />
<br />
Strawberry0 = {}<br />
<br />
function Strawberry0.Touch()<br />
Game.Message("Nice strawberry !")<br />
end<br />
<br />
== Zone.OnEnter() ==<br />
=== Explicación ===<br />
Esta función es llamada cuando el jugador entra en una zona.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra un mensaje cuando el jugador entra en la zona llamada Zone0.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.Message("Entering in the zone")<br />
end<br />
<br />
== Zone.OnLeave() ==<br />
=== Explicación ===<br />
Esta función es llamada cuando el jugador sale de una zona.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra un mensaje cuando el jugador sale de la zona llamada Zone0.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnLeave()<br />
Game.Message("Leaving the zone")<br />
end<br />
<br />
== OnSomersault(bClockWise) ==<br />
[requiere Xmoto >= 0.2.1]<br />
<br />
=== Explicación ===<br />
Esta función se llamada cada vez que el jugador hace una voltereta. Si bClockWise es 1 la voltereta sigue las agujas del reloj, si es 0 es al revés.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra un mensaje cuando el jugador hace una voltereta.<br />
<br />
function OnSomersault(bClockWise)<br />
if(bClockWise == 1)<br />
then<br />
Game.Message("ClockWise Somersault")<br />
else<br />
Game.Message("CounterClockWise Somersault")<br />
end<br />
end<br />
<br />
== OnWheel1Touchs(status), OnWheel2Touchs(status) ==<br />
[requiere Xmoto >= 0.2.1]<br />
<br />
=== Explicación ===<br />
Esta función es llamada cada vez que la rueda 1 toca la tierra o se detiene para tocarla. (el estatus es 1 si la rueda no estaba tocando la tierra y ahora si lo toca, y 0 para las demás situaciones)<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra la nueva máxima durada de un salto cada vez que es hace uno nuevo.<br />
<br />
max_jump_time = 1.0 -- start at 1 to not count smaller jumps<br />
jump_begin = 0.0<br />
touch_1 = false<br />
touch_2 = false<br />
<br />
function OnWheel1Touchs(bStatus)<br />
if(bStatus == 1)<br />
then<br />
updateMax()<br />
touch_1 = true<br />
else<br />
touch_1 = false<br />
jump_begin = Game.GetTime()<br />
end<br />
end<br />
<br />
function OnWheel2Touchs(bStatus)<br />
if(bStatus == 1)<br />
then<br />
updateMax()<br />
touch_2 = true<br />
else<br />
touch_2 = false<br />
jump_begin = Game.GetTime()<br />
end<br />
end<br />
<br />
function updateMax()<br />
if(touch_1 == false and touch_2 == false)<br />
then<br />
if(Game.GetTime() - jump_begin > max_jump_time)<br />
then<br />
max_jump_time = Game.GetTime() - jump_begin<br />
Game.Message("New high jump: "..max_jump_time)<br />
end<br />
end<br />
end<br />
<br />
= Funciones del X-Moto =<br />
<br />
== GetTime() ==<br />
=== Explicación ===<br />
Retorna el tiempo transcurrido desde el inicio del nivel.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra un mensaje si el jugador tarda mas de 10 segundos en entrar en una zona.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
if Game.GetTime() > 10.0<br />
then<br />
Game.Message("10 seconds to come there, that's a lot !")<br />
end<br />
end<br />
<br />
== Message(msgs) ==<br />
=== Explicación ===<br />
Muestra un mensaje en la pantalla. El mensaje se eliminara automáticamente después de 5 segundos. Puedes llamar a esta función unas cuantas veces : los mensajes se mostraran todos.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra algunos mensajes al inicio del nivel.<br />
<br />
function OnLoad()<br />
Game.Message("This level is scripted")<br />
Game.Message("GO GO GO !!!")<br />
return true<br />
end<br />
<br />
== ClearMessages() ==<br />
=== Explicación ===<br />
Elimina los mensajes de la pantalla.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra como eliminar los mensajes de la pantalla y mostrar uno nuevo en algunas circunstancias.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.ClearMessages()<br />
Game.Message("OnEnter")<br />
end<br />
<br />
function Zone0.OnLeave()<br />
Game.ClearMessages()<br />
Game.Message("OnLeave")<br />
end<br />
<br />
== SetGravity(x, y) ==<br />
=== Explicación ===<br />
Cambia la gravedad en el juego (horizontal y vertical).<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra como invertir la gravedad. Fíjate que en el X-Moto, la gravedad se ha de multiplicar por -1, porque las coordinadas de la pantalla están invertidas en la dirección y.<br />
<br />
function OnLoad()<br />
Game.SetGravity(0, 9.81)<br />
return true<br />
end<br />
<br />
== GetGravity() ==<br />
=== Explicación ===<br />
Retorna el par (gravedad horizontal, y gravedad vertical).<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra el viento y la gravedad al inicio del nivel.<br />
<br />
function OnLoad()<br />
x, y = Game.GetGravity()<br />
Game.Message("Wind : "..x)<br />
Game.Message("Gravity : "..(y*-1))<br />
return true<br />
end<br />
<br />
== IsPlayerInZone(zone) ==<br />
=== Explicación ===<br />
Retorna true si el jugador esta en la zona especificada.<br />
<br />
=== Ejemplo de Script ===<br />
Este ejemplo es un poco mas complicado. Cuando el jugador entra en una zona, la gravedad baja poco a poco. Una vez el jugador sale de la zona, la gravedad vuelve a ser 9.81 gradualmente.<br />
<br />
Zone0 = {}<br />
x = -9.81<br />
<br />
function Tick()<br />
if Game.IsPlayerInZone("Zone0")<br />
then<br />
Game.SetGravity(0, x)<br />
x = x + 0.1<br />
end<br />
<br />
return true<br />
end<br />
<br />
function Zone0.OnLeave()<br />
x = -9.81<br />
Game.SetGravity(0, x)<br />
end<br />
<br />
== SetPlayerPosition(x, y, bRight) ==<br />
=== Explicación ===<br />
Especifica la posición y la dirección del jugador en el juego. bRight puede ser 0 o 1.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo tele-transporta al jugador cada vez que entra en la zona.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.SetPlayerPosition(5, 0, 1)<br />
end<br />
<br />
== GetPlayerPosition() ==<br />
=== Explicación ===<br />
Retorna el trio (x, y, bRight) que da la posición del jugador en el juego.<br />
<br />
=== Ejemplo de Script ===<br />
Este ejemplo hace que el jugador no sea capaz de coger una fresa ;-)<br />
<br />
function Tick()<br />
x, y, bright = Game.GetPlayerPosition()<br />
if x > 18<br />
then<br />
Game.SetPlayerPosition(5, 0, 1)<br />
end<br />
<br />
return true<br />
end<br />
<br />
== SetEntityPos(entity, x, y) ==<br />
=== Explicación ===<br />
Especifica la posición de una figura en las coordenadas (x, y) dentro del juego.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo cambia la posición de una fresa cada segundo.<br />
<br />
function Tick()<br />
i,f = math.mod(math.ceil(Game.GetTime()), 2)<br />
<br />
if i == 1<br />
then<br />
Game.SetEntityPos("Strawberry0", 10, 0.5)<br />
else<br />
Game.SetEntityPos("Strawberry0", 30, 0.5)<br />
end<br />
<br />
return true<br />
end<br />
<br />
== GetEntityPos(entity) ==<br />
=== Explicación ===<br />
Retorna la posición de una figura dentro del juego.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra otra manera para mover una fresa.<br />
<br />
last_update = 0<br />
<br />
function Tick()<br />
sec = math.ceil(Game.GetTime())<br />
<br />
if last_update < sec<br />
then<br />
x, y = Game.GetEntityPos("Strawberry0")<br />
<br />
if(x == 20)<br />
then<br />
x_new = 25<br />
else<br />
x_new = 20<br />
end<br />
<br />
if(y == 0.5)<br />
then<br />
y_new = 2<br />
else<br />
y_new = 0.5<br />
end<br />
<br />
Game.SetEntityPos("Strawberry0", x_new, y_new)<br />
last_update = sec<br />
end<br />
<br />
return true<br />
end<br />
<br />
== SetKeyHook(key, function) ==<br />
=== Explicación ===<br />
Cuando el jugador pulse la "tecla" especificada, una función sera llamada.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra como cambiar la gravedad simplemente apretando una tecla.<br />
<br />
g = -9.81<br />
<br />
function OnLoad()<br />
Game.SetKeyHook("G", "GravityChange")<br />
return true<br />
end<br />
<br />
function GravityChange()<br />
g = g * -1<br />
Game.SetGravity(0, g)<br />
end<br />
<br />
== GetKeyByAction(function) ==<br />
=== Explicación ===<br />
Retorna la tecla asociada a una acción. Las posibles acciones son Drive, Brake, PullBack, PushForward, ChangeDirection.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra por pantalla como conducir al principio del nivel.<br />
<br />
function OnLoad()<br />
Game.Message("To drive, press "..Game.GetKeyByAction("Drive"))<br />
return true<br />
end<br />
<br />
== Log(msgs) ==<br />
=== Explicación ===<br />
Registra un mensaje en el xmoto.log.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo registra el mensaje "An error occured" al inicio del nivel.<br />
<br />
function OnLoad()<br />
Game.Log("An error occured")<br />
return true<br />
end<br />
<br />
== MoveBlock(block, x, y) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación ===<br />
Esta función permite al X-Moto mover un bloque dentro de un nivel. El bloque ha de ser dinámico (modifica el nivel para conseguir <position x="0" y="0" dynamic="true" />). Fíjate que mover un bloque puede ser peligroso: comprueba que el jugador no quede dentro del bloque una vez lo hayas movido.<br />
<br />
=== Ejemplo de Script ===<br />
En el ejemplo, cuando el jugador pulsa la tecla M, el bloque se mueve hacia la derecha.<br />
<br />
function OnLoad()<br />
Game.SetKeyHook("M", "MoveTheBlock")<br />
return true<br />
end<br />
<br />
function MoveTheBlock()<br />
Game.MoveBlock("Block0", 1, 0)<br />
end<br />
<br />
== SetBlockCenter(block, x, y) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación ===<br />
Esta función da el centro de un bloque relativo a la posición del bloque (y del nivel si el bloque se encuentra en la posición (0, 0)). El centro se utiliza para las funciones SetBlockPos(), GetBlockPos() y SetBlockRotation(). Esta función se utiliza generalmente en la función Load() porque no es lógico volver a cambiar el centro (aun así puedes cambiarlo si quieres).<br />
<br />
=== Ejemplo de Script ===<br />
En el ejemplo, se especifica el centro de un bloque en el centro de un cuadrado. Entonces, cuando el jugador pulse M, el bloque se pondrá debajo del jugador.<br />
<br />
function OnLoad()<br />
Game.SetKeyHook("M", "PutTheBlock")<br />
Game.SetBlockCenter("Block0", 7.5, 7.5)<br />
return true<br />
end<br />
<br />
function PutTheBlock()<br />
x, y = Game.GetPlayerPosition()<br />
Game.SetBlockPos("Block0", x, y -2.5 -1)<br />
end<br />
<br />
== SetBlockPos(block, x, y) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación===<br />
Esta función permite al X-Moto mover un bloque según su centro dentro de un nivel. El bloque ha de ser dinámico (modifica el nivel para conseguir <position x="0" y="0" dynamic="true" />). Fíjate que mover un bloque puede ser peligroso: comprueba que el jugador no quede dentro del bloque una vez lo hayas movido.<br />
<br />
=== Ejemplo de Script ===<br />
En el ejemplo, se especifica el centro de un bloque en el centro de un cuadrado. Entonces, cuando el jugador pulse M, el bloque se pondrá debajo del jugador.<br />
<br />
function OnLoad()<br />
Game.SetKeyHook("M", "PutTheBlock")<br />
Game.SetBlockCenter("Block0", 7.5, 7.5)<br />
return true<br />
end<br />
<br />
function PutTheBlock()<br />
x, y = Game.GetPlayerPosition()<br />
Game.SetBlockPos("Block0", x, y -2.5 -1)<br />
end<br />
<br />
== GetBlockPos(block) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación ===<br />
Esta función da la posición de un bloque dado. El bloque ha de ser dinámico (modifica el nivel para conseguir <position x="0" y="0" dynamic="true" />).<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra como utilizar esta función como una condición. Ahora, puedes mover el bloque debajo de la moto tan solo si juegas hacia la derecha.<br />
<br />
function OnLoad()<br />
Game.SetKeyHook("M", "PutTheBlock")<br />
Game.SetBlockCenter("Block0", 7.5, 7.5)<br />
return true<br />
end<br />
<br />
function PutTheBlock()<br />
x, y = Game.GetPlayerPosition()<br />
bx, by = Game.GetBlockPos("Block0")<br />
if(x > bx)<br />
then<br />
Game.SetBlockPos("Block0", x, y -2.5 -1)<br />
end<br />
end<br />
<br />
== SetBlockRotation(block, angle) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación ===<br />
Esta función hace rotar los bloques. El bloque ha de ser dinámico (modifica el nivel para conseguir <position x="0" y="0" dynamic="true" />).<br />
<br />
=== Ejemplo de Script ===<br />
En el ejemplo, si el jugador deja apretada la tecla M, el bloque rotara.<br />
<br />
a = 0<br />
<br />
function OnLoad()<br />
Game.SetKeyHook("M", "PutTheBlock")<br />
Game.SetBlockCenter("Block0", 7.5, 7.5)<br />
return true<br />
end<br />
<br />
function PutTheBlock()<br />
a = a + math.pi / 256.0<br />
Game.SetBlockRotation("Block0", a)<br />
end<br />
<br />
== SetDynamicEntityRotation(entity, initAngle, radius, period, startTime, endTime) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación ===<br />
Esta función indica a una figura hacer círculos durante un tiempo dado. La posición actual del radio donde se encuentra la figura en el circulo es en la posición initAngle (in rad). La figura hará un circulo calculado en centésimas. La animación empezará en startTime en centésimas y acabará en endTime en centésimas, así pues, la duración es endTime-startTime/100 segundos. Un endTime de 0 significa una animación infinita. Fíjate que puedes componer rotaciones y movimientos. Fíjate también que un argumento negativo te permite cambiar el comportamiento de la animación. Por ejemplo, un periodo negativo hará rotar a la figura en el sentido contrario.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra como de fácil es mover una fresa. L'InitAngle es -PI/2 porque la fresa esta en la parte baja de donde queremos que se mueva.<br />
<br />
function OnLoad()<br />
Game.SetDynamicEntityRotation("Strawberry0", -math.pi/2, 2, 500, 0, 0)<br />
return true<br />
end<br />
<br />
== SetDynamicEntityTranslation(entity, fX, fY, period, startTime, endTime) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación ===<br />
Esta función permite indicar a una figura que haga un movimiento durante un tiempo dado. La longitud del movimiento es fX en el eje X y fY en el eje Y. La figura hará el movimiento en un tiempo calculado en centésimas/2. La animación empezara en startTime en centésimas y acabara en endTime en centésimas, así pues, la duración es endTime-startTime/100 segundos. Un endTime de 0 significa una animación infinita. Fíjate que puedes componer rotaciones y movimientos. Fíjate también que un argumento negativo te permite cambiar el comportamiento de la animación.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra la composición de unas animaciones.<br />
<br />
function OnLoad()<br />
Game.SetDynamicEntityTranslation("Strawberry0", 10, 0, 500, 0, 0)<br />
Game.SetDynamicEntityTranslation("Strawberry0", 0, 1, 100, 0, 0)<br />
return true<br />
end<br />
<br />
== SetDynamicEntityNone(entity) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación ===<br />
Esta función elimina todas las animaciones aplicadas a una figura.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo pide a una figura hacer un movimiento en primer lugar y después, hacer una rotación. Si el jugador pulsa la tecla S, la fresa se quedara quieta.<br />
<br />
function OnLoad()<br />
Game.SetDynamicEntityTranslation("Strawberry0", -2, 0, 1000, 0, 500)<br />
Game.SetDynamicEntityRotation("Strawberry0", -math.pi/2, 2, 500, 500, 0)<br />
Game.SetKeyHook("S", "StopAnimation")<br />
return true<br />
end<br />
<br />
== SetDynamicBlockRotation(block, initAngle, radius, period, startTime, endTime) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación ===<br />
Esta función permite indicar a un bloque hacer un circulo durante un tiempo dado. La posición actual del radio donde se encuentra la figura en el circulo es en la posición initAngle (in rad). El bloque hará un circulo calculado en centésimas. La animación empezara en startTime en centésimas y acabara en endTime en centésimas, así pues, la duración es endTime-startTime/100 segundos. Un endTime de 0 significa una animación infinita. Fíjate que puedes componer rotaciones y movimientos. Fíjate también que un argumento negativo te permite cambiar el comportamiento de la animación. Por ejemplo, un período negativo hará rotar a la figura en el sentido contrario. El bloque ha de ser dinámico (modifica el nivel para conseguir <position x="0" y="0" dynamic="true" />). No muevas los bloque muy rápido, sino la moto podría traspasar el bloque.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra como mover fácilmente un bloque.<br />
<br />
function OnLoad()<br />
Game.SetDynamicBlockRotation("Block0", -math.pi/2, 2, 500, 0, 0)<br />
return true<br />
end<br />
<br />
== SetDynamicBlockTranslation(block, fX, fY, period, startTime, endTime) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación ===<br />
Esta función permite indicar a un bloque hacer un movimiento durante un tiempo dado. Un movimiento es una secuencia repetitiva de ida y vuelta entre dos puntos dados. La longitud del movimiento es fX en el eje X y fY en el eje Y. La animación empezara en startTime en centésimas y acabara en endTime en centésimas, así pues, la duración es endTime-startTime/100 segundos. Un endTime de 0 significa una animación infinita. Fíjate que puedes componer rotaciones y movimientos. El bloque ha de ser dinámico (modifica el nivel para conseguir <position x="0" y="0" dynamic="true" />). No muevas los bloque muy rápido, sino la moto podría traspasar el bloque.<br />
<br />
entity: Define que figura se mueve<br><br />
fX: Define donde del eje X la figura se mueve<br><br />
fY: Define donde del eje Y la figura se mueve<br><br />
period: Define, cuanto tardara la figura en volver al punto de origen<br><br />
startTime: Define, cuando empezara el movimiento<br><br />
endTime: Define, cuando finalizara el movimiento<br />
Con el objetivo de hacer los archivos de repeticiones mas pequeños, deberías utilizar Translation en lugar de la función MoveBlock. Mas abajo hay un pequeño ejemplo sobre como convertir una función MoveBlock en una función Translation.<br />
<br />
=== Ejemplo de Script ===<br />
En el ejemplo, el bloque hace un movimiento infinito : Se mueve desde el punto de origen (0,0) hasta (10,1) en 750ms, y retorna de nuevo 750ms.<br />
<br />
function OnLoad()<br />
Game.SetDynamicBlockTranslation("Block0", 10, 1, 1500, 0, 0)<br />
return true<br />
end<br />
<br />
Ejemplo de como convertir una función MoveBlock en una función Translation. (mira a continuación):<br />
<br />
function Tick()<br />
Game.MoveBlock("Block0", 0.5,0)<br />
return true<br />
end<br />
<br />
Block0 se mueve todo el rato hacia la derecha: 0.5px cada 1/100s<br />
Así que se mueve a una velocidad de 300m/60s<br />
<br />
function OnLoad()<br />
Game.SetDynamicBlockTranslation("Block0", 300, 0, 12000, 0, 6000)<br />
return true<br />
end<br />
<br />
Esta es la función MoveBlock en la versión de Translation.<br />
Se mueve 300m a la derecha y 300m de vuelta a la izquierda durante 12000ms. endTime esta a 12000/2=6000, así que el movimiento parara tan pronto como Block0 este en (300,0)<br />
<br />
== SetDynamicBlockNone(block) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación ===<br />
Esta función elimina todas las animaciones aplicadas a un bloque. El bloque ha de ser dinámico (modifica el nivel para conseguir <position x="0" y="0" dynamic="true" />).<br />
<br />
=== Ejemplo de Script ===<br />
En el ejemplo, el bloque se moverá hasta que el jugador pulse la tecla S.<br />
<br />
function OnLoad()<br />
Game.SetDynamicBlockTranslation("Block0", 10, 1, 1500, 0, 0)<br />
Game.SetKeyHook("S", "StopAnimation")<br />
return true<br />
end<br />
<br />
function StopAnimation()<br />
Game.SetDynamicBlockNone("Block0")<br />
end<br />
<br />
== CameraZoom(z) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación ===<br />
En algunos niveles, podrías necesitar que la cámara esté mas lejos respecto al jugador. Utiliza esta función para cambiar el zoom de la cámara.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra como un zoom diferente se puede utilizar para jugar en el nivel.<br />
<br />
function OnLoad()<br />
Game.CameraZoom(-0.05)<br />
return true<br />
end<br />
<br />
== CameraMove(x, y) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación ===<br />
Para algunos niveles concretos, quizás quieres mover la cámara. Utiliza esta función para hacerlo.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra como enfocar otra parte del nivel de donde se encuentra el jugador.<br />
<br />
function OnLoad()<br />
Game.CameraMove(0, 3)<br />
return true<br />
end<br />
<br />
== GetEntityRadius(entity) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación ===<br />
Retorna el radio de una figura. Este radio se utiliza para las colisiones. Puedes utilizarlo para tus propias colisiones o para otra cosa.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo te muestra el radio de una fresa.<br />
<br />
function OnLoad()<br />
Game.Message("Radius of the strawberry : "..Game.GetEntityRadius("Strawberry0"))<br />
return true<br />
end<br />
<br />
== IsEntityTouched(entity) ==<br />
[requiere Xmoto >= 0.2.0]<br />
=== Explicación ===<br />
Esta función es llamada cuando una figura es tocada. Pero algunas veces puede querer saber cuando una figura no es tocada. Utiliza esta función.<br />
<br />
=== Ejemplo de Script ===<br />
El ejemplo muestra como hacer una acción cuando el jugador no esta tocando una figura.<br />
<br />
g = -9.81<br />
<br />
function OnLoad()<br />
Game.Message("Gravity is increasing while you are not touching the snowman")<br />
return true<br />
end<br />
<br />
function Tick()<br />
if(Game.IsEntityTouched("SnowMan0") == 0)<br />
then<br />
g = g - 0.03<br />
Game.SetGravity(0, g);<br />
end<br />
return true<br />
end<br />
<br />
== KillPlayer() ==<br />
[requiere Xmoto >= 0.2.1]<br />
=== Explicación ===<br />
Si llamas a esta función, el jugador morirá. Es interesante si quieres que el jugador muera en tocar un enemigo, por ejemplo.<br />
<br />
=== Ejemplo de Script ===<br />
En el siguiente ejemplo, el jugador muere cuando entra en una zona.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.KillPlayer()<br />
end<br />
<br />
== KillEntity(entityID) ==<br />
[requiere Xmoto >= 0.2.1]<br />
=== Explicación ===<br />
Si llamas a esta función, se eliminara la figura entityID. La figura puede ser una fresa o cualquier otra.<br />
<br />
=== Ejemplo de Script ===<br />
En el siguiente ejemplo, se elimina una fresa cuando el jugador entra en la zona Zone0.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.KillEntity("Strawberry0")<br />
end<br />
<br />
== WinPlayer() ==<br />
[requiere Xmoto >= 0.2.1]<br />
=== Explicación ===<br />
Si llamas a esta función, el jugador ganara la partida (incluso si quedan fresas pendientes).<br />
<br />
=== Ejemplo de Script ===<br />
En el siguiente ejemplo, el jugador gana cuando entra en la zona Zone0.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.WinPlayer()<br />
end<br />
<br />
== RemainingStrawberries() ==<br />
[requiere Xmoto >= 0.2.1]<br />
=== Explicación ===<br />
Esta función retorna el numero de fresas pendientes en el nivel.<br />
<br />
=== Ejemplo de Script ===<br />
En el siguiente ejemplo, cuando el jugador entra en la zona Zone0, el numero de fresas pendientes se muestra por pantalla.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.Message(Game.RemainingStrawberries())<br />
end</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=No:Ofte_Stilte_Sp%C3%B8rsm%C3%A5l&diff=5765No:Ofte Stilte Spørsmål2010-11-26T11:24:39Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Nadenislamarre</p>
<hr />
<div>[[Faq|English]] - [[Ca:FAQ|Català]] - [[Es:Faq|Español]]<br />
<br />
=== Hva er systemkravene? ===<br />
Her er de minste kravene du må ha for å kjøre spillet:<br />
<br />
{| class="wikitable"<br />
|-<br />
|CPU: || ~500 MHz (vill gjetting).<br />
|-<br />
|RAM: || 128 MB (minst 40 MB med fri minne er foretrukket).<br />
|-<br />
|Grafikk: || GeForce-klasse kort med 32 MB minne (eller mer).<br />
|-<br />
|HDD: || Minst 10 MB ledig plass.<br />
|-<br />
|Programvare: || Microsoft Windows 2000/XP, Linux, Mac OS X, eller FreeBSD, og en skjerm-driver med støtte for OpenGL.<br />
|}<br />
<br />
=== Jeg ønsker å spille X-Moto på en veldig treg PC. Noen tips? ===<br />
Ja. Det er ett par metoder for å kjøre X-Moto på en gammel og treg PC. Ulempen er at du vil få simpel grafikk. Prøv å start spillet gjennom denne kommandoen:<br />
xmoto -res 512x384 -bpp 16 -ugly -level 3<br />
Nå vil spillet bli startet med en oppløsning på 512x384, 16 bits per piksel og med "ugly mode" aktivert. Merk at "-level 3" bestemmer at vi ønsker å spille på tredje bane. Dette er viktig fordi at grafikken i menyen til spillet ikke blir påvirket av -ugly, så det vil sannsynligvis bli for tungt for din PC. Du kan prøve den oppløsningen du ønsker, men 512x384 er den laveste oppløsningen som er spillbar.<br />
<br />
X-Moto er testet på en 233-MHz IBM laptop med denne metoden. For å se hvilke baner du kan spille, bruk denne kommandoen:<br />
<br />
xmoto -listlevels<br />
<br />
(I Windows vil dette lage en stdout.txt fil med tilbakemeldingen)<br />
<br />
=== Hvorfor er X-Moto fremdeles i "alpha"? ===<br />
Alpha-betegnelsen betyr at ikke alle de planlagte funksjonene er implementert i spillet enda.<br />
Når spillet har fått alle de funksjonene jeg har planlagt vil jeg sette spillet i Beta-versjon istedet, og der vil det være til det er testet nok, og alle feil er fikset.<br />
<br />
=== Lyden virker ikke! ===<br />
Før versjon 0.1.8 var det ikke noe lyd i spillet. Last ned en nyere versjon.<br />
<br />
=== X-Moto 0.1.6 eller tidligere versjoner kjører sakte på min PC! Hvordan fikser jeg dette? ===<br />
Deaktiver "Vertical Sync" i innstillingene til din skjerm-driver.<br />
Dette er ikke nødvendig i senere versjoner av spillet.<br />
Hvis skjermkortet ditt er stilt inn til å vente på vertikal synkronisering<br />
før det oppdaterer innholdet på skjermen,<br />
vil antall bilder per sekund være begrenset til frekvensen på monitoren.<br />
For eksempel, hvis skjermen kjører på frekvensen 60 Hz,<br />
vil spillet aldri kjøre på mer enn 60 bilder per sekund.<br />
Det er et stort problem, siden X-Moto krever minst 100 bilder i sekundet<br />
for at fysikken i spillet skal være realistisk.<br />
<br />
=== Støtter X-Moto egentlig Mac/FreeBSD/etc? ===<br />
Jeg har vanskelig for å få testet spillet på disse platformene,<br />
siden jeg har tilgang til bare noen få maskiner.<br />
Noen folk sier at spillet fungerer på MacOS, FreeBSD, og til og med 64-bit platformer,<br />
men jeg får ikke testet dette selv.<br />
<br />
=== Jeg vil ta opp repriser! Når vil du legge til denne funksjonen? ===<br />
Repriser er støttet fra og med versjon 0.1.8.<br />
<br />
=== Vil X-Moto støtte baner fra Elastomania? ===<br />
Nei, fysikken er alt for forskjellig.<br />
Selv om det kan være mulig å importere baner fra Elastomania til X-Moto,<br />
vil det være umulig å lage baner som skal være spillbare i begge spillene.<br />
<br />
=== (Linux) Lua og/eller ODE gjør at ./configure feiler, men jeg HAR de riktige bibliotekene installert! ===<br />
Noen personer har problemer med å kompilere X-Moto i Linux<br />
(mest sannsynlig folk som benytter distroen Gentoo),<br />
fordi spillet feiler å linke korrekt mellom Lua og/eller ODE bibliotekene.<br />
Hvis dette er tilfellet med deg, f.eks. om den vanlige installasjons-prosedyren feiler på din maskin,<br />
prøv å laste ned den spesielle X-Moto-pakken som inneholder kildekoden til Lua og ODE: <br />
xmoto-0.1.16-with-ode-lua-src.tar.gz<br />
Denne pakken installeres på samme måte som vanlig.<br />
<br />
=== (Linux) Hvorfor feiler spillet når jeg har kompilert det og skriver ./xmoto? ===<br />
Spillet finner ikke datafilene.<br />
Enten kan du prøve å installere det (som root med make install),<br />
eller cd til mappen bin og start spillet derfra med ../xmoto.<br />
Den nyeste versjonen av X-Moto har en bedre feilmelding for dette.</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=User:246_buy_male_enhancement_oil&diff=5764User:246 buy male enhancement oil2010-11-26T11:24:37Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by 246 buy male enhancement oil</p>
<hr />
<div><br /><br />
<br /><br />
<center><br />
=<font color="red">[http://cheaped.ru/3423/wiki CLICK HERE TO BUY MALE ENHANCEMENT OIL]</font>=<br />
<br /><br />
=<font color="#009900">[http://cheaped.ru/3423/wiki Many payment options: Visa, Amex, MasterCard, eCheck, Wire transfer etc.]</font>=<br />
<br /><br />
=<font color="#6633FF">[http://cheaped.ru/3423/wiki Looking for male enhancement oil? Not a problem!]</font>=<br />
</center><br />
<br /><br />
<br /><br />
<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
*<br /><br />
<br /><br />
<br /><br />
<br /><br />
cheap male enhancement oil buy cod buy in Bonn<br /><br />
ordering buy male enhancement oil online scams in Dusseldorf<br /><br />
buy male enhancement oil cheap cod buy in Krefeld<br /><br />
male enhancement oil buying buy in Bottrop<br /><br />
buy generic male enhancement oil buy in Rome<br /><br />
buy cheap male enhancement oil fast in Billings<br /><br />
buy cheap male enhancement oil cod next day<br /><br />
find buy male enhancement oil online <br /><br />
buy cod male enhancement oil<br /><br />
buy generic buy male enhancement oil online in Gilbert<br /><br />
buy overnight cheap male enhancement oil in Scottsdale<br /><br />
buy male enhancement oil canada online pharmacy<br /><br />
cheap male enhancement oil without prescription overnight delivery buy in Rennes<br /><br />
buy cheap male enhancement oil overnight buy in Antwerp<br /><br />
cheap male enhancement oil buy buy in Columbia<br /><br />
male enhancement oil online c o d buy in Florence<br /><br />
how to buy male enhancement oil online <br /><br />
buy cheap male enhancement oil fast in Douai<br /><br />
buy online cheap male enhancement oil in Slough<br /><br />
male enhancement oil fast delivery buy in Stockholm<br /><br />
buy male enhancement oil online purchase buy in Oldenburg<br /><br />
buy male enhancement oil canada pharmacy online in Salerno<br /><br />
<br />
buy online buy male enhancement oil 3 bottles x 20 applications buy in Neuss<br /><br />
compra buy male enhancement oil 2 bottles x 20 applications generico online buy in Heidelberg<br /><br />
buy male enhancement oil 1 bottle x 20 applications canada online pharmacy in Seattle<br /><br />
male enhancement oil 1 bottle x 20 applications fedex cod<br /><br />
order cheap male enhancement oil 3 bottles x 20 applications very buy without prescription in Stuttgart<br /><br />
order buy male enhancement oil 3 bottles x 20 applications online clinic uk <br /><br />
male enhancement oil 1 bottle x 20 applications rx in Limoges<br /><br />
buy and purchase buy male enhancement oil 3 bottles x 20 applications online<br /><br />
male enhancement oil 1 bottle x 20 applications free overnight fedex delivery<br /><br />
male enhancement oil 3 bottles x 20 applications same day buy in Riverside<br /><br />
online pharmacy buy male enhancement oil 1 bottle x 20 applications <br /><br />
buy cheap male enhancement oil 3 bottles x 20 applications online in Bolton<br /><br />
buy male enhancement oil 1 bottle x 20 applications online c o d in Lyon<br /><br />
ordering buy male enhancement oil 2 bottles x 20 applications online in Varna<br /><br />
buy male enhancement oil 2 bottles x 20 applications online buy buy in Pittsburgh<br /><br />
buy male enhancement oil 3 bottles x 20 applications prescriptions online <br /><br />
buy online buy male enhancement oil 3 bottles x 20 applications buy in Heilbronn<br /><br />
buy cheap male enhancement oil 2 bottles x 20 applications without prescription<br /><br />
male enhancement oil 1 bottle x 20 applications cod next day delivery buy in Monchengladbach<br /><br />
buy male enhancement oil 3 bottles x 20 applications prescription online buy in Allentown<br /><br />
buy male enhancement oil 3 bottles x 20 applications no prescription<br /><br />
where to buy buy male enhancement oil 2 bottles x 20 applications online buy in Genova<br /><br />
male enhancement oil 1 bottle x 20 applications online pharmacy<br /><br />
buy discount buy male enhancement oil 1 bottle x 20 applications online in Naperville<br /><br />
buy male enhancement oil 2 bottles x 20 applications sale online <br /><br />
cheapest buy male enhancement oil 2 bottles x 20 applications online in Calais<br /><br />
buy online order cheap male enhancement oil 1 bottle x 20 applications cheap male enhancement oil 1 bottle x 20 applications in Siegen<br /><br />
buy buy male enhancement oil 3 bottles x 20 applications online without prescription <br /><br />
<br />
cheapest buy male enhancement oil online in Basildon<br /><br />
buy male enhancement oil canada pharmacy online<br /><br />
online ordering male enhancement oil<br /><br />
buy generic buy male enhancement oil online in Vermont<br /><br />
super buy cheap male enhancement oil<br /><br />
purchase male enhancement oil <br /><br />
buy online cheap male enhancement oil <br /><br />
male enhancement oil online buy<br /><br />
buy male enhancement oil online uk <br /><br />
best male enhancement oil online pill in Bari<br /><br />
buy male enhancement oil buy online<br /><br />
buy buy cheap male enhancement oil <br /><br />
where to buy male enhancement oil online<br /><br />
male enhancement oil on line in Montgomery<br /><br />
online pharmacy buy male enhancement oil in Edinburgh<br /><br />
cheapest place to buy male enhancement oil online buy in Leicester<br /><br />
genaric buy male enhancement oil online<br /><br />
cheapest place to buy male enhancement oil online in Victorville<br /><br />
comprar buy male enhancement oil online <br /><br />
online pharmacy cod male enhancement oil<br /><br />
male enhancement oil cheap fed ex delivery buy in Bostond<br /><br />
buying online buy male enhancement oil in Liverpool<br /><br />
<br />
cheap male enhancement oil 1 bottle x 20 applications cod free fedex buy in Mulhouse<br /><br />
cheap male enhancement oil 1 bottle x 20 applications order online in Raleigh<br /><br />
genaric buy male enhancement oil 1 bottle x 20 applications online <br /><br />
buy cheap male enhancement oil 2 bottles x 20 applications fedex overnight buy in Naperville<br /><br />
online pharmacy buy male enhancement oil 3 bottles x 20 applications in Kansas<br /><br />
buy cheap male enhancement oil 1 bottle x 20 applications online<br /><br />
male enhancement oil 1 bottle x 20 applications buying buy in Hawaii<br /><br />
buy male enhancement oil 2 bottles x 20 applications order online in Nevada<br /><br />
buying buy male enhancement oil 1 bottle x 20 applications online <br /><br />
male enhancement oil 3 bottles x 20 applications without prescription cod<br /><br />
buy buy male enhancement oil 3 bottles x 20 applications online uk in Fullerton<br /><br />
buy male enhancement oil 1 bottle x 20 applications now online <br /><br />
real buy male enhancement oil 1 bottle x 20 applications no prescription online<br /><br />
male enhancement oil 3 bottles x 20 applications no prescription needed in Venezia<br /><br />
online order buy male enhancement oil 3 bottles x 20 applications buy in Tallinn<br /><br />
buy cheap male enhancement oil 3 bottles x 20 applications cod in Blackburn<br /><br />
male enhancement oil 3 bottles x 20 applications order online in Bellevue<br /><br />
buy male enhancement oil 3 bottles x 20 applications online without prescription in Ourense<br /><br />
cheap male enhancement oil 3 bottles x 20 applications buy buy in Cordoba<br /><br />
male enhancement oil 3 bottles x 20 applications buy online<br /><br />
comprar buy male enhancement oil 3 bottles x 20 applications online <br /><br />
buy online cheap male enhancement oil 1 bottle x 20 applications buy in Remscheid<br /><br />
buy online male enhancement oil 3 bottles x 20 applications<br /><br />
discount buy male enhancement oil 2 bottles x 20 applications online <br /><br />
buy male enhancement oil 3 bottles x 20 applications online buy male enhancement oil 3 bottles x 20 applications buy in Florence<br /><br />
cheapest buy male enhancement oil 2 bottles x 20 applications online <br /><br />
free buy male enhancement oil 1 bottle x 20 applications online buy in Parma<br /><br />
male enhancement oil 2 bottles x 20 applications pill <br /><br />
<br />
[http://www.gmatwiki.com/index.php?title=User:95_buy_chrysin_xy&printable=yes cheap Chrysin-XY]<br /><br />
[http://lifestylewiki.com/index.php?title=User:694_buy_toprol_xl&printable=yes Toprol XL online]<br /><br />
[http://www.verticalfactory.co.uk/jhenderson/ldonut/index.php?title=User:812_buy_duetact&printable=yes buy Duetact]<br /><br />
[http://www.rphaven.org/libraryold/index.php?title=User:618_buy_male_enhancement_oil&printable=yes buy male enhancement oil]<br /></div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Ca:SDL_gfx&diff=5763Ca:SDL gfx2010-11-26T11:24:33Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Trullo</p>
<hr />
<div>[[SDL_gfx|English]] - [[Es:SDL_gfx|Español]]<br />
<br />
== Anàlisis de l'SDL_gfx ==<br />
<br />
L'OpenGL es el motor interpret de gràfics de l'X-Moto. Proveeix un aspecte bonic al joc. El problema que hi ha amb l'OpenGL es que requereix de hardware i software especial.<br />
Per tant, nosaltres actualment estem escrivint un segon ''front-end'' gràfic al X-Moto utilitzant la llibreria de l'SDL_gfx[http://www.ferzkopp.net/Software/SDL_gfx-2.0/]<br />
<br />
Esperem que el ''front-end'' de l'SDL_gfx sigui una bona alternativa per l'OpenGL però no un reemplaç. En un mon idíl·lic ens agradaria que es pogués canviar entre tots dos motors durant l'execució.<br />
<br />
== Actuals motors intèrprets ==<br />
[[Image:Xmoto-0.2.3_opengl_normal.png|thumb|xmoto amb opengl normal]]<br />
[[Image:Xmoto-0.2.3_opengl_ugly.png|thumb|xmoto amb opengl lleix]]<br />
<br />
Hi ha dos tipus d'intèrprets, un normal i un altre lleix. Tots dos estan basats en l'opengl, que requereix un bon hardware d'opengl en funcionament per que el software de l'opengl encara no es prou ràpid per una bona jugavilitat.<br />
Pensem que el ''front-end'' de l'interpret SDL_gfx es veuria millor que el tipus d'intèrpret lleix del motor OpenGl.<br />
Els dos tipus d'intèrprets actuals es poden intercanviar durant l'execució i s'aplocan utilitzant declaracions de if/else en el codi.<br />
<br />
== El VDraw i l'estructura de l'Interfície gràfica d'usuari (''GUI'') ==<br />
[[Image:Classvapp_app_inherit_graph.png|frame|Vapp diagrama d'herències]]<br />
<br />
El joc de l'X-Moto conté una estructura ''GUI'' i una llibreria 2D (VDraw) encastada al amunt de l'opengl. Aquests proveeixen una mica d'abstracció sobre el dibuix. Drawlib es la principal abstracció des de l'opengl i ambdues aplicacions de l'X-Moto, l'editor i el joc estenen aquesta drawlib. No estic segur per que s'utilitza l'herència però fa més difícil poder engegar/des-engegar DrawLib. <br />
<br />
L'estructura de l'GUI també utilitza DrawLib per la majoria de les funcions. Actualment no totes les funcions de dibuix les proveeix DrawLib i el dibuix es fa a moltes parts de l'aplicació.<br />
<br />
'''Si volem proveir de menys implementació de l'OpenGL al joc, algunes parts del joc especifiques de l'OpenGl s'haurien de convertir a DrawLib o excloure-les amb definicions USE_OPENGL'''.<br />
<br />
La bona noticia es que DrawLib i l'estructura de l'GUI proveeixen suficient abstracció per a que sigui possible reemplaçar les funcions de l'OpenGL amb unes diferents de DrawLib. Aixi que si no volem canviar tot el codi de l'GUI, necessitem arreglar el problema. Actualment hem optat per reemplaçar totes les funcions d'OpenGl amb unes similars de DrawLib.<br />
<br />
Exemple de codi utilitzant OpenGL<br />
<pre><br />
/**<br />
*old opengl mode<br />
**/<br />
void GameRenderer::_RenderCircle(int nSteps,Color CircleColor,const Vector2f &C,float fRadius) {<br />
glBegin(GL_LINE_LOOP);<br />
glColor3ub(GET_RED(CircleColor),GET_GREEN(CircleColor),GET_BLUE(CircleColor));<br />
for(int i=0;i<nSteps;i++) {<br />
float r = (3.14159f * 2.0f * (float)i)/ (float)nSteps;<br />
_Vertex( Vector2f(C.x + fRadius*sin(r),C.y + fRadius*cos(r)) );<br />
}<br />
glEnd();<br />
}<br />
</pre><br />
Despres d'afegir unes quantes funcions de DrawLib en aquet codi, quedaria aixi.<br />
<pre><br />
<br />
/**<br />
* new abstracted code<br />
**/<br />
void GameRenderer::_RenderCircle(int nSteps,Color CircleColor,const Vector2f &C,float fRadius) {<br />
getParent()->startDraw(DRAW_MODE_LINE_LOOP);<br />
getParent()->setColor(GET_RED(CircleColor),GET_GREEN(CircleColor),GET_BLUE(CircleColor),255);<br />
for(int i=0;i<nSteps;i++) {<br />
float r = (3.14159f * 2.0f * (float)i)/ (float)nSteps;<br />
getParent()->glVertex( Vector2f(C.x + fRadius*sin(r),C.y + fRadius*cos(r)) );<br />
}<br />
getParent()->endDraw();<br />
}<br />
</pre><br />
<br />
== Objectius a curt termini del projecte ==<br />
*xmoto_hack en el Nokia 770 (16bpp/800x480) per veure quins problemes hi ha<br />
*donar informació sobre el rendiment , lliçons enteses<br />
*documentar el nou codi<br />
*trobar gent per passar-ho a plataformes diferents<br />
<br />
== TODO ==<br />
*Quan s'inicia l'X-Moto comença per carregar tots els nivells, aixó no es necessari i no hauria de passar.<br />
<br />
== Noticies ==<br />
[[User:Keesj|Keesj]] 14:53, 22 December 2006 (CET)<br />
<br />
Actualment es possible seleccionar el motor interpret com a opció d'inici. Aixó es una mica ''màgic'' perquè quant esta funcionant així, algunes funciones de l'opengl i de l'api estan en execució, sembla ser que això no causa que el joc tingui una fallida. Estic molt content amb l'actual interpret de la petita pantalla. Espero que el funcionament continuï correctament.<br />
<br />
<br />
[[User:Keesj|Keesj]] 09:50, 21 December 2006 (CET)<br />
<br />
Aquesta setmana hem fer uns quants progressos i gaire be hem tornat.<br />
Hem re-iniciat el projecte. Aquest cop hem utilitzat el cvs de l'xmoto i hem començat per tornar a fer el codi actual assegurant-nos que la versió d'OpenGL continui funcionant.<br />
Aixó va anar be. Ara podem compilar la versió d'opengl i la d'SDL_gfx fent servir el mateix codi.<br />
Esperem que sigui possible seleccionar el motor d'intèrpret durant l'execució.<br />
<br />
<br />
[[User:Keesj|Keesj]] 09:50, 19 December 2006 (CET)<br />
<br />
El nostre patch de SDL_gfx ha sigut acceptat i la versió SDL_gfx 2.0.14 ara conté el mètode texturedPolygon requerit pel joc per a dibuixar polígons amb textures d'una forma bonica<br />
http://www.ferzkopp.net/joomla/content/view/19/14/.<br />
<br />
<br />
[[User:Keesj|Keesj]] 14:07, 17 December 2006 (CET)<br />
<br />
Ahir es va crear una branca per permetre la contribució del codi, la branca del cvs es diu SDL_GFX_INCLUSION.<br />
<br />
== Progress del projecte ==<br />
<br />
{|<br />
|-valign="top"<br />
|[[Image:Xmoto_n770_2006_11_18.jpg|thumb|18 11 2006. execució real des de un Nokia 770]]<br />
|[[Image:Xmoto_profiling_2006_22_11.png|thumb|22 11 2006 execució del profiler amb l'xmoto(en un PC)]]<br />
|[[Image:Xmoto_with_hacked_gfx_2006_12_05.png|thumb|05 12 2006. les textures comencen a aparèixer (en un PC)]]<br />
|[[Image:Xmoto_n770_hack_2006_12_10.jpg|thumb|10 12 2006. Fent algun progrés,el fons negre es veu millor i el dibuix del text es mes ràpid]]<br />
<br />
|-valign="top"<br />
|[[Image:Xmoto_sdl_gfx_2006_14_12.png|thumb|14 12 2006. Ara els arbres també s'interpretan]]<br />
|[[Image:Xmoto_sdlgfx_title_screen_22_12_2006.png|thumb|22 12 2006 pantalla de titol de l'Xmoto amb SDL_gfx, quasi perfecte !!!]]<br />
|[[Image:Xmoto_sdlgfx_game_22_12_2006.png|thumb|22 12 2006 La moto no s'interpreta gaire be, pero fixa't en el bonic fons]]<br />
|[[Image:Xmoto_sdlgfx_end_game_22_12_2006.png|thumb|22 12 2006 pantalla de pausa amb ''alpha blending'']]<br />
<br />
|-valign="top"<br />
|[[Image:Xmoto_sdl_gfx_in_game_2006_24_12.png|thumb|24 12 2006 Difícil saber si es la versió l'opengl o la del sdl:)]]<br />
|[[Image:Xmoto_sdl_gfx_not_that_difficult_right_2006_24_12.png|thumb|24 12 2006 SDL_gfx, no tant difícil, oi?]]<br />
|[[Image:Xmoto_0.2.5_test_sdlgfx_n770_level1.jpg|thumb|28 12 2006 xmoto 0.2.5-test executant-se en n770 (level 1) freqüència de fotogrames lenta ]]<br />
|[[Image:Xmoto_0.2.5_test_sdlgfx_n770.jpg|thumb|28 12 2006 xmoto 0.2.5-test executant-se en n770 (Pantalla de titol)]]<br />
|}</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Inksmoto-0.7.0&diff=5762Inksmoto-0.7.02010-11-26T11:24:32Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by The only dude</p>
<hr />
<div>=About=<br />
The Inksmoto level editor is implemented as an extension to [http://www.inkscape.org/ Inkscape], an Open Source vector graphics editor.<br />
<br />
Even if the application windows changed, there's still plenty of stuffs from the 0.4.x, 0.5.x and 0.6.x tutorials which applies to the 0.7.0 version, check them out: <br />
*[[Inkscape-0.4.0|Inksmoto 0.4.1 tutorial]]<br />
*[[Inksmoto-0.5.0|Inksmoto 0.5.1 tutorial]]<br />
*[[Inksmoto-0.6.0|Inksmoto 0.6.0 tutorial]]<br />
<br />
=Installation=<br />
<br />
==Required softwares==<br />
<br />
The 0.7.0~rc1 version of Inksmoto requires Inkscape 0.46 or 0.47.<br />
* inkscape (>=0.46)<br />
* python (>=2.5) (tested on 2.5)<br />
* python-lxml<br />
* python-gtk2<br />
* libglade2<br />
<br />
==Installation on Windows==<br />
<br />
Just download and execute this executable: http://download.tuxfamily.org/xmoto/svg2lvl/0.7.0~rc1/Inkscape-0.46.1_inksmoto-0.7.0~rc1_win32.exe<br />
<br />
==Installation on Linux==<br />
<br />
===Ubuntu===<br />
<br />
Under Debian/Ubuntu, you can use this .deb file to install Inksmoto with the command line or graphically:<br />
<br />
*Command line:<br />
wget http://download.tuxfamily.org/xmoto/svg2lvl/0.7.0~rc1/inksmoto-0.7.0~rc1.deb<br />
sudo dpkg -i inksmoto-0.7.0~rc1.deb<br />
<br />
*Graphically:<br />
** download the .deb file http://download.tuxfamily.org/xmoto/svg2lvl/0.7.0~rc1/inksmoto-0.7.0~rc1.deb<br />
** double click on it from the file explorer to install it (with GDebi in Gnome for example)<br />
<br />
Warning:<br />
'''If you have previously installed the svn version in your home dir, you should better delete it''':<br />
rm -rf ~/.inkscape/extensions<br />
<br />
===Other Linuxes===<br />
<br />
Install the prerequisites first then install Inksmoto:<br />
cd ~<br />
wget http://download.tuxfamily.org/xmoto/svg2lvl/0.7.0~rc1/inksmoto-0.7.0~rc1.tar.gz<br />
cd /usr/share/inkscape<br />
sudo tar zxvf ~/inksmoto-0.7.0~rc1.tar.gz<br />
<br />
Warning:<br />
'''If you have previously installed the svn version in your home dir, you should better delete it''':<br />
rm -rf ~/.inkscape/extensions<br />
<br />
==Installation on MacOS X==<br />
<br />
Use the .dmg to install when it'll be available.<br />
<br />
=Tutorial: First steps=<br />
<br />
This part of the tutorial learns the basics to be able to create a level.<br />
<br />
==Quick look at inkscape==<br />
<br />
[[Image:Inksmoto_060_01.png]]<br />
<br />
Here is the list of useful tools from Inkscape to create Xmoto levels:<br />
# The selection tool<br />
# The path editing tool<br />
# The sculpting tool<br />
# The zoom in/out tool<br />
# The rectangle tool<br />
# The circle tool<br />
# The star tool<br />
# The hand draw tool<br />
# The bezier curves draw tool<br />
# The Xmoto properties menu<br />
<br />
To learn how to use Inkscape you can use the official Inkscape tutorials:<br />
[[Image:Inkscape2.png]]<br />
<br />
You can also get tutorials on YouTube.<br />
<br />
==The Xmoto extensions==<br />
<br />
The Xmoto extensions from the ''Effects'' menu allows you to set Xmoto properties to Inkscape objects in the drawing.<br />
<br />
Here is a description of the different entries of the Xmoto menu:<br />
*'''Blocks'''<br />
**''Change Block Properties'': Change the properties of the selected blocks.<br />
**''Change Block Texture'': Change the texture and edge effects of the selected blocks.<br />
*'''Entities'''<br />
**''Checkpoint'': Convert the selected shapes into a checkpoint.<br />
**''Strawberry'': Convert the selected shapes into a strawberry.<br />
**''End of level'': Convert the selected shapes into a end of the level.<br />
**''Particle Source'': Convert the selected shapes into a particle source (fire or smoke).<br />
**''Player Start'': Convert the selected shapes into the start position of the player.<br />
**''Sprite'': Convert the selected shapes into a sprite (with many parameters for the sprite).<br />
**''Wrecker'': Convert the selected shapes into a wrecker.<br />
*'''Joint'''<br />
**''Add Pin Joint'': add a pin joint between two physical blocks.<br />
**''Add Pivot Joint'': add a pivot joint between to physical blocks.<br />
**''Jointed Line...'': create a line of jointed blocks<br />
*'''Level'''<br />
**''Set layers properties'': Set which layers are for background and what are their scrolling parameters.<br />
**''Set sky properties'': Change the sky of the level.<br />
**''Set level properties'': Mandatory options for the level, like its name and id.<br />
**''Set other level properties'': Allow sprite replacement of the /strawberry/wrecker/end of level/. Add a music to the level.<br />
*'''Other'''<br />
**''Install keyboard shortcuts'': Install the Inksmoto specific shortcuts.<br />
**''Inksmoto tutorial'': Display the link of this tutorial on the wiki.<br />
**''Launch level in X-Moto'': Launch the level in Xmoto.<br />
**''Show the object informations'': Show the Xmoto properties of the selected shapes.<br />
**''Get new textures and sprites'': Download new textures and sprites from the Internet.<br />
**''Recreate last.lvl'': Recreate the last.lvl level to reload it into Xmoto.<br />
**''Copy'': Copy the xmoto properties of an object.<br />
**''Paste'': Paste the xmoto properties stored into the selected objects.<br />
**''Change id'': Change the id of an element (mandatory use for entities).<br />
**''Begin recording a trace session'': For unittesting.<br />
**''End recording a trace session'': For unittesting (the generated tests are in ~/.inkscape/extensions/cur_tests).<br />
*'''Zones'''<br />
**''Convert into Zone'': Convert the selected shapes into zones (currently, only rectangular zones are used).<br />
<br />
==Install the Inksmoto shortcuts==<br />
<br />
You should begin by installing the Inksmoto specific shortcuts.<br />
Use the menu entry ''Effects->X-moto->Other->Install keyboard shortcuts''.<br />
<br />
Then restart Inkscape to enable them.<br />
<br />
The shortcuts are:<br />
*"t": change texture of the selected blocks<br />
*"b": change properties of the selected blocks<br />
*"p": add a pin joint between two physical blocks<br />
*"o": add a pivot joint between two physical blocks<br />
*"d": change the selected objects into checkpoint<br />
*"y": change the selected objects into strawberry<br />
*"s": change properties of the selected sprites<br />
*"z": change the selected objects into zone<br />
*"w": change the selected objects into wrecker<br />
*"u": change the selected objects into a particle source<br />
*"r": change the selected objects into the player start<br />
*"e": change the selected objects into the end of level<br />
*"a": set layers properties<br />
*"n": set level properties<br />
*"h": set other level properties<br />
*"k": set sky properties<br />
*"x": launch the .lvl into Xmoto<br />
*"l": recreate last.lvl into the home directory (in .inkscape/extensions/)<br />
*"c": copy the xmoto properties of an object<br />
*"v": paste the xmoto properties stored in the selected objects<br />
*"i": change the id of an object<br />
<br />
==Drawing a simple level==<br />
<br />
Let's draw a simple level using only the Rectangle, Circle and Star tools.<br />
<br />
First, set the zoom of Inkscape to 100% (defaulted to 35% when you create a new svg), then draw your level.<br />
<br />
Here's is a simple level drawn using the Star tool and the Rectangle tool for the shapes and the Circle tool for the two little circles:<br />
[[Image:inksmoto_050_02.png]]<br />
<br />
==Set level properties==<br />
<br />
Now that the shapes of the level are drawn, we have to assign them Xmoto properties. For example, we want some shapes to be solid blocks, some others to be background blocks, change their texture...<br />
<br />
===Example===<br />
<br />
To change solid blocks texture, select them, then go to the Xmoto effect menu and use the menu entry ''Effects->X-moto->Blocks->Change Block Texture'' (or press 't').<br />
<br />
[[Image:inksmoto_050_03.png]]<br />
<br />
The ''Block textures'' window opens.<br />
<br />
[[Image:inksmoto_070_1.png]]<br />
<br />
Click on the white thumbnail to select the texture we want. The ''Texture Selection'' window pops up:<br />
<br />
[[Image:inksmoto_070_2.png]]<br />
<br />
Double click on the texture wanted for the blocks. Now the ''Block textures'' window displays the right texture:<br />
<br />
[[Image:inksmoto_070_3.png]]<br />
<br />
Press ''OK''. The texture is then displayed in Inkscape:<br />
<br />
[[Image:inksmoto_050_07.png]]<br />
<br />
Repeat the same procedure to change the texture for the three other blocks.<br />
<br />
Now, we want to set them as background blocks. Select them, and use this menu entry: ''Effects->X-moto->Blocks->Change Block Properties'' (or press 'b').<br />
<br />
[[Image:inksmoto_050_08.png]]<br />
<br />
The ''Block properties'' window opens. Check ''Background block'' then press ''OK''.<br />
<br />
[[Image:inksmoto_070_4.png]]<br />
<br />
Now we have to set the level start and its end.<br />
<br />
Select the first circle and use this menu entry: ''Effects->X-moto->Entities->Player Start''.<br />
Then select the second circle and use this menu entry: ''Effects->X-moto->Entities->End Of Level''.<br />
<br />
The level looks like this:<br />
<br />
[[Image:inksmoto_060_02.png]]<br />
<br />
==Save the level==<br />
<br />
Now that our level is drawn and its shapes have Xmoto properties, we have to set the properties of the level, like its name, author, ...<br />
<br />
Use the Xmoto menu entry ''Effects->X-moto->Level->Set level properties''. The ''Level properties'' window pops up:<br />
<br />
[[Image:inksmoto_070_5.png]]<br />
<br />
Entries in this window (bold ones are mandatory):<br />
* lua script: If your level has a lua script, enter the lua file with its full path.<br />
* '''level id''': The id of the level (only letters, digits and underscore, no space).<br />
* '''level name''': The real name of the level.<br />
* '''author''': The author of the level (you).<br />
* description: A message to add to the level.<br />
* border texture: Choose the texture which be displayed around the level. <br />
<br />
==Test the level in Xmoto==<br />
<br />
Now our level is ready to be tested in Xmoto. Use the Xmoto menu entry ''Effects->X-moto->Other->Launch level in X-moto'' (or press 'x'). The ''Launch level in X-Moto'' window pops up:<br />
<br />
[[Image:inksmoto_050_12.png]]<br />
<br />
If the Xmoto executable is present in your PATH (under Linux and MacOSX), you don't have to fill the parameter. If you're under Windows or you want to use a specific Xmoto executable, then enter your Xmoto executable with its full path. <br />
<br />
Here is the level in Xmoto:<br />
<br />
[[Image:inksmoto_050_13.png]]<br />
<br />
==Get the .lvl in order to upload it==<br />
<br />
Now that the level is ready, we have to upload it to the Xmoto website http://xmoto.tuxfamily.org/index.php?page=sendyourlevel<br />
<br />
You have to send the level as a .lvl file, not a .svg<br />
*svg: Vector graphic format<br />
*lvl: Xmoto level<br />
<br />
There's two ways to get the .lvl:<br />
*When you launch the level in Xmoto from within Inksmoto, the file last.svg and last.lvl are created in the Inkscape home extensions directory:<br />
**Linux & MacOSX: ~/.inkscape/extensions<br />
**Windows: C:\Documents And Settings\<USER>\Application Data\Inkscape\extensions\<br />
***To open Application Data you might have to do Start->run...(or Win-Button+R)->%APPDATA%<br />
<br />
*You can also save the svg and the lvl separately using ''File->Save a Copy...'' and choosing the appropriate file format ''(X-Moto Level (*.lvl))''.<br />
<br />
==Svg file of the tutorial==<br />
<br />
Here is the corresponding svg file of the tutorial level: [[Media:Tutorial_050.svg]]<br />
<br />
=Tutorial: What's new in 0.7.0=<br />
<br />
==Optimize inksmoto: conversion from svg to lvl is now up to six times faster==<br />
<br />
==Replace Tk with Gtk for windows toolkit==<br />
<br />
==Extend range of edge texture depth to negative values==<br />
<br />
==Per Block Smoothness==<br />
<br />
==Use the theme scale/depth for default value of edges==<br />
<br />
==Add support for checkpoints==<br />
<br />
==Allow sprites free rotation degrees==</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Sound_Functions&diff=5761Sound Functions2010-11-26T11:24:30Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Nadenislamarre</p>
<hr />
<div>== PlaySound("Sound",[v]) ==<br />
[require Xmoto >= 0.4.2]<br />
=== Explanation ===<br />
Using this function you can play a sound effect. The parameter 1 is the name of the sound, which is defined in the actually used theme file. Parameter 2 (v) is optional, and sets the Volume, in which the Sound shall be played. v is between 0 and 1 (0=>no sound, 1=> maximum sound, and for example, 0.5=>50% of the volume)<br />
In the following example, there must be 2 zones named "Zone0" and "Zone1". As soon as you enter the zone, the sound effect is played:<br />
<br />
=== Script example ===<br />
Zone0 = {}<br />
Zone1 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.PlaySound("ring");<br />
end<br />
<br />
function Zone1.OnEnter()<br />
Game.PlaySound("ring",0.2);<br />
end<br />
<br />
== PlayMusic("Music") ==<br />
[require Xmoto >= 0.4.2]<br />
=== Explanation ===<br />
Using this function you can play a music. The parameter 1 is the name of the musicd, which is defined in the actually used theme file. <br />
In the following example, there must be 3 zones named "Zone0", "Zone1" and "Zone2". As soon as you enter the zone, the music is played:<br />
<br />
=== Script example ===<br />
Zone0 = {}<br />
Zone1 = {}<br />
Zone2 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.PlayMusic("batcave");<br />
end<br />
<br />
function Zone1.OnEnter()<br />
Game.StopMusic();<br />
end<br />
<br />
function Zone2.OnEnter()<br />
Game.PlayMusic("madeirastew",0.5);<br />
end<br />
<br />
== StopMusic(); ==<br />
[require Xmoto >= 0.4.2]<br />
=== Explanation ===<br />
With this function you stop music playback for the current level.<br />
<br />
=== Script example ===<br />
Zone0 = {}<br />
Zone1 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.PlayMusic("batcave");<br />
end<br />
<br />
function Zone1.OnEnter()<br />
Game.StopMusic();<br />
end</div>Wiki.xmotohttp://wiki.xmoto.tuxfamily.org/index.php?title=Es:Inkscape-0.2.0&diff=5760Es:Inkscape-0.2.02010-11-26T11:24:29Z<p>Wiki.xmoto: Reverted edits by Opofefemucu (Talk) to last revision by Trullo</p>
<hr />
<div>[[Inkscape-0.2.0|English]] - [[Ca:Inkscape-0.2.0|Català]]<br />
<br />
----<br />
= Documentación para la versión 0.2.0 de svg2lvl=<br />
----<br />
<br />
= Requisitos Mínimos =<br />
<br />
* [http://www.inkscape.org/ Inkscape] (>= 0.44)<br />
* [http://www.python.org/ Python] (>= 2.4) (en Windows no es necesario, porque Inkscape ya lo incluye)<br />
* Svg2lvl converter y la extensión del Inkscape<br />
**versión actual disponible desde [http://xmoto.free.fr/ http://xmoto.free.fr/] o directamente desde [http://prdownloads.sourceforge.net/xmoto/svg2lvl-0.2.0.tar.gz?download http://prdownloads.sourceforge.net/xmoto/svg2lvl-0.2.0.tar.gz?download]<br />
<br />
= Antes que nada =<br />
<br />
Has de instalar la extensión svg2lvl del Inkscape.<br />
<br />
== GNU/Linux ==<br />
<br />
Supondremos que has descargado el archivo svg2lvl-*.tar.gz en ~/download/<br />
<br />
$ cd ~/download/<br />
$ tar zxvf svg2lvl-*.tar.gz<br />
$ cd svg2lvl-*<br />
$ mkdir -p ~/.inkscape/extensions/<br />
$ cp *.inx *.py ~/.inkscape/extensions/<br />
$ ln -s /usr/share/inkscape/extensions/bezmisc.py ~/.inkscape/extensions/bezmisc.py<br />
$ ln -s /usr/share/inkscape/extensions/inkex.py ~/.inkscape/extensions/inkex.py<br />
<br />
Entonces, ya puedes arrancar Inkscape.<br />
<br />
== Windows ==<br />
<br />
Descomprime el archivo svg2lvl-*.tar.gz que has descargado con tu programa de compresión preferido (unrar, 7-zip, ...).<br />
Ves a share/extensions/ dentro del directorio de instalación del Inkscape. Copia dentro de este directorio los archivos .py y .inx del paquete.<br />
<br />
Ahora, arranca Inkscape.<br />
<br />
== Comprueba si la instalación funciona correctamente ==<br />
<br />
*Comprueba que en el menú 'Effects' hay la entrada 'X-moto'<br />
*Haz 'Save as...' (Shift-Ctrl-S), y comprueba que puedes seleccionar el formato 'X-Moto Level (*.lvl)'.<br />
<br />
Si la instalación no ha sido satisfactoria, por favor ves al IRC para que podamos ayudarte a ver porque ha fallado.<br />
<br />
= Dibuja un nivel =<br />
<br />
Abre Inkscape.<br />
<br />
[[Image:inkscape-empty.png]]<br />
<br />
----<br />
<br />
Ya estas preparado para dibujar un nivel utilizando Inskcape. Mira te los howto's del Inkscape del menú Ayuda.<br />
<br />
[[Image:inskcape-drawn.png]]<br />
<br />
= Pon propiedades a los Objetos =<br />
<br />
Una vez tengas tu nivel dibujado, has de poner las propiedades de las entidades, bloques y figuras.<br />
<br />
Hay dos maneras de hacerlo. Manualmente o utilizando Inkscape ''effects''.<br />
<br />
== Utilizando los efectos del Inkscape==<br />
La manera mas sencilla de cambiar propiedades de objetos.<br />
<br />
Selecciona los objetos en los cuales quieres cambiar las propiedades. Ves al menú ''Effect'' y elije el submenu ''X-moto''. Y tendras mas submenus para transformar tus objetos en el tipos deseado (Zonas, Bloques, Entidades).<br />
<br />
Dependiendo del tipo de objeto, el color cambia. Los colores son muy feos.. pero si tienes alguna idea sobre algún color que pueda quedar mejor, hazlo saber. Agregando una textura de bordillo a un bloque, agrega un horrible color verde en el bordillo del bloque en el Inkscape.<br />
<br />
(Información: Solo se actualiza la etiqueta del objeto (Mirate la siguiente sección para mas detalles).)<br />
<br />
----<br />
<br />
Por ejemplo, si queremos cambiar el circulo en un bloque dinámico utilizando la textura '''Texture1''' (es un ejemplo, realmente no existe). (Fíjate que puedes seleccionar mea de un objeto a la vez). Primero, seleccionamos la entrada de la derecha del submenu ''X-moto''.<br />
<br />
[[Image:Effect-inkscape.png]]<br />
<br />
Entonces ponemos el nombre de la textura<br />
<br />
[[Image:Effect-param.png]]<br />
<br />
Y aquí esta el resultado. Para ver lo, haz click derecho en un objeto y selecciona ''object properties''.<br />
<br />
[[Image:Effect-result.png]]<br />
<br />
== Editalo Manualmente==<br />
Otra forma de cambiar las propiedades.<br />
<br />
Selecciona un objeto, click derecho y selecciona 'object properties'.<br />
<br />
[[Image:inskcape-properties.png]]<br />
<br />
----<br />
<br />
Las propiedades se ponen dentro de 'label'. Se separan con un '|'. Si no hay propiedades especificadas, el objeto se coloca como un bloque con la textura por defecto.<br />
También puedes rellenar 'id', es útil si escribes un script con código lua para el nivel, porque así tienes los nombres de los bloques, las zonas, etc.. para hacerlos servir en tu script.<br />
<br />
Atención :las propiedades son sensibles a las mayúsculas ! Escribe-las exactamente como os mostramos:<br />
<br />
===Propiedades de Bloques===<br />
* background<br />
* dynamic<br />
* usetexture=texture_name<br />
* edgeTexture=edge_texture_name<br />
* physics:grip=grip_value<br />
<br />
====Ejemplos====<br />
Un Bloque de fondo (es un bloque en el fondo con el cual el jugador no puede interactuar) utilizando la textura Dark Dirt:<br />
<br />
background|usetexture=DarkDirt<br />
<br />
Un Bloque dinámico utilizando la textura por defecto:<br />
<br />
dynamic<br />
<br />
Un Bloque utilizando la textura por defecto:<br />
<br />
(no hay nada que poner, dejalo vacío (o deja lo que Inkscape ponga))<br />
<br />
Un Bloque utilizando la textura Dark Dirt:<br />
<br />
usetexture=DarkDirt<br />
<br />
Un Bloque dinámico con hierba utilizando la textura Bricks<br />
<br />
usetexture=Bricks|dynamic|edgeTexture=Grass<br />
<br />
Un bloque que utiliza la textura Dark Dirt y que cambia la fricción par simular hielo (el valor de grip puede estar entre [1.0 - 50.0], por defecto es 20.0. Si es mas pequeño, el bloque tendrá menos fricción.<br />
<br />
usetexture=DarkDirt|physics:grip=1.0<br />
<br />
===Propiedades de las Entidades===<br />
* typeid=[PlayerStart|EndOfLevel|Strawberry|Wrecker|ParticleSource|Sprite]<br />
* size=float_number (the entity colision radius)<br />
* param_name=param_value available params name are (there's more of them):<br />
**z (for Sprite)<br />
**name (for Sprite)<br />
**style (for every entity)<br />
**type (for ParticleSource)<br />
<br />
====Ejemplos====<br />
El código de una partícula humeante:<br />
<br />
typeid=ParticleSource|type=Smoke<br />
<br />
Una fresa:<br />
<br />
typeid=Strawberry<br />
<br />
Una figura de un arbol detras de los bloques delanteros:<br />
<br />
typeid=Sprite|name=Tree1|z=-1<br />
<br />
El inicio del jugador:<br />
<br />
typeid=PlayerStart<br />
<br />
El final del nivel:<br />
<br />
typeid=EndOfLevel<br />
<br />
===Propiedades de Zonas===<br />
*typeid=Zone<br />
<br />
;el único posible valor para una zona: typeid=Zone<br />
<br />
= Genera el archivo del Nivel =<br />
<br />
Atención: Guarda también tu nivel en formato .svg<br />
.lvl es un formato con perdida, elimina información relacionada con las curvas bezier,<br />
porque son reemplazadas por muchos vértices.<br />
Además Inkscape no puede volver a abrir los archivos .lvl (si quieres, puedes escribir y enviarnos un patch para corregir esto).<br />
<br />
==Arrancar el Convertidor==<br />
Para guardar tu nivel dentro de un archivo con format .lvl, utiliza el menú ''File -> Save as...'' (o haz Shift-Ctrl-S) y escoge la extensión ''X-Moto Level'', pon nombre al archivo del nivel y dale a ''Save''.<br />
<br />
[[Image:Save-as.png]]<br />
<br />
Una nueva ventana emergirá, has de poner:<br />
<br />
* level width : anchura del nivel en xmoto unit. Prueba diferentes hasta que encuentres la correcta<br />
* smoothitude : cuanto mas alto es el valor, mas suave sera el nivel. Pero no agregues muchos vértices, porque el xmoto no hace la escala muy bien si el nivel es muy grande con miles de vértices... y ira una poco mas lento...<br />
* lua script : la ruta absoluta a tu script lua (dejalo vacío si no tienes ninguno)<br />
* level id : el identificador del nivel (cada nivel ha de tener uno diferente)<br />
* level name : el nombre del nivel en la lista de niveles<br />
* author : tu nombre o apodo<br />
* description : pequeña descripción del nivel<br />
* sky : el cielo que quieres utilizar en el nivel<br />
* rversion: la versión mínima necesitada para jugar a este nivel (por defecto 0.2.0).<br />
<br />
L'rversion depende de las funciones que el script lua utiliza. (mirate [[Es:Scripted levels|Como crear un nivel dinámico utilizando el lenguaje Lua ]] para una lista de las funciones lua y la versión del X-Moto en donde están disponibles)<br />
<br />
Entonces el archivo se guardara en el directorio escogido en la ventana de ''Save as...''.<br />
<br />
Importante: Hay un bug en el Inkscape. La primera vez que guardes un nivel con formato .lvl, has de poner algo en la caja de ''lua script'' (por defecto: None). Si no lo haces, el Inkscape es cerrara...<br />
[[Image:Script-params.png]]<br />
<br />
Pon el archivo lvl que has generado en el directorio Levels del xmoto, y ya puedes jugar (fíjate que la hierba esta solo en la parte alta del bloque):<br />
<br />
[[Image:Sample-level-editor.png|El nivel en el editor]]<br />
<br />
[[Image:sample-level.jpg|thumb|El nivel en el X-Moto]]<br />
<br />
El script agregara el archivo historial svg2lvl.log en tu directorio home ''~/''.<br />
<br />
== Archivos utilizados en esta guia ==<br />
*svg: [[Media:sample.svg]]<br />
*lvl: [[Media:sample.lvl]]</div>Wiki.xmoto