I am trying to make a game similar to flipull http://en.wikipedia.org/wiki/Plotting_%28arcade_game%29 using mmf2 but i am having problems with my match testing. the problem comes when the two colliding shapes do not match.
The above zip file contains the mfa and my test level data.
I haven't commented the code yet but will be doing if I can get it working as i plan to release an open source version of the engine for people to use.
Here is a brief breakdown of the engine and the problem.
I have two objects Puzzle Block (PB) and Level Block (LB)
PB has to movement States - 1. Static and 2.Pinball Movement - used in non matching scenario
PB and LB both have the same alt vals of Movement Value and Anim Dir (they were cloned from each other)
PB is controlled by the player and LB is static.
PB Movement Value has 5 states:
0 = Stationary and follows player object
1 = moving horizontally
2 = moving vertically
3 = Collided with object and performing test
4 = no match
PB Anim Dir (PBAD) is set using a random value, LB Anim Dir (LBAD) is set using the level data and the Animation Directions of both PB and LB are Always set to the value of Anim Dir.
Start of Frame - PBAD=0
Player Presses Space - PBAD=1
PB collides with background - PBAD=2
PB collides with LB - PBAD=3
Now my match testing comes in to play
PB is overlapping LB and
PBAD = LBAD
Destroy both LB and PB
This appears to work correctly
The following doesn't:
PB is overlapping LB and
PBAD <> LBAD
Change PB movement to movement 2
Start Movement
Change PB Movement Value to 4
What happens is PB starts to move away from the blocks but then if it collides with any objects that have the some Anim Dir value it destorys them and itself.
I tried inserting Movement Value = 3 into the match test with no luck.
Didn't realise i had used any non standard extensions. the extensions in use are string tokenizer, ini and numeric up/down control object. the latter extension is only for the level editor and has no bearing on the problem i am having.