Jump to content


Photo

Check Sprite Change


  • Please log in to reply
13 replies to this topic

#1 l1ttledand

l1ttledand

    GMC Member

  • GMC Member
  • 43 posts
  • Version:GM8

Posted 22 December 2011 - 12:56 AM

Is there a simple way to check when an objects sprite_index changes? This is for something like this:
if (sprite_index changes)
 {
 do this
 }

  • 0

#2 stopit540

stopit540

    GMC Member

  • GMC Member
  • 111 posts
  • Version:GM8

Posted 22 December 2011 - 01:04 AM

if sprite_index= "new sprite"
{

}
  • 0

#3 l1ttledand

l1ttledand

    GMC Member

  • GMC Member
  • 43 posts
  • Version:GM8

Posted 22 December 2011 - 01:14 AM

if sprite_index= "new sprite"
{

}


is that the only way to do it?
  • 0

#4 stopit540

stopit540

    GMC Member

  • GMC Member
  • 111 posts
  • Version:GM8

Posted 22 December 2011 - 01:32 AM

well you could set a variable to the sprite or its image index and check it to see if it changes something like this;

Create:

spritecheck=sprite_index

Step:
if sprite_index != spritecheck
{

}

Edited by stopit540, 22 December 2011 - 01:40 AM.

  • 0

#5 l1ttledand

l1ttledand

    GMC Member

  • GMC Member
  • 43 posts
  • Version:GM8

Posted 22 December 2011 - 01:50 AM

well you could set a variable to the sprite or its image index and check it to see if it changes something like this;

Create:

spritecheck=sprite_index

Step:
if sprite_index != spritecheck
{

}


That only worked for one sprite change though.. I need it to work for more than one.

Edit: In Step: I need it so that if the sprite changes to spr_playerwitharmour , it calls alarm[2] with variable go = 1 so that its called ONCE. BUT, I need it so if its changed back to spr_player, it calls alarm[2] with variable go = 1 so that its called ONCE. And so on..

if go = 1{
go = 0
alarm[2] = 270 // sets an alarm to make the sprite change
}

if sprite_index = spr_player // if the spriteindex is spr player
{
go = 1 // Send it to the server
} else // else
if sprite_index = spr_playerwitharmour// if the sprite index is spr_playerwitharmour
{
go = 1 //Send it to the server..
}

The problem I have with the code above is that its constantly setting go = 1 therefore causing the alarm to keep happening instead of just once, therefore causing lagg..

Edited by l1ttledand, 22 December 2011 - 01:59 AM.

  • 0

#6 stopit540

stopit540

    GMC Member

  • GMC Member
  • 111 posts
  • Version:GM8

Posted 22 December 2011 - 01:55 AM

Change the sprite check to the new sprite when it changes
Spoiler



Edit: looking at your revised post you dont need to use "else" like that if the object doesn't fit the if statement it will just move on to the next one

Edited by stopit540, 22 December 2011 - 02:03 AM.

  • 0

#7 l1ttledand

l1ttledand

    GMC Member

  • GMC Member
  • 43 posts
  • Version:GM8

Posted 22 December 2011 - 02:03 AM

Change the sprite check to the new sprite when it changes

Spoiler


Tried that, it didnt work.. I think its cause its making the spritecheck = sprite_index.. making whats in the brackets happen only once

Edit: looking at your revised post you dont need to use "else" like that if the object doesn't fit the if statement it will just move on to the next one

Edit: Yeah i did that just tryin to figure this out.. i just took it out though

Edited by l1ttledand, 22 December 2011 - 02:06 AM.

  • 0

#8 stopit540

stopit540

    GMC Member

  • GMC Member
  • 111 posts
  • Version:GM8

Posted 22 December 2011 - 02:08 AM

isn't that what you want it to do set "go" to one activating your alarm
  • 0

#9 l1ttledand

l1ttledand

    GMC Member

  • GMC Member
  • 43 posts
  • Version:GM8

Posted 22 December 2011 - 02:28 AM

isn't that what you want it to do set "go" to one activating your alarm


yeah.. idk why its not registering.. even if the sprite_check isnt equal to the sprite_index, it doesnt set go = 1.. I mean it does, but only once, then if sprite_check equals a different number it wont set go = 1... ill keep looking, it might be a problem elsewhere, ill let you know.
  • 0

#10 stopit540

stopit540

    GMC Member

  • GMC Member
  • 111 posts
  • Version:GM8

Posted 22 December 2011 - 03:01 AM

edit: never mind

Edited by stopit540, 22 December 2011 - 03:04 AM.

  • 0

#11 l1ttledand

l1ttledand

    GMC Member

  • GMC Member
  • 43 posts
  • Version:GM8

Posted 22 December 2011 - 03:10 AM

Yeah Idk.. its still not setting go = 1 when the sprite_index is a different number than the sprite_check.. it only works once..... very strange.. still looking
  • 0

#12 stopit540

stopit540

    GMC Member

  • GMC Member
  • 111 posts
  • Version:GM8

Posted 22 December 2011 - 03:27 AM

just set a variable every time you change the sprite_index and check that
  • 0

#13 l1ttledand

l1ttledand

    GMC Member

  • GMC Member
  • 43 posts
  • Version:GM8

Posted 22 December 2011 - 05:37 AM

I fixed itttt, thank you so much for your help. I made a dumb mistake.. just had to step away from coding for a little to see it.. this code works, thanks again! :thumbsup:
  • 0

#14 stopit540

stopit540

    GMC Member

  • GMC Member
  • 111 posts
  • Version:GM8

Posted 22 December 2011 - 06:18 AM

Anytime. I'm glad you got it.
  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users