Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Making Sprites 32/64
#1
Originally posted by Misunderstood

This has been updated to work with the new MSE

Ok Find the for next loop which calls bltPlayer
Code:
' Blit out players
        For i = 1 To MAX_PLAYERS
              If IsPlaying(i) And GetPlayerMap(i) = GetPlayerMap(MyIndex) Then
                  Call BltPlayer(i)
              End If
        Next i

Now copy it, we need to make another sub to blt the top of the player, this way it will be above other players bottoms.
We need to make a new loop instead of adding just another sub in the first one, because otherwise if there was a player ontop of your player, which was bltted after you in the loop, it will show ontop of your head, and thats not cool.

So make it look like this:

Code:
' Blit out players top
        For i = 1 To MAX_PLAYERS
              If IsPlaying(i) And GetPlayerMap(i) = GetPlayerMap(MyIndex) Then
                  Call BltPlayerTop(i)
              End If
        Next i

(it goes right after the other loop if you hadnt figured that out)

Now we need to make the sub.

Copy the bltPlayer Sub
Paste the bltPlayer Sub right below there
Rename it bltPlayerTop

Find this if statement in the BltPlayerTop Sub, its something like:

Code:
If y < 0 then
    y = 0
    With Rec
        .top = .top + (Y * -1)
    End With
end if

Change it to this:

Code:
y = y - 32
    If y < 0 And y > -32 Then
        With Rec
              .top = .top - y
              y = 0
        End With    
    End If

This blts it 1 tile higher then normal.

Now go to the BltPlayer sub
Find:

Code:
.top = GetPlayerSprite(Index) * PIC_Y


Make it:
Code:
.Top = GetPlayerSprite(Index) * PIC_Y + PIC_Y


This takes one block down from the top of the sprite

Oh yea, in both of the subs, add a * 2 after the getplayersprite(index) in the rec.top line, this make it so each block of 2 is thought of as 1 sprite.

you dont really NEED it though.

Oh, and for the names...
Go to the BltPlayerName sub and find the texty = whatever and change it to:
Code:
TextY = GetPlayerY(Index) * PIC_Y + Player(Index).YOffset + 28 '(or-4 + pic_y)


Or if you want the name to show up above the player(the one there ^ makes it below) make it this:

Code:
TextY = GetPlayerY(Index) * PIC_Y + Player(Index).YOffset - 50 '(or-4 -  pic_y - pic_y/2)

Now you will probably have to change other things, like for the npcs if you want them like that too. Or whatever.
If I missed something in here let me know.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)