.. _get-started-here: Get Started Here ================ .. image:: images/treasure-map.svg :width: 40% :class: right-image Installation ------------ Arcade can be installed like any other Python Package. Arcade needs support for OpenGL 3.3+. It does not run on Raspberry Pi or Wayland. If on Linux, sound support needs at least GLIB 2.29+. For detailed instructions see :ref:`installation-instructions`. Starting Tutorials ------------------ If you are already familiar with basic Python programming, follow the :ref:`platformer_tutorial` or `Real Python article `_. If you are just learning how to program, see the `Learn Arcade book `_. Arcade Skill Tree ----------------- .. image:: images/tree.svg :width: 40% :class: right-image * Basic Drawing Commands - See `How to Draw with Your Computer `_, :ref:`drawing_primitives` * ShapeElementLists - Batch together thousands of drawing commands into one using a `ShapeElementList `_. See examples in :ref:`shape-element-lists`. * Sprites - Almost everything in Arcade is done with sprites. * `Basic Sprites and Collisions `_ * `Individually place sprites `_ * `Place sprites with a loop `_ * `Place sprites with a list `_ * Moving player sprites * Mouse - :ref:`sprite_collect_coins` * Keyboard - :ref:`sprite_move_keyboard` * Keyboard, slightly more complex but handles multiple keypresses better: :ref:`sprite_move_keyboard_better` * Keyboard with acceleration, de-acceleration: :ref:`sprite_move_keyboard_accel` * Keyboard, rotate and move forward/back like a space ship: :ref:`sprite_move_angle` * Game Controller - :ref:`sprite_move_joystick` * Game controller buttons - *Supported, but documentation needed.* * Sprite collision detection * Basic detection - `Learn arcade book on collisions `_, :ref:`sprite_collect_coins` * Understanding collision detection and spatial hashing * Sprite Hit boxes * Changing - *Supported, but documentation needed.* * Drawing - *Supported, but documentation needed.* * Avoid placing items on walls - :ref:`sprite_no_coins_on_walls` * Sprite drag-and-drop - *Supported, but documentation needed.* * Drawing sprites in layers * Sprite animation * Change texture on sprite when hit - :ref:`sprite_change_coins` * Moving non-player sprites * Bouncing - :ref:`sprite_bouncing_coins` * Moving towards player - :ref:`sprite_follow_simple` * Moving towards player, but with a delay - :ref:`sprite_follow_simple_2` * Space-invaders style - :ref:`slime_invaders` * Can a sprite see the player? - :ref:`line_of_sight` * A-star pathfinding - :ref:`astar_pathfinding` * Shooting * Player shoots straight up - :ref:`sprite_bullets` * Enemy shoots every *x* frames - :ref:`sprite_bullets_periodic` * Enemy randomly shoots *x* frames - :ref:`sprite_bullets_random` * Player aims - :ref:`sprite_bullets_aimed` * Enemy aims - :ref:`sprite_bullets_enemy_aims` * Multi-hit - *Supported, but documentation needed.* * Physics Engines * SimplePhysicsEngine - Platformer tutorial :ref:`platformer_part_three`, Learn Arcade Book `Simple Physics Engine `_, Example :ref:`sprite_move_walls` * PlatformerPhysicsEngine - From the platformer tutorial: :ref:`platformer_part_four`, * :ref:`sprite_moving_platforms` * Ladders - Platformer tutorial :ref:`platformer_part_ten` * Using the physics engine on multiple sprites - *Supported, but documentation needed.* * Pymunk top-down - *Supported, needs docs* * Pymunk physics engine for a platformer - :ref:`pymunk_platformer_tutorial` * Pymunk shooting - *Support under development.* * View management * Minimal example of using views - :ref:`view_screens_minimal` * Using views to add a pause screen - :ref:`view_pause_screen` * Using views to add an instruction and game over screen - :ref:`view_instructions_and_game_over` * Window management * Scrolling - :ref:`sprite_move_scrolling` * Add full screen support - :ref:`full_screen_example` * Allow user to resize the window - :ref:`resizable_window` * Map Creation * Programmatic creation * `Individually place sprites `_ * `Place sprites with a loop `_ * `Place sprites with a list `_ * Procedural Generation * :ref:`depth_first_maze` * :ref:`recursive_maze` * :ref:`procedural_caves_bsp` * :ref:`procedural_caves_cellular` * TMX map creation - Platformer tutorial: :ref:`platformer_part_eight` * Layers - Platformer tutorial: :ref:`platformer_part_eight` * Multiple Levels - :ref:`sprite_tiled_map_with_levels` * Object Layer - *Supported, but documentation needed.* * Hit-boxes - *Supported, but documentation needed.* * Animated Tiles - *Supported, but documentation needed.* * Sound - `Learn Arcade book sound chapter `_ * :ref:`background_music` * Spatial sound :ref:`sound_demo` * Particles - :ref:`particle_systems` * GUI * Buttons * Text boxes * OpenGL Frame buffers * Lights - :ref:`light_demo` * Wrap-around - *Supported, but documentation needed.* * Mini-map - :ref:`mini_map_defender` * Bloom/glow effect - :ref:`bloom_defender` * Writing your own shader - *Supported, but documentation needed.* * :ref:`Logging`