Menu

Tree [f9a565] master /
 History

HTTPS access


File Date Author Commit
 assets 2021-10-22 kwikrick kwikrick [bab669] reorganised files and added cxfreezee build for...
 levels 2021-10-22 kwikrick kwikrick [bab669] reorganised files and added cxfreezee build for...
 music 2021-10-22 kwikrick kwikrick [bab669] reorganised files and added cxfreezee build for...
 sounds 2021-04-24 kwikrick kwikrick [2dfc64] version check
 LICENCE.txt 2021-04-24 kwikrick kwikrick [8bf580] licence and credits
 README.txt 2021-04-24 kwikrick kwikrick [63500b] added cover art generating level; version.txt
 VERSION.txt 2021-04-24 kwikrick kwikrick [63500b] added cover art generating level; version.txt
 base.py 2021-10-22 kwikrick kwikrick [bab669] reorganised files and added cxfreezee build for...
 build.bat 2021-10-22 Rick van der Meiden Rick van der Meiden [f9a565] update build.sh, add build.bat
 build.sh 2021-10-22 Rick van der Meiden Rick van der Meiden [f9a565] update build.sh, add build.bat
 cover-script.py 2021-04-24 kwikrick kwikrick [63500b] added cover art generating level; version.txt
 cover.json 2021-04-24 kwikrick kwikrick [63500b] added cover art generating level; version.txt
 credits.py 2021-10-22 kwikrick kwikrick [bab669] reorganised files and added cxfreezee build for...
 crossedpaths.py 2021-04-24 kwikrick kwikrick [2dfc64] version check
 editor.py 2021-10-22 kwikrick kwikrick [bab669] reorganised files and added cxfreezee build for...
 game.py 2021-10-22 kwikrick kwikrick [bab669] reorganised files and added cxfreezee build for...
 help.py 2021-04-23 kwikrick kwikrick [8810bc] bugfixes/improvements
 jukebox.py 2021-10-22 kwikrick kwikrick [bab669] reorganised files and added cxfreezee build for...
 menu.py 2021-10-22 kwikrick kwikrick [bab669] reorganised files and added cxfreezee build for...
 reorder.py 2021-03-27 kwikrick kwikrick [5b1904] fix typing mistake
 script.py 2021-04-23 kwikrick kwikrick [3b6e91] added skip scripts
 todo.txt 2021-10-22 kwikrick kwikrick [bab669] reorganised files and added cxfreezee build for...
 yayazaz.geany 2021-10-22 kwikrick kwikrick [bab669] reorganised files and added cxfreezee build for...

Read Me

Crossed Paths
-------------

Entry for the November 2020 Pygame Jam 
(Theme: Retro Paralell Worlds)
by Rick van der Meiden

Copyright Rick van der Meiden and others (see LICENCE).

Running:
--------
Requirements:

- Python 3.x (tested on Python 3.8.5)
     
    See https://python.org 
    Tested on Linux with Python 3.6.9, Windows 10 with Python 3.9.

- PyGame 2.x (tested on PyGame 2.0.1)

    See https://pygame.org
    Tested on Linux with Python 3.6.9, Windows 10 with Python 3.9.


To run, execute crossedpath.py using the python(3) interpretor. 

From command line:

  python crossedpaths.py

or:

  python3 crossedpaths.py

(depending on your OS)

Or run crossedpaths.py from your favourite file explorer.


Playing
-------
Each level is a puzzle. The goal is to let all player characters 
escape, by walking of the edge of the screen. 

Use keyboard or joystick to move the characters.
Should be pretty intuitive. Press F1 for help on keys.
 
Note that you can push boulders and also pull boulders. To
pull, hold primary action key (Shift / joystick button 1) 
while close to a boulder.

The Esc key always returns to the main menu. 
Press F1 to see the key/button bindings. 

Editor
------
Use the mouse to move the cursor (no keyboard-only or joustick controls yet). 

Levels consist of layers. These layers are drawn over each other, in the given order. 
In each layer, tiles are placed. Tiles are used for all objects: floors, walls, characters, etc. 
Different layers have different uses in the game:

