Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 stamping when a picture with transparency goes over
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
Nigrev




PostPosted: Fri Dec 15, 2006 8:04 pm   Post subject: stamping when a picture with transparency goes over

when i run my test program, i have the problem of having sprite stamping when overlapped with another picture. I used external module BSprites.

Here's a link to a screenvid to understand

http://i91.photobucket.com/albums/k294/manimog/spritestamp.swf

So, is the problem my coding for the attacking sprites?

code:

if chars ('a') and paladin.atkdis = false then
        paladin.atkdis := true
    end if
    if paladin.atkdis = true then
        if paladin.attack = 1 then
            if paladin.facing = 4 then
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
                BSprite.Change ("pallya1.bmp", paladin.pic)
            elsif paladin.facing = 3 then
                BSprite.Change ("pallya1-2.bmp", paladin.pic)
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
            elsif paladin.facing = 2 then
                BSprite.Change ("pallya1-3.bmp", paladin.pic)
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
            elsif paladin.facing = 1 then
                BSprite.Change ("pallya1-4.bmp", paladin.pic)
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
            end if
        elsif paladin.attack = 6 then
            if paladin.facing = 4 then
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
                BSprite.Change ("pallya2.bmp", paladin.pic)
            elsif paladin.facing = 3 then
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
                BSprite.Change ("pallya2-2.bmp", paladin.pic)
            elsif paladin.facing = 2 then
                BSprite.Change ("pallya2-3.bmp", paladin.pic)
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
                elsif paladin.facing = 1 then
                BSprite.Change ("pallya2-4.bmp", paladin.pic)
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
                end if
        elsif paladin.attack = 20 then
            paladin.attack := 0
            paladin.atkdis := false
        end if
        paladin.attack += 1
    end if

is it my sprites fault, or is it a Turing fault?
Sponsor
Sponsor
Sponsor
sponsor
Clayton




PostPosted: Fri Dec 15, 2006 8:26 pm   Post subject: (No subject)

Most likely it's because of the way the enemy moves, and that the screen has not updated correctly.
Nigrev




PostPosted: Sat Dec 16, 2006 10:51 am   Post subject: (No subject)

code:

procedure pallymove
    Input.KeyDown (chars)
    if chars (KEY_UP_ARROW) and paladin.disable = false and paladin.up = true then
        if paladin.atkdis = false then
            if paladin.movement <= 10 then
                BSprite.Change ("pally6.bmp", paladin.pic)
            elsif paladin.movement > 10 then
                BSprite.Change ("pally6-2.bmp", paladin.pic)
            end if
            BSprite.Move (paladin.x, paladin.y, paladin.pic)
        elsif paladin.atkdis = true then
            BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
        end if
        paladin.y += paladin.movesp
        paladin.movement += paladin.movesp
        paladin.facing := 1
    elsif chars (KEY_DOWN_ARROW) and paladin.disable = false and paladin.down = true then
        if paladin.atkdis = false then
            if paladin.movement <= 10 then
                BSprite.Change ("pally5.bmp", paladin.pic)
            elsif paladin.movement > 10 then
                BSprite.Change ("pally5-2.bmp", paladin.pic)
            end if
            BSprite.Move (paladin.x, paladin.y, paladin.pic)
        elsif paladin.atkdis = true then
            BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
        end if
        paladin.y -= paladin.movesp
        paladin.movement += paladin.movesp
        paladin.facing := 2
    elsif chars (KEY_RIGHT_ARROW) and paladin.disable = false and paladin.right = true then
        if paladin.atkdis = false then
            if paladin.movement <= 5 then
                BSprite.Change ("pally3-2.bmp", paladin.pic)
            elsif paladin.movement > 5 and paladin.movement < 11 then
                BSprite.Change ("pally7-2.bmp", paladin.pic)
            elsif paladin.movement > 10 and paladin.movement < 16 then
                BSprite.Change ("pally2-2.bmp", paladin.pic)
            elsif paladin.movement > 15 and paladin.movement < 21 then
                BSprite.Change ("pally7-2.bmp", paladin.pic)
            end if
            BSprite.Move (paladin.x, paladin.y, paladin.pic)
        elsif paladin.atkdis = true then
            BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
        end if
        paladin.x += paladin.movesp
        paladin.movement += paladin.movesp
        paladin.facing := 3
    elsif chars (KEY_LEFT_ARROW) and paladin.disable = false and paladin.left = true then
        if paladin.atkdis = false then
            if paladin.movement <= 5 and paladin.attack = 0 then
                BSprite.Change ("pally3.bmp", paladin.pic)
            elsif paladin.movement > 5 and paladin.movement <= 10 then
                BSprite.Change ("pally7.bmp", paladin.pic)
            elsif paladin.movement > 10 and paladin.movement <= 15 then
                BSprite.Change ("pally2.bmp", paladin.pic)
            elsif paladin.movement > 15 and paladin.movement <= 20 then
                BSprite.Change ("pally7.bmp", paladin.pic)
            end if
            BSprite.Move (paladin.x, paladin.y, paladin.pic)
        elsif paladin.atkdis = true then
            BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
        end if
        paladin.x := paladin.x - paladin.movesp
        paladin.movement += paladin.movesp
        paladin.facing := 4
    elsif chars (KEY_LEFT_ARROW) = false and chars (KEY_RIGHT_ARROW) = false and chars (KEY_DOWN_ARROW) = false and chars (KEY_UP_ARROW) = false and paladin.atkdis = false then
        if paladin.facing = 1 then
            BSprite.Change ("pally6.bmp", paladin.pic)
            BSprite.Move (paladin.x, paladin.y, paladin.pic)
        elsif paladin.facing = 2 then
            BSprite.Change ("pally5.bmp", paladin.pic)
            BSprite.Move (paladin.x, paladin.y, paladin.pic)
        elsif paladin.facing = 3 then
            BSprite.Change ("pally1-2.bmp", paladin.pic)
            BSprite.Move (paladin.x, paladin.y, paladin.pic)
        elsif paladin.facing = 4 then
            BSprite.Change ("pally1.bmp", paladin.pic)
            BSprite.Move (paladin.x, paladin.y, paladin.pic)
        end if
    end if
    if paladin.movement >= 20 then
        paladin.movement := 0
    end if
    %ATTACK
    if chars ('a') and paladin.atkdis = false then
        paladin.atkdis := true
    end if
    if paladin.atkdis = true then
        if paladin.attack = 1 then
            if paladin.facing = 4 then
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
                BSprite.Change ("pallya1.bmp", paladin.pic)
            elsif paladin.facing = 3 then
                BSprite.Change ("pallya1-2.bmp", paladin.pic)
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
            elsif paladin.facing = 2 then
                BSprite.Change ("pallya1-3.bmp", paladin.pic)
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
            elsif paladin.facing = 1 then
                BSprite.Change ("pallya1-4.bmp", paladin.pic)
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
            end if
        elsif paladin.attack = 6 then
            if paladin.facing = 4 then
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
                BSprite.Change ("pallya2.bmp", paladin.pic)
            elsif paladin.facing = 3 then
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
                BSprite.Change ("pallya2-2.bmp", paladin.pic)
            elsif paladin.facing = 2 then
                BSprite.Change ("pallya2-3.bmp", paladin.pic)
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
                elsif paladin.facing = 1 then
                BSprite.Change ("pallya2-4.bmp", paladin.pic)
                BSprite.Move (paladin.x - 24, paladin.y - 24, paladin.pic)
                end if
        elsif paladin.attack = 20 then
            paladin.attack := 0
            paladin.atkdis := false
        end if
        paladin.attack += 1
    end if
    %speedboots
     if paladin.x > (sbx - 20) and paladin.x < (sbx + 20) and paladin.y > (sby - 20) and paladin.y < (sby + 20) then
        sbhave := 1
        BSprite.Change ("emptysprite.bmp", speedboots)
        paladin.movement := 0
    end if
    if sbhave = 1 then
        paladin.movesp := 2
    end if
    %defend
    if chars ('d') then
        if paladin.facing = 4 then
            BSprite.Change ("pallyblock4.bmp", paladin.pic)
        elsif paladin.facing = 3 then
            BSprite.Change ("pallyblock3.bmp", paladin.pic)
        elsif paladin.facing = 2 then
            BSprite.Change ("pallyblock1.bmp", paladin.pic)
        end if
        paladin.disable := true
    elsif chars ('d') = false then
        paladin.disable := false
    end if
