Compare commits

..

1 Commits

Author SHA1 Message Date
Florian Rival
05d2019f80 Add support for passing a behavior as parameter in an expression 2019-05-20 23:50:06 +01:00
3529 changed files with 480046 additions and 78550 deletions

View File

@@ -1,70 +0,0 @@
# CircleCI 2.0 configuration file to build GDevelop app running
# on the Electron runtime (newIDE/electron-app).
version: 2
jobs:
build:
docker:
- image: circleci/node:lts
working_directory: ~/GDevelop
steps:
- checkout
# System dependencies (for Electron Builder and Emscripten)
- run:
name: Install dependencies for Emscripten
command: sudo apt install cmake
- run:
name: Install Emscripten (for GDevelop.js)
command: git clone https://github.com/juj/emsdk.git && cd emsdk && ./emsdk install sdk-1.37.37-64bit && ./emsdk activate sdk-1.37.37-64bit && cd ..
- run:
name: Install Wine for Electron builder
command: sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt install wine32
- run:
name: Install system dependencies for Electron builder
command: sudo apt install icnsutils && sudo apt install graphicsmagick && sudo apt install rsync
# GDevelop.js dependencies
- restore_cache:
keys:
- gd-nodejs-dependencies-{{ checksum "newIDE/app/package.json" }}-{{ checksum "newIDE/electron-app/package.json" }}-{{ checksum "GDevelop.js/package.json" }}
# fallback to using the latest cache if no exact match is found
- gd-nodejs-dependencies---
- run:
name: Install GDevelop.js dependencies and build it
command: cd GDevelop.js && sudo npm install -g grunt-cli && npm install && cd ..
# Build GDevelop.js
- run:
name: Build GDevelop.js
command: cd GDevelop.js && source ../emsdk/emsdk_env.sh && npm run build && npm test && cd ..
# GDevelop IDE dependencies (after building GDevelop.js to avoid downloading a pre-built version)
- run:
name: Install GDevelop IDE dependencies
command: cd newIDE/app && npm install && cd ../electron-app && npm install
- save_cache:
paths:
- newIDE/electron-app/node_modules
- newIDE/app/node_modules
- GDevelop.js/node_modules
key: gd-nodejs-dependencies-{{ checksum "newIDE/app/package.json" }}-{{ checksum "newIDE/electron-app/package.json" }}
# Build GDevelop IDE
- run:
name: Build GDevelop IDE
command: cd newIDE/electron-app && npm run build -- --mac --win --linux tar.gz --publish=never
# Upload artifacts
- run:
name: Clean dist folder to keep only installers/binaries.
command: rm -rf newIDE/electron-app/dist/linux-unpacked && rm -rf newIDE/electron-app/dist/win-unpacked && rm -rf newIDE/electron-app/dist/mac
- store_artifacts:
path: newIDE/electron-app/dist

2
.gitignore vendored
View File

@@ -5,6 +5,7 @@
/docs/GDCore Documentation
/ExtLibs/SFML
/ExtLibs/*.7z
/scripts/Repository keys
/scripts/logs/*.txt
/scripts/gdcore-gdcpp-gdjs-extensions-messages.pot
/Binaries/.build*
@@ -65,4 +66,3 @@
**/.DS_Store
**/node_modules/
.idea
.vscode/ipch

View File

@@ -12,11 +12,7 @@ cache:
env:
global:
- GCC_VERSION="4.8"
services:
# Virtual Framebuffer 'fake' X server for SFML
- xvfb
addons:
artifacts:
s3_region: "us-east-1"
@@ -29,7 +25,8 @@ addons:
- ubuntu-toolchain-r-test
packages:
# Build dependencies:
- cmake
# (Cmake 3+ is required by Emscripten)
- cmake3
- p7zip-full
- g++-4.8
# SFML dependencies:
@@ -46,6 +43,7 @@ before_install:
#Activate X Virtual Framebuffer to allow tests to
#use SFML.
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
# This workaround is required to avoid libstdc++ errors (Emscripten requires a recent version of libstdc++)
- wget -q -O libstdc++6 http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.10_amd64.deb
- sudo dpkg --force-all -i libstdc++6

View File

@@ -0,0 +1,7 @@
#Execute this file to launch the game
#If you can not launch it, make sure that this file
#as well as 'ExeLinux' have the right to be executed
#(Right click on file > Properties)
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
./ExeLinux

View File

