Sprite: Difference between revisions
Content deleted Content added
Piranhaplant (talk | contribs) |
Piranhaplant (talk | contribs) No edit summary |
||
Line 83:
|}
The sprite graphics are located at [[$84:8000]] and each 16x16 tile is 0x80 bytes long, so the address of the graphics for a given tile number can be calculated as "0x20000 + TileNumber * 0x80".
==== Tile properties ====
Line 100:
== Sprite types ==
{| class="wikitable col3_center col4_center"▼
▲{| class="wikitable"
|-
! Type !! Description !! Solid to<br />players !! Solid to<br />monsters
|-
| 0x0000 || None. Sprites set to this type will have no collision. || ||
|-
| 0x0001 || Victim || || ✓
|-
| 0x0002 || Monster that does no damage || || ✓
| 0x0003 || Monster▼
| 0x0004 || [[Ant]] that isn't holding an item pickup▼
|-
▲| 0x0003 || Monster || ✓ || ✓
| 0x0005 || Zeke▼
|-
▲| 0x0004 || [[Ant]] that isn't holding an item pickup || ✓ || ✓
| 0x0006 || Julie▼
|-
▲| 0x0005 || Zeke || || ✓
| 0x0007 || Wall breaking from player punching it as a monster▼
|-
▲| 0x0006 || Julie || || ✓
| 0x0008 || Unused type that damages [[evil doll axe]]s▼
| 0x0009 || Monster projectiles▼
| 0x000A || [[Giant baby]] flattening the player▼
| 0x000B || Bubble shot by [[martian]]▼
|-
▲| 0x0007 || Wall breaking from player punching it as a monster || ||
| 0x000C || [[Squirt gun]] [[item pickup]]▼
|-
▲| 0x0008 || Unused type that damages [[evil doll axe]]s || ||
| 0x000D || [[Fire extinguisher]] item pickup▼
|-
▲| 0x0009 || Monster projectiles || ✓ || ✓
| 0x000E || [[Martian bubble gun]] item pickup▼
|-
▲| 0x000A || [[Giant baby]] flattening the player || ✓ || ✓
| 0x000F || [[Weed-eater]] item pickup▼
|-
▲| 0x000B || Bubble shot by [[martian]] || ✓ || ✓
| 0x0010 || [[Ancient artifact]] item pickup▼
|-
|
|-
|
|-
|
|-
|
|-
|
|-
|
|-
|
|-
|
|-
|
|-
|-
|-
| 0x0017 || [[Silverware]] item pickup || ||
|-
| 0x0018 || [[Football]] item pickup || ||
|-
| 0x0019 || [[Flamethrower]] item pickup || ||
|- class="breakrow"
| 0x0021 || [[Key]] item pickup || ||
|-
|-
|-
|-
|-
|
|-
|
|-
|
|-
|
|-
|
|-
|
|-
|
|-
|
|-
|
|-
|
|-
|
|-
|
|-
| 0x0032 || Unused item pickup type || ||
|-
| 0x0033 || Unused || || ▼
|-
|
|-
| 0x0035 || [[Football player]] || ✓ || ✓▼
▲| 0x0031 || Unused item pickup type
|-
|
|-
| 0x0037 || Exit door || || ✓▼
▲| 0x0033 || Unused
▲| 0x0035 || [[Football player]]
|-
| 0x0038 || [[Decoys]]/Player who is invincible after dying || ✓ || ✓▼
▲| 0x0037 || Exit door
▲| 0x0038 || [[Decoys]]/Player who is invincible after dying
|- class="breakrow"
| 0x0040 || Victim insta-killer used by [[Debug.asm]] || ||
|- class="breakrow"
| 0x005C || [[Squirt gun]] shot from Zeke || || ✓
|-
| 0x005D || [[Fire extinguisher]] shot from Zeke || || ✓
|-
| 0x005E || [[Martian bubble gun]] shot from Zeke || || ✓
|-
| 0x005F || [[Weed-eater]] shot from Zeke || || ✓
|-
| 0x0060 || [[Ancient artifact]] shot from Zeke/invincible after dying damage from Zeke || || ✓
|-
| 0x0061 || [[Bazooka]] shot from Zeke || || ✓
|-
| 0x0062 || [[Soda pop cans]]/[[Flamethrower]] shot from Zeke || || ✓
|-
| 0x0063 || [[Tomatoes]] shot from Zeke || || ✓
|-
| 0x0064 || [[Ice pops]]/[[Bananas]] shot from Zeke || || ✓
|-
| 0x0065 || Unused, but damages [[fire]] || || ✓
|-
| 0x0066 || [[Plate]] shot from Zeke || || ✓
|-
| 0x0067 || [[Silverware]] shot from Zeke || || ✓
|-
| 0x0068 || [[Football]] shot from Zeke || || ✓
|-
| 0x0069 || Pop-up wall || || ✓
|-
| 0x006A || Unused weapon shot type || || ✓
|-
| 0x006B || Unused weapon shot type || || ✓
|-
| 0x006C || Unused weapon shot type || || ✓
|-
| 0x006D || Unused weapon shot type || || ✓
|-
| 0x006E || Unused weapon shot type || || ✓
|-
| 0x006F || [[Pandora's box]] shot from Zeke || || ✓
|-
| 0x0070 || [[Monster potion]] punch from Zeke || || ✓
|- class="breakrow"
| 0x00FF ||
|}
Line 279 ⟶ 277:
=== Solid sprites ===
Certain sprite types are considered solid. That is, players
Solid sprites are implemented in a different way from normal sprite collision. An entity must manually call [[$80:BFC8]] to check if a given position is
The area for solid sprites is slightly smaller than for regular collision. A position is considered touching a solid sprite if it is within 6 pixels of the right or bottom, or within 5 pixels of the left or top. The area is smaller so that sprites will trigger regular collision before stopping due to running into a solid sprite.
|