end pallymove
procedure enemymove1
    if num = 1 and enemy1.disable = false and enemy1.right = true then
        enemy1.x += enemy1.movesp
        BSprite.Move (enemy1.x, enemy1.y, enemy1.pic)
        enemy1.movement += enemy1.movesp
    elsif num = 2 and enemy1.disable = false and enemy1.left = true then
        enemy1.x -= enemy1.movesp
        BSprite.Move (enemy1.x, enemy1.y, enemy1.pic)
        enemy1.movement += enemy1.movesp
    elsif num = 3 and enemy1.disable = false and enemy1.up = true then
        enemy1.y += 1
        BSprite.Move (enemy1.x, enemy1.y, enemy1.pic)
        enemy1.movement += 1
    elsif num = 4 and enemy1.disable = false and enemy1.down = true then
        enemy1.y -= enemy1.movesp
        BSprite.Move (enemy1.x, enemy1.y, enemy1.pic)
        enemy1.movement += enemy1.movesp
    end if
    if enemy1.movement >= 20 then
        enemy1.disable := true
        enemy1.movement := 0
    end if
    if enemy1.movement = 0 then
        randint (num, 1, 4)
    end if
end enemymove1
procedure enemymove2
    if num2 = 1 and enemy2.disable = false then
        if paladin.x > enemy2.x and enemy2.right = true then
            enemy2.x += enemy2.movesp
        elsif paladin.x < enemy2.x and enemy2.left = true then
            enemy2.x -= enemy2.movesp
        elsif paladin.x = enemy2.x then
            num2 := 2
        elsif enemy2.right = false then
            num2 := 2
        elsif enemy2.left = false then
            num2 := 2
        end if
    elsif num2 = 2 and enemy2.disable = false then
        if paladin.y > enemy2.y and enemy2.up = true then
            enemy2.y += enemy2.movesp
        elsif paladin.y < enemy2.y and enemy2.down = true then
            enemy2.y -= enemy2.movesp
        elsif paladin.y = enemy2.y then
            num2 := 1
        elsif enemy2.up = false then
            num2 := 1
        end if
    end if
    if enemy2.right = false then
        num2 := 2
    end if
    if enemy2.left = false then
        num2 := 2
    end if
    if enemy2.up = false then
        num2 := 1
    end if
    if enemy2.down = false then
        num2 := 1
    end if
    if enemy2.movement = 20 then
        enemy2.movement := 0
        randint (num2, 1, 2)
    elsif enemy2.movement < 20 then
        enemy2.movement := 0
    end if
    BSprite.Move (enemy2.x, enemy2.y, enemy2.pic)
    enemy2.movement += enemy2.movesp
end enemymove2

loop   
    enemy1.disable := false
    enemy2.disable := false
    enemymove2
    enemymove1
    pallymove
    %input collision parameters here here
    Time.Delay (10)
View.Update
    end loop


only one view update
Display posts from previous:   
   Index -> Programming, Turing -> Turing Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 3 Posts ]
Jump to:   


Style:  
Search: