This probably doesn't have anything to do with your problem, but search your program for the word collision. Any time you see a collision check that includes player1 and player2 (or anything higher), smack yourself in the face with a rubber chicken. For example, you can't do this:
if !collision(player1,player6) then goto _skipcheck2
You can't check for a collision between player1 and player6 that way because they are the same sprite. You'll have to check their positions instead. I better not mess with the code until you rework it.
I was playing around with this for the last couple of days.
I changed a few things to see what works and what doesn't to eliminate my collision statements with virtual sprites.
if player1x <= player8x + 8 && player1x + 8 >= player8x && player8y + player8height >= player1y && player8y <= player1y + player1height then goto _CART_HIT
if !collision(player1,player8) then goto _SKIP_CART_HIT
if player1x <= player8x + 8 && player1x + 8 >= player8x && player8y + player8height >= player1y && player8y <= player1y + player1height then goto _CART_HIT else goto _SKIP_CART_HIT
and I seemed to get the same effect, where the collision box is created around the virtual sprite and if no collision then the code skips to the next section. The only "else goto _SKIP_CART_HIT" line I have is at the last check so it runs through the code for all cart/car interactions. I haven't really seen anything crazy come from this as a result of the change.
Do you think this is a reasonable fix?
The only other thing I seem to be having an issue with collision with NUSIZ copies of virtual sprites and player0 or player1. I was able to get it to work earlier when I was playing around with collision statements yesterday but I cannot remember what I was doing to get it to work (and of course I still had my screwy collision statements in place then).
If this works I will work to remove my other screwy collision statements tomorrow.
Edited by KevKelley, Wed Mar 13, 2019 3:29 PM.