@@ -0,0 +1,26 @@
#Execute this file to launch GDevelop
#If you can not launch GD, make sure that this file
#as well as 'GDIDE' have the right to be executed
#(Right click on file > Properties)
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
if [ -z ${1+x} ]; then
GDK_BACKEND=x11 ./GDIDE
else
GDK_BACKEND=x11 ./GDIDE "$1"
fi
if [ "$?" = "127" ]; then
mkdir -p ~/.GDevelop
GDK_BACKEND=x11 ./GDIDE 1> ~/.GDevelop/errorMsgWhileLoadingGD.txt 2> ~/.GDevelop/errorMsgWhileLoadingGD.txt
errorMsg=$(cat < ~/.GDevelop/errorMsgWhileLoadingGD.txt)
echo "$errorMsg" | grep "loading shared"
if [ "$?" == "0" ]; then
zenity --error --text="Unable to launch GDevelop! Here is the error message:\n\n <b>$errorMsg</b>\n\nMay be a <b>package is not installed</b>.\nCheck if you can find the package in the Software Center.";
else
zenity --error --text="Unable to launch GDevelop, a unknown error happened! Here is the full error message:\n\n <b>$errorMsg</b>\n\n.";
fi;
fi;

View File

Before

Width:  |  Height:  |  Size: 380 B

After

Width:  |  Height:  |  Size: 380 B

View File

Before

Width:  |  Height:  |  Size: 581 B

After

Width:  |  Height:  |  Size: 581 B

View File

Before

Width:  |  Height:  |  Size: 419 B

After

Width:  |  Height:  |  Size: 419 B

View File

Before

Width:  |  Height:  |  Size: 323 B

After

Width:  |  Height:  |  Size: 323 B

View File

Before

Width:  |  Height:  |  Size: 685 B

After

Width:  |  Height:  |  Size: 685 B

View File

Before

Width:  |  Height:  |  Size: 308 B

After

Width:  |  Height:  |  Size: 308 B

View File

Before

Width:  |  Height:  |  Size: 226 B

After

Width:  |  Height:  |  Size: 226 B

View File

Before

Width:  |  Height:  |  Size: 303 B

After

Width:  |  Height:  |  Size: 303 B

View File

Before

Width:  |  Height:  |  Size: 667 B

After

Width:  |  Height:  |  Size: 667 B

View File

Before

Width:  |  Height:  |  Size: 804 B

After

Width:  |  Height:  |  Size: 804 B

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 319 B

After

Width:  |  Height:  |  Size: 319 B

View File

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 340 B

View File

Before

Width:  |  Height:  |  Size: 273 B

After

Width:  |  Height:  |  Size: 273 B

View File

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 281 B

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 545 B

After

Width:  |  Height:  |  Size: 545 B

View File

Before

Width:  |  Height:  |  Size: 436 B

After

Width:  |  Height:  |  Size: 436 B

View File

Before

Width:  |  Height:  |  Size: 998 B

After

Width:  |  Height:  |  Size: 998 B

View File

Before

Width:  |  Height:  |  Size: 478 B

After

Width:  |  Height:  |  Size: 478 B

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 716 B

After

Width:  |  Height:  |  Size: 716 B

View File

Before

Width:  |  Height:  |  Size: 470 B

After

Width:  |  Height:  |  Size: 470 B

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 787 B

After

Width:  |  Height:  |  Size: 787 B

View File

Before

Width:  |  Height:  |  Size: 388 B

After

Width:  |  Height:  |  Size: 388 B

View File

Before

Width:  |  Height:  |  Size: 331 B

After

Width:  |  Height:  |  Size: 331 B

View File

Before

Width:  |  Height:  |  Size: 708 B

After

Width:  |  Height:  |  Size: 708 B

View File

Before

Width:  |  Height:  |  Size: 386 B

After

Width:  |  Height:  |  Size: 386 B

View File

Before

Width:  |  Height:  |  Size: 305 B

After

Width:  |  Height:  |  Size: 305 B

View File

Before

Width:  |  Height:  |  Size: 819 B

After

Width:  |  Height:  |  Size: 819 B

View File

Before

Width:  |  Height:  |  Size: 859 B

After

Width:  |  Height:  |  Size: 859 B

View File

Before

Width:  |  Height:  |  Size: 406 B

After

Width:  |  Height:  |  Size: 406 B

View File

Before

Width:  |  Height:  |  Size: 486 B

After

Width:  |  Height:  |  Size: 486 B

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 943 B

After

Width:  |  Height:  |  Size: 943 B

View File

Before

Width:  |  Height:  |  Size: 531 B

After

Width:  |  Height:  |  Size: 531 B

View File

Before

Width:  |  Height:  |  Size: 287 B

After

Width:  |  Height:  |  Size: 287 B

View File

Before

Width:  |  Height:  |  Size: 380 B

After

Width:  |  Height:  |  Size: 380 B

View File

Before

Width:  |  Height:  |  Size: 640 B

After

Width:  |  Height:  |  Size: 640 B

View File

Before

Width:  |  Height:  |  Size: 854 B

After

Width:  |  Height:  |  Size: 854 B

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 918 B

After

Width:  |  Height:  |  Size: 918 B

View File

Before

Width:  |  Height:  |  Size: 668 B

After

Width:  |  Height:  |  Size: 668 B

View File

Before

Width:  |  Height:  |  Size: 464 B

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@@ -0,0 +1,906 @@
<?xml version="1.0" encoding="UTF-8" ?>
<project firstLayout="">
<gdVersion build="84" major="3" minor="6" revision="0" />
<properties linuxExecutableFilename="" macExecutableFilename="" useExternalSourceFiles="false" winExecutableFilename="" winExecutableIconFile="">
<name>Animation speed scale</name>
<author></author>
<windowWidth>800</windowWidth>
<windowHeight>600</windowHeight>
<latestCompilationDirectory></latestCompilationDirectory>
<maxFPS>60</maxFPS>
<minFPS>10</minFPS>
<verticalSync>false</verticalSync>
<extensions>
<extension name="BuiltinObject" />
<extension name="BuiltinAudio" />
<extension name="BuiltinVariables" />
<extension name="BuiltinTime" />
<extension name="BuiltinMouse" />
<extension name="BuiltinKeyboard" />
<extension name="BuiltinJoystick" />
<extension name="BuiltinCamera" />
<extension name="BuiltinWindow" />
<extension name="BuiltinFile" />
<extension name="BuiltinNetwork" />
<extension name="BuiltinScene" />
<extension name="BuiltinAdvanced" />
<extension name="Sprite" />
<extension name="BuiltinCommonInstructions" />
<extension name="BuiltinCommonConversions" />
<extension name="BuiltinStringInstructions" />
<extension name="BuiltinMathematicalTools" />
<extension name="BuiltinExternalLayouts" />
<extension name="TiledSpriteObject" />
<extension name="PlatformAutomatism" />
<extension name="TextObject" />
</extensions>
<platforms>
<platform name="GDevelop C++ platform" />
<platform name="GDevelop JS platform" />
</platforms>
<currentPlatform>GDevelop JS platform</currentPlatform>
</properties>
<resources>
<resources>
<resource alwaysLoaded="false" file="p1_stand.png" kind="image" name="p1_stand.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="p1_jump.png" kind="image" name="p1_jump.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="p1_walk01.png" kind="image" name="p1_walk01.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="p1_walk02.png" kind="image" name="p1_walk02.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="p1_walk03.png" kind="image" name="p1_walk03.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="p1_walk04.png" kind="image" name="p1_walk04.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="p1_walk05.png" kind="image" name="p1_walk05.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="p1_walk06.png" kind="image" name="p1_walk06.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="p1_walk07.png" kind="image" name="p1_walk07.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="p1_walk08.png" kind="image" name="p1_walk08.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="p1_walk09.png" kind="image" name="p1_walk09.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="p1_walk10.png" kind="image" name="p1_walk10.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="p1_walk11.png" kind="image" name="p1_walk11.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="brickWall.png" kind="image" name="brickWall.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="bridge.png" kind="image" name="bridge.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="grassHalfMid.png" kind="image" name="grassHalfMid.png" smoothed="true" userAdded="true" />
<resource alwaysLoaded="false" file="castleCenter.png" kind="image" name="castleCenter.png" smoothed="true" userAdded="true" />
<resource alwaysLoaded="false" file="bridgeLogs.png" kind="image" name="bridgeLogs.png" smoothed="true" userAdded="true" />
<resource alwaysLoaded="false" file="Left.png" kind="image" name="Left.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="Right.png" kind="image" name="Right.png" smoothed="true" userAdded="false" />
<resource alwaysLoaded="false" file="ladder_mid.png" kind="image" name="ladder_mid.png" smoothed="true" userAdded="true" />
<resource alwaysLoaded="false" file="Grass.png" kind="image" name="Grass.png" smoothed="true" userAdded="true" />
</resources>
<resourceFolders />
</resources>
<objects />
<objectsGroups />
<variables />
<layouts>
<layout b="252" disableInputWhenNotFocused="true" mangledName="New_32scene" name="New scene" oglFOV="90.000000" oglZFar="500.000000" oglZNear="1.000000" r="201" standardSortMethod="true" stopSoundsOnStartup="true" title="" v="233">
<uiSettings associatedLayout="" grid="false" gridB="255" gridG="180" gridHeight="70" gridOffsetX="0" gridOffsetY="0" gridR="158" gridWidth="70" snap="true" windowMask="false" zoomFactor="1.000000" />
<objectsGroups />
<variables />
<instances>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Player" width="0.000000" x="117.999947" y="449.230774" zOrder="20">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="true" height="70.000000" layer="" locked="false" name="TiledGrassPlatform" width="5262.430664" x="-583.046265" y="571.000000" zOrder="1">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Platform" width="0.000000" x="-581.269226" y="167.923035" zOrder="21">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Platform" width="0.000000" x="-579.961609" y="500.076843" zOrder="21">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Platform" width="0.000000" x="-578.653503" y="434.692230" zOrder="21">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Platform" width="0.000000" x="-578.653503" y="369.307617" zOrder="21">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Platform" width="0.000000" x="-578.653992" y="301.307648" zOrder="21">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Platform" width="0.000000" x="-579.961609" y="233.307648" zOrder="21">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Platform" width="0.000000" x="4552.730469" y="435.999939" zOrder="21">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Platform" width="0.000000" x="4551.422363" y="501.384552" zOrder="21">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Platform" width="0.000000" x="4552.730469" y="370.615326" zOrder="21">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Platform" width="0.000000" x="4552.729980" y="302.615356" zOrder="21">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Platform" width="0.000000" x="4550.114746" y="169.230743" zOrder="21">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Platform" width="0.000000" x="4551.422363" y="234.615356" zOrder="21">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Jumpthru" width="0.000000" x="917.730652" y="421.615326" zOrder="22">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Jumpthru" width="0.000000" x="779.115295" y="422.923035" zOrder="22">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Jumpthru" width="0.000000" x="848.422913" y="421.615326" zOrder="22">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Jumpthru" width="0.000000" x="363.269226" y="420.307678" zOrder="22">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Jumpthru" width="0.000000" x="432.576843" y="418.999969" zOrder="22">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Jumpthru" width="0.000000" x="501.884521" y="418.999969" zOrder="22">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Jumpthru" width="0.000000" x="572.500000" y="421.615356" zOrder="22">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Jumpthru" width="0.000000" x="641.807617" y="420.307648" zOrder="22">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="Jumpthru" width="0.000000" x="711.115356" y="420.307648" zOrder="22">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
<instance angle="0.000000" customSize="false" height="0.000000" layer="Nouveau calque" locked="false" name="AnimationScaleText" width="0.000000" x="18.807678" y="14.923172" zOrder="1">
<numberProperties />
<stringProperties />
<initialVariables />
</instance>
</instances>
<objects>
<object name="Player" type="Sprite">
<variables />
<automatisms>
<automatism acceleration="1500.000000" deceleration="1500.000000" gravity="1300.000000" ignoreDefaultControls="false" jumpSpeed="1000.000000" maxFallingSpeed="1000.000000" maxSpeed="250.000000" name="PlatformerObject" slopeMaxAngle="0.000000" type="PlatformAutomatism::PlatformerObjectAutomatism" />
</automatisms>
<animations>
<animation useMultipleDirections="false">
<directions>
<direction looping="false" timeBetweenFrames="1.000000">
<sprites>
<sprite hasCustomCollisionMask="false" image="p1_stand.png">
<points />
<originPoint name="origine" x="0.000000" y="0.000000" />
<centerPoint automatic="true" name="centre" x="36.000000" y="46.000000" />
<customCollisionMask>
<polygon>
<vertice x="0.000000" y="0.000000" />
<vertice x="72.000000" y="0.000000" />
<vertice x="72.000000" y="92.000000" />
<vertice x="0.000000" y="92.000000" />
</polygon>
</customCollisionMask>
</sprite>
</sprites>
</direction>
</directions>
</animation>
<animation useMultipleDirections="false">
<directions>
<direction looping="false" timeBetweenFrames="1.000000">
<sprites>
<sprite hasCustomCollisionMask="false" image="p1_jump.png">
<points />
<originPoint name="origine" x="0.000000" y="0.000000" />
<centerPoint automatic="true" name="centre" x="36.000000" y="47.000000" />
<customCollisionMask>
<polygon>
<vertice x="0.000000" y="0.000000" />
<vertice x="72.000000" y="0.000000" />
<vertice x="72.000000" y="94.000000" />
<vertice x="0.000000" y="94.000000" />
</polygon>
</customCollisionMask>
</sprite>
</sprites>
</direction>
</directions>
</animation>
<animation useMultipleDirections="false">
<directions>
<direction looping="true" timeBetweenFrames="0.050000">
<sprites>
<sprite hasCustomCollisionMask="false" image="p1_walk03.png">
<points />
<originPoint name="origine" x="0.000000" y="0.000000" />
<centerPoint automatic="true" name="centre" x="36.000000" y="48.500000" />
<customCollisionMask>
<polygon>
<vertice x="0.000000" y="0.000000" />
<vertice x="72.000000" y="0.000000" />
<vertice x="72.000000" y="97.000000" />
<vertice x="0.000000" y="97.000000" />
</polygon>
</customCollisionMask>
</sprite>
<sprite hasCustomCollisionMask="false" image="p1_walk04.png">
<points />
<originPoint name="origine" x="0.000000" y="0.000000" />
<centerPoint automatic="true" name="centre" x="36.000000" y="48.500000" />
<customCollisionMask>
<polygon>
<vertice x="0.000000" y="0.000000" />
<vertice x="72.000000" y="0.000000" />
<vertice x="72.000000" y="97.000000" />
<vertice x="0.000000" y="97.000000" />
</polygon>
</customCollisionMask>
</sprite>
<sprite hasCustomCollisionMask="false" image="p1_walk05.png">
<points />
<originPoint name="origine" x="0.000000" y="0.000000" />
<centerPoint automatic="true" name="centre" x="36.000000" y="48.500000" />
<customCollisionMask>
<polygon>
<vertice x="0.000000" y="0.000000" />
<vertice x="72.000000" y="0.000000" />
<vertice x="72.000000" y="97.000000" />
<vertice x="0.000000" y="97.000000" />
</polygon>
</customCollisionMask>
</sprite>
<sprite hasCustomCollisionMask="false" image="p1_walk06.png">
<points />
<originPoint name="origine" x="0.000000" y="0.000000" />
<centerPoint automatic="true" name="centre" x="36.000000" y="48.500000" />
<customCollisionMask>
<polygon>
<vertice x="0.000000" y="0.000000" />
<vertice x="72.000000" y="0.000000" />
<vertice x="72.000000" y="97.000000" />
<vertice x="0.000000" y="97.000000" />
</polygon>
</customCollisionMask>
</sprite>
<sprite hasCustomCollisionMask="false" image="p1_walk07.png">
<points />
<originPoint name="origine" x="0.000000" y="0.000000" />
<centerPoint automatic="true" name="centre" x="36.000000" y="48.500000" />
<customCollisionMask>
<polygon>
<vertice x="0.000000" y="0.000000" />
<vertice x="72.000000" y="0.000000" />
<vertice x="72.000000" y="97.000000" />
<vertice x="0.000000" y="97.000000" />
</polygon>
</customCollisionMask>
</sprite>
</sprites>
</direction>
</directions>
</animation>
</animations>
</object>
<object name="Platform" type="Sprite">
<variables />
<automatisms>
<automatism name="Platform" platformType="NormalPlatform" type="PlatformAutomatism::PlatformAutomatism" />
</automatisms>
<animations>
<animation useMultipleDirections="false">
<directions>
<direction looping="false" timeBetweenFrames="1.000000">
<sprites>
<sprite hasCustomCollisionMask="false" image="brickWall.png">
<points />
<originPoint name="origine" x="0.000000" y="0.000000" />
<centerPoint automatic="true" name="centre" x="35.000000" y="35.000000" />
<customCollisionMask>
<polygon>
<vertice x="0.000000" y="0.000000" />
<vertice x="70.000000" y="0.000000" />
<vertice x="70.000000" y="70.000000" />
<vertice x="0.000000" y="70.000000" />
</polygon>
</customCollisionMask>
</sprite>
</sprites>
</direction>
</directions>
</animation>
<animation useMultipleDirections="false">
<directions>
<direction looping="false" timeBetweenFrames="1.000000">
<sprites>
<sprite hasCustomCollisionMask="false" image="Grass.png">
<points />
<originPoint name="origine" x="0.000000" y="0.000000" />
<centerPoint automatic="true" name="centre" x="35.000000" y="35.000000" />
<customCollisionMask>
<polygon>
<vertice x="0.000000" y="0.000000" />
<vertice x="70.000000" y="0.000000" />
<vertice x="70.000000" y="70.000000" />
<vertice x="0.000000" y="70.000000" />
</polygon>
</customCollisionMask>
</sprite>
</sprites>
</direction>
</directions>
</animation>
</animations>
</object>
<object name="Jumpthru" type="Sprite">
<variables />
<automatisms>
<automatism name="Platform" platformType="Jumpthru" type="PlatformAutomatism::PlatformAutomatism" />
</automatisms>
<animations>
<animation useMultipleDirections="false">
<directions>
<direction looping="false" timeBetweenFrames="1.000000">
<sprites>
<sprite hasCustomCollisionMask="false" image="bridgeLogs.png">
<points />
<originPoint name="origine" x="0.000000" y="0.000000" />
<centerPoint automatic="true" name="centre" x="35.000000" y="12.500000" />
<customCollisionMask>
<polygon>
<vertice x="0.000000" y="0.000000" />
<vertice x="70.000000" y="0.000000" />
<vertice x="70.000000" y="25.000000" />
<vertice x="0.000000" y="25.000000" />
</polygon>
</customCollisionMask>
</sprite>
</sprites>
</direction>
</directions>
</animation>
</animations>
</object>
<object height="70.000000" name="TiledGrassPlatform" texture="grassHalfMid.png" type="TiledSpriteObject::TiledSprite" width="70.000000">
<variables />
<automatisms>
<automatism name="Platform" platformType="NormalPlatform" type="PlatformAutomatism::PlatformAutomatism" />
</automatisms>
</object>
<object height="70.000000" name="TiledCastlePlatform" texture="castleCenter.png" type="TiledSpriteObject::TiledSprite" width="70.000000">
<variables />
<automatisms>
<automatism name="Platform" platformType="NormalPlatform" type="PlatformAutomatism::PlatformAutomatism" />
</automatisms>
</object>
<object name="MovingPlatform" type="Sprite">
<variables />
<automatisms>
<automatism name="Platform" platformType="Jumpthru" type="PlatformAutomatism::PlatformAutomatism" />
</automatisms>
<animations>
<animation useMultipleDirections="false">
<directions>
<direction looping="false" timeBetweenFrames="1.000000">
<sprites>
<sprite hasCustomCollisionMask="false" image="bridge.png">
<points />
<originPoint name="origine" x="0.000000" y="0.000000" />
<centerPoint automatic="true" name="centre" x="35.000000" y="10.000000" />
<customCollisionMask>
<polygon>
<vertice x="0.000000" y="0.000000" />
<vertice x="70.000000" y="0.000000" />
<vertice x="70.000000" y="20.000000" />
<vertice x="0.000000" y="20.000000" />
</polygon>
</customCollisionMask>
</sprite>
</sprites>
</direction>
</directions>
</animation>
</animations>
</object>
<object name="GoLeft" type="Sprite">
<variables />
<automatisms />
<animations>
<animation useMultipleDirections="false">
<directions>
<direction looping="false" timeBetweenFrames="1.000000">
<sprites>
<sprite hasCustomCollisionMask="false" image="Left.png">
<points />
<originPoint name="origine" x="0.000000" y="0.000000" />
<centerPoint automatic="true" name="centre" x="13.500000" y="13.500000" />
<customCollisionMask>
<polygon>
<vertice x="0.000000" y="0.000000" />
<vertice x="27.000000" y="0.000000" />
<vertice x="27.000000" y="27.000000" />
<vertice x="0.000000" y="27.000000" />
</polygon>
</customCollisionMask>
</sprite>
</sprites>
</direction>
</directions>
</animation>
</animations>
</object>
<object name="GoRight" type="Sprite">
<variables />
<automatisms />
<animations>
<animation useMultipleDirections="false">
<directions>
<direction looping="false" timeBetweenFrames="1.000000">
<sprites>
<sprite hasCustomCollisionMask="false" image="Right.png">
<points />
<originPoint name="origine" x="0.000000" y="0.000000" />
<centerPoint automatic="true" name="centre" x="13.500000" y="13.500000" />
<customCollisionMask>
<polygon>
<vertice x="0.000000" y="0.000000" />
<vertice x="27.000000" y="0.000000" />
<vertice x="27.000000" y="27.000000" />
<vertice x="0.000000" y="27.000000" />
</polygon>
</customCollisionMask>
</sprite>
</sprites>
</direction>
</directions>
</animation>
</animations>
</object>
<object height="70.000000" name="Ladder" texture="ladder_mid.png" type="TiledSpriteObject::TiledSprite" width="70.000000">
<variables />
<automatisms>
<automatism name="Platform" platformType="Ladder" type="PlatformAutomatism::PlatformAutomatism" />
</automatisms>
</object>
<object bold="true" italic="false" name="AnimationScaleText" smoothed="true" type="TextObject::Text" underlined="false">
<variables />
<automatisms />
<string>Text</string>
<font></font>
<characterSize>20</characterSize>
<color b="0" g="0" r="0" />
</object>
</objects>
<events>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Comment</type>
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
<comment>The &quot;Player&quot; object has an automatism called &quot;Platformer object&quot;: &#x0A;You can move it using the arrows key and the Shift key to jump.&#x0A;&#x0A;The platforms are recognized thanks to their &quot;Platform&quot; automatism.</comment>
<comment2>L&apos;objet &quot;Player&quot; possède un automatisme appelé &quot;Personnage déplaçable sur les plateformes&quot;:&#x0A;Vous pouvez le bouger avec les flèches directionnelles et utiliser la touche Shift ( ou Maj ) pour sauter.&#x0A;&#x0A;Les plateformes ont toutes un automatisme &quot;Plateforme&quot; afin d&apos;être reconnues comme telles.</comment2>
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Standard</type>
<conditions>
<condition>
<type inverted="false" value="DepartScene" />
<parameters>
<parameter></parameter>
</parameters>
<subConditions />
</condition>
</conditions>
<actions>
<action>
<type inverted="false" value="ChangeAnimationSpeedScale" />
<parameters>
<parameter>Player</parameter>
<parameter>=</parameter>
<parameter>1</parameter>
</parameters>
<subActions />
</action>
</actions>
<events />
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Comment</type>
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
<comment>Change the animation according to what the player do.</comment>
<comment2>On change l&apos;animation en fonction de ce que fait le joueur.</comment2>
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Standard</type>
<conditions>
<condition>
<type inverted="false" value="PlatformAutomatism::IsJumping" />
<parameters>
<parameter>Player</parameter>
<parameter>PlatformerObject</parameter>
</parameters>
<subConditions />
</condition>
</conditions>
<actions>
<action>
<type inverted="false" value="ChangeAnimation" />
<parameters>
<parameter>Player</parameter>
<parameter>=</parameter>
<parameter>1</parameter>
</parameters>
<subActions />
</action>
</actions>
<events />
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Standard</type>
<conditions>
<condition>
<type inverted="false" value="PlatformAutomatism::IsFalling" />
<parameters>
<parameter>Player</parameter>
<parameter>PlatformerObject</parameter>
</parameters>
<subConditions />
</condition>
</conditions>
<actions>
<action>
<type inverted="false" value="ChangeAnimation" />
<parameters>
<parameter>Player</parameter>
<parameter>=</parameter>
<parameter>1</parameter>
</parameters>
<subActions />
</action>
</actions>
<events />
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Standard</type>
<conditions>
<condition>
<type inverted="false" value="PlatformAutomatism::IsOnFloor" />
<parameters>
<parameter>Player</parameter>
<parameter>PlatformerObject</parameter>
</parameters>
<subConditions />
</condition>
</conditions>
<actions />
<events>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Standard</type>
<conditions>
<condition>
<type inverted="true" value="PlatformAutomatism::IsMoving" />
<parameters>
<parameter>Player</parameter>
<parameter>PlatformerObject</parameter>
</parameters>
<subConditions />
</condition>
</conditions>
<actions>
<action>
<type inverted="false" value="ChangeAnimation" />
<parameters>
<parameter>Player</parameter>
<parameter>=</parameter>
<parameter>0</parameter>
</parameters>
<subActions />
</action>
</actions>
<events />
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Standard</type>
<conditions>
<condition>
<type inverted="false" value="PlatformAutomatism::IsMoving" />
<parameters>
<parameter>Player</parameter>
<parameter>PlatformerObject</parameter>
</parameters>
<subConditions />
</condition>
</conditions>
<actions>
<action>
<type inverted="false" value="ChangeAnimation" />
<parameters>
<parameter>Player</parameter>
<parameter>=</parameter>
<parameter>2</parameter>
</parameters>
<subActions />
</action>
</actions>
<events />
</event>
</events>
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Standard</type>
<conditions>
<condition>
<type inverted="false" value="KeyPressed" />
<parameters>
<parameter></parameter>
<parameter>Left</parameter>
</parameters>
<subConditions />
</condition>
</conditions>
<actions>
<action>
<type inverted="false" value="FlipX" />
<parameters>
<parameter>Player</parameter>
<parameter>yes</parameter>
</parameters>
<subActions />
</action>
</actions>
<events>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Standard</type>
<conditions>
<condition>
<type inverted="false" value="BuiltinCommonInstructions::Once" />
<parameters />
<subConditions />
</condition>
</conditions>
<actions>
<action>
<type inverted="false" value="ResetTimer" />
<parameters>
<parameter></parameter>
<parameter>&quot;movementTime&quot;</parameter>
</parameters>
<subActions />
</action>
</actions>
<events />
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Comment</type>
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
<comment>We use a timer to know the time elasped since the beginning of the movement. Then, we use this time to determine the speed of the player (and update the animation speed scale to accelerate the animation)</comment>
<comment2>On utilise un chronomètre pour connaître le temps écoulé depuis le début du mouvement du personnage. Ensuite, on utilise ce temps pour déterminer la vitesse du personnage (et mettre à jour l&apos;échelle de vitesse de l&apos;animation du personnage).</comment2>
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Standard</type>
<conditions />
<actions>
<action>
<type inverted="false" value="PlatformAutomatism::MaxSpeed" />
<parameters>
<parameter>Player</parameter>
<parameter>PlatformerObject</parameter>
<parameter>=</parameter>
<parameter>800*(1-exp(-0.5*TimerElapsedTime(&quot;movementTime&quot;)))</parameter>
</parameters>
<subActions />
</action>
<action>
<type inverted="false" value="ChangeAnimationSpeedScale" />
<parameters>
<parameter>Player</parameter>
<parameter>=</parameter>
<parameter>(800*(1-exp(-0.5*TimerElapsedTime(&quot;movementTime&quot;))))/400</parameter>
</parameters>
<subActions />
</action>
</actions>
<events />
</event>
</events>
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Standard</type>
<conditions>
<condition>
<type inverted="false" value="KeyPressed" />
<parameters>
<parameter></parameter>
<parameter>Right</parameter>
</parameters>
<subConditions />
</condition>
</conditions>
<actions>
<action>
<type inverted="false" value="FlipX" />
<parameters>
<parameter>Player</parameter>
<parameter>no</parameter>
</parameters>
<subActions />
</action>
</actions>
<events>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Standard</type>
<conditions>
<condition>
<type inverted="false" value="BuiltinCommonInstructions::Once" />
<parameters />
<subConditions />
</condition>
</conditions>
<actions>
<action>
<type inverted="false" value="ResetTimer" />
<parameters>
<parameter></parameter>
<parameter>&quot;movementTime&quot;</parameter>
</parameters>
<subActions />
</action>
</actions>
<events />
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Standard</type>
<conditions />
<actions>
<action>
<type inverted="false" value="PlatformAutomatism::MaxSpeed" />
<parameters>
<parameter>Player</parameter>
<parameter>PlatformerObject</parameter>
<parameter>=</parameter>
<parameter>800*(1-exp(-0.5*TimerElapsedTime(&quot;movementTime&quot;)))</parameter>
</parameters>
<subActions />
</action>
<action>
<type inverted="false" value="ChangeAnimationSpeedScale" />
<parameters>
<parameter>Player</parameter>
<parameter>=</parameter>
<parameter>(800*(1-exp(-0.5*TimerElapsedTime(&quot;movementTime&quot;))))/400</parameter>
</parameters>
<subActions />
</action>
</actions>
<events />
</event>
</events>
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Comment</type>
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
<comment>Make sure the camera follows the player.</comment>
<comment2>On s&apos;assure que la caméra suit le joueur.</comment2>
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Standard</type>
<conditions />
<actions>
<action>
<type inverted="false" value="CameraX" />
<parameters>
<parameter></parameter>
<parameter>=</parameter>
<parameter>Player.X()</parameter>
<parameter></parameter>
<parameter></parameter>
</parameters>
<subActions />
</action>
<action>
<type inverted="false" value="TextObject::String" />
<parameters>
<parameter>AnimationScaleText</parameter>
<parameter>=</parameter>
<parameter>ToString(Player.AnimationSpeedScale())</parameter>
</parameters>
<subActions />
</action>
</actions>
<events />
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Comment</type>
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
<comment>Management of the moving platform:</comment>
<comment2>Gestion de la plateforme bougeante:</comment2>
</event>
<event disabled="false" folded="false">
<type>BuiltinCommonInstructions::Standard</type>
<conditions>
<condition>
<type inverted="false" value="DepartScene" />
<parameters>
<parameter></parameter>
</parameters>
<subConditions />
</condition>
</conditions>
<actions>
<action>
<type inverted="false" value="Cache" />
<parameters>
<parameter>GoLeft</parameter>
</parameters>
<subActions />
</action>
<action>
<type inverted="false" value="Cache" />
<parameters>
<parameter>GoRight</parameter>
</parameters>
<subActions />
</action>
</actions>
<events />
</event>
</events>
<layers>
<layer name="" visibility="true">
<cameras>
<camera defaultSize="true" defaultViewport="true" height="0.000000" viewportBottom="1.000000" viewportLeft="0.000000" viewportRight="1.000000" viewportTop="0.000000" width="0.000000" />
</cameras>
</layer>
<layer name="Nouveau calque" visibility="true">
<cameras>
<camera defaultSize="true" defaultViewport="true" height="0.000000" viewportBottom="1.000000" viewportLeft="0.000000" viewportRight="1.000000" viewportTop="0.000000" width="0.000000" />
</cameras>
</layer>
</layers>
<automatismsSharedData>
<automatismSharedData name="Platform" type="PlatformAutomatism::PlatformAutomatism" />
<automatismSharedData name="PlatformerObject" type="PlatformAutomatism::PlatformerObjectAutomatism" />
</automatismsSharedData>
</layout>
</layouts>
<externalEvents />
<externalLayouts />
<externalSourceFiles />
</project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Some files were not shown because too many files have changed in this diff Show More