Layers:
1 FLOOR1      used for floor tiles, no collision with characters
2 FLOOR2      used for floor tiles, no collision with characters
3 WALLS1      use for obstacles, characters will bump into these tiles
4 WALLS2      use for obstacles, characters will bump into these tiles
5 OBJECTS     generally used for players and other charaters, movable objects, doors.
6 CEIL1       drawn above characters, no collisions, used for ceiligns and high walls 
7 CEIL2       drawn above characters, no collisions, used for ceilings and high walls

Using keys 1-7, the active layer can be selected. Press M to toggle between 
showing only the active layer (mono-layer) or all layers on top of each other. 

There is a single texture file for all the tile patterns (tiles.png). 
The texture is the same size as the screen (320x180 pixels). 
Holding TAB shows this texture and allows you to select a tile pattern. After releasing 
TAB, the layers are shown again and the selected tile can be placed in the active the layers
by pressing mouse button 1. Tiles can be removed by pressig mouse button 2. Tiles 
ar placed in a 16x6 grid, but tiles that are placed on the layer can also be moved precisely 
using the mouse button 3.

You can change the level to edit by pressing PGUP, PGDOWN. You can preview (play) the 
level pressing F5. Don't forget to save the changes you made, by pressing S. Reload the level, 
undoing all changes, by pressing L. The texture can also be reloaded (T), which is useful when 
you have made changes the texture using an external program (you cannot edit the texture in the editor).

Tags:

Buttons can be used to trigger changes in the level. Any tile can be shown or hidden when a trigger
is activated. This is also used for opening en closing doors. Note that only the button tiles can be
used to trigger  effects. All other tiles can respond to the trigger. 

A tag number can be assigned to a tile (button and other tiles), press KEYPAD + or KEYPAD -. 
The tag is a a number from -9 to +9; The default is 0 and means no effect is triggered by
or on this tile. When the tag number is negative, a number of RED dots is shown on the tile. 
When the tag number is positive, a nunber of green dots is shown on the tile. 

When a button with a given tag number is pressed, an effect is triggered on all tiles with the 
same tag number, or exactly the negative tag number. So, a button with tag=1 affects all tiles
with tag=1 or tag=-1. A button with tag=-2 affects all tiles
with tag=-2 or tag=2. Etc. 

The effects are as follows:

BUTTON TAG      |       TILE TAG       |    EFFECT
--------------------------------------------------------------------------------------------------
POSITIVE                POSITIVE            show tile when button is inactive; hide tile when button is active
POSITIVE                NEGATIVE            hide tile when button is inactive; show tile when button is active
NEGATIVE                POSITIVE            hide tile when button is inactive; show tile when button is active
NEGATIVE                NEGATIVE            show tile when button is inactive; hide tile when button is active

Note that when a hidden sprite is to appear when its tag is triggered, but a player is in the way, the trigger will 
be delayed until the player is out of the way. 

Crystals can also be used as triggers. When the crystal that has a tag number is destroyed, the effect is the
same as when a button with that tag was pressed (and never released). 

Players can be killed by triggers, by giving them a tag. Triggering that tag will kill the player.

For the Xuxu character: tags are used to control it's behavior

XUXU TAG    |    BEHAVIOR
-------------------------
0                do nothing
1                go to the midpoint of all crystals with tag 1
2                move towards player
3+               do nothing


Keys/buttons:

Place tile under cursor         MOUSE LEFT
Erase tile under cursor         MOUSE RIGHT   
Show tile patterns              TAB (hold)
Select tile pattern             TAB + MOUSE LEFT
Move tile                       MOUSE MIDDLE (hold)

Next level                      PAGE UP
Previous level                  PAGE DOWN
Reload level                    R
Reload tileset                  T
Save level                      S
Clear level                     C

Select Layer                    1 - 7
Mono-layer mode                 M

Increase tagnumber              Keypad +
Increase tagnumber              Keypad -                

Play level                      F5

MongoDB Logo MongoDB