I have been looking for that Artist for over a decade!
A small tip for code optimization
This:
+ Code SnippetIf GetSpriteFirstContact(Player)
Repeat
Headed = PhysicsRayCast( PX#,PY#,PX#,PY#-17)
Head = GetRayCastSpriteID()
ThisHit = GetSpriteContactSpriteID2()
If ThisHit > 0 and Rocks.Find(ThisHit) > -1 and Head=ThisHit
Rock = Rocks.Find(ThisHit)
If Rock > -1 and Rocks[Rock].Coins > 0 And Rocks[Rock].LastCoin# + 0.20 < Timer()
SpawnCoin(ThisHit)
Rocks[Rock].Coins = Rocks[Rock].Coins -1
Rocks[Rock].LastCoin# = Timer()
playsound(sound_2)
inc coins,1
EndIf
EndIf
Until GetSpriteNextContact() = 0
EndIf
You call Rocks.Find(ThisHit) in the if statement and then again after by setting the Rock variable, call it once before the IF and use the variable in the IF, this might seem a bit OCD to some saying "but modern computers bla bla bla" but in a massive project if you did this kind of thing on every if, loop and function you will cripple the FPS and have your users flaming you on Steam ...
Rule of thumb, if an array lookup is going to be used more than once in a section of code put it in a variable, var access is far far less expensive than array lookups, also self auditing is very very important, I don't believe in "if it works its good" that is a bad attitude and one that will lead to failure, write the function, get the code working and then study the living daylights out of it to find ways to improve and speed it up.
Good programmers write code that works, great programmers write code that works fast
You seem like a smart determined person and a fast learner, I am sure you will get there, if you find that artist, give him my number! lol
i was hesitant to use box2d contacts because of said experience
Your intuition is correct there is a very well documented fault in Box2D
"the ghost vertices issue" that occurs when a box shape slides over another box shape, think a square player sprite sliding over a tilemap with individual collision shapes for the tiles, sometimes the edges can catch on "ghost vertices" and register a collision