Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- RAM map:
- 00xx: Zeropage
- 01xx: Stack
- 02xx: OAM
- 03xx: Variables
- 04xx: Actors
- 05xx: Map
- 06xx: ???
- 07xx: ???
- Selection between 4 second or 8 second long microgames. Or boss ones?
- 16x15 non-scrolling metatile map, made of player-defined metatiles.
- Player-defined metatiles have an appearance, color, and flags (including solidity)
- Microgame has an init script (run once) and run script (run every frame).
- 16 actor slots for moving game objects
- Actors contain:
- Type
- Direction
- X Position, Y Position
- X Speed, Y Speed
- Four generic 8-bit values, default to zero
- Actor type selects which scripts (init, run), appearance and size to use.
- Actors are placed into predefined locations at the start of the microgame
- but more can be spawned in with actions.
- ---Programming conditions---
- Control whether a block of actions are executed or not.
- Can be nested and placed inside action blocks, and combined (AND, OR) or negated (NOT).
- Should there be an else block?
- ---
- -Controller-
- [button] just pressed
- [button] just released
- [button] held
- -Misc/time-
- Random chance (generate random 8-bit number, must be >= [value])
- Every [value] frames (probably limited to a power of 2)
- Time elapsed is between [value] and [value]
- At end of microgame
- -Math comparisons-
- [variable] is < [value]
- [variable] is > [value]
- [variable] is <= [value]
- [variable] is >= [value]
- [variable] is == [value]
- [variable] is != [value]
- -Finding another object-
- Touching object of type [type]
- There is an object of type [type]
- (These two leave the index of the other object in a variable, referenced by "other object" in action list)
- -Win/Loss-
- Game has been won
- Game has been lost
- Game is currently won
- Game is currently lost
- -Difficulty-
- Is easy
- Is medium
- Is hard
- -Map-
- Actor is in section of the screen [x1][y1] to [x2][y2]
- Actor is touching a solid metatile
- Actor is touching metatile of type [type]
- Actor is touching metatile with flag [flag]
- (Map conditions will store the X and Y of the affected metatile somewhere)
- Map tile at [x] [y] is [type]
- Map tile at [x] [y] has flag [flag]
- ---Programming actions---
- Commands that run either every frame or in response to a condition.
- ---
- -Miscellaneous/Meta-
- Stop executing script
- Play premade sound effect [number]
- Call assembly language routine
- Win game
- Lose game
- -Creation/Destruction-
- Create object of type [type] at [x], [y]
- Shoot out object of type [type] in current direction at speed [value]
- (Puts the new object index in the "other object" index variable)
- Destroy this object
- Destroy all [type] objects
- -Movement-
- Movement types, runs one frame of a given type of movement:
- Ball movement (X += cos(Direction) * Speed, Y += sin(Direction) * Speed)
- Vector movement (X += X Speed, Y += Y Speed)
- 8-way movement (Player-controlled, can have directions restricted)
- Platformer (Player-controlled)
- Stop movement (Zero out speed values)
- Reverse (Negate speed values)
- Go to [x],[y]
- Jump to position of other object
- Swap positions with other object
- -Math-
- Set [variable] to [value] + [value]
- Set [variable] to [value] - [value]
- Set [variable] to [value] * [value]
- Set [variable] to [value] / [value]
- Set [variable] to [value] << [constant]
- Set [variable] to [value] >> [constant]
- Set [variable] to [value] min [value]
- Set [variable] to [value] max [value]
- Set [variable] to random number [min]-[max]
- (Variables can be microgame global variables or per-object state ones)
- -Map-
- Set metatile at [x],[y] to [type]
- -Target for actions-
- Target this object again
- Target other object (from the condition)
- (This action allows you to do actions as another object temporarily)
- ----------------------------------------------------------
- Catch falling objects:
- Initial map state:
- Player placed at center of bottom row, nothing else
- Game:
- Every 32 frames:
- Set [Temp] to random [4] to [12]
- Set [Temp] to [Temp] << [4]
- Create catchable at [Temp], [16]
- At end of microgame:
- Win game
- Player:
- Left/Right movement
- Catchable:
- Set [Y position] to [Y Position] + [4]
- If touching [Player]:
- Destroy
- If touching bottom of screen:
- Lose game
- Destroy
- Get all of an object:
- Initial map state:
- Player placed somewhere
- A few of a collectible placed wherever
- Collectible init:
- Set [Temp] to random [32] to [224]
- Set [X position] to [Temp]
- Set [Temp] to random [32] to [200]
- Set [Y position] to [Temp]
- Collectible:
- If touching [player]:
- Destroy
- If there is not an object of type [Collectible]:
- Win game
- Player:
- 8-way movement
- Avoid stuff:
- Initial map state:
- Player placed somewhere
- Some enemy objects placed wherever
- Game:
- At end of microgame:
- Win game
- Enemy init:
- Set [Direction] to random [0] to [31]
- Enemy:
- Ball movement
- Every 16 frames:
- Random chance [128] in 255:
- Set [Direction] to random [0] to [31]
- Player:
- 8-way movement
- If touching [enemy]:
- Lose
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement