Some questions about collideSprites...
-
in Fact il cover it in my next video tutorial, iv sorted the quality in my last test so youl be able to actually see the code :) il cover sprite collisions and triggers wrapped in a simple boss fight program. il aim for next week to make and release it
-
@waldron said in Some questions about collideSprites...:
@vinicity
collide1 = collidesprites(sprite.plr,sprite.boss)
collide2 = collidesprites(sprite.plr,sprite.boss)
if collide1 or collide2 then
(stuff happens)
endif
you can also add in stuff like boss health and have triggers on his/her health level. then you got else statements ect.
i only figured this after playing Steve's Row ya boat :) cheers Steve
But how does that even work? collide1 and collide2 are not booleans (or actually integers; I know Fuze does not have proper bools), but structs? How can you test a struct in an if clause just like that?
I would have thought you would need something like:
collide1 = collidesprites(sprite.plr,sprite.boss)
collide2 = collidesprites(sprite.plr,sprite.boss)
if collide1.exists or collide2.exists then
(stuff happens)
endif
-
@vinicity sorry the second collision is supposed to be sprite. plr , sprite.door)
-
then if collide1 then//it already reads the collision between sprites because of the collidesprites function, the collide1 is just calling it
im guessing if you don't call if it exists then its at its default ??
il have to check when im home but works -
Are you saying that once you have called collideSprites() once, you can then test the resulting struct multiple times, and that it will update depending on whether the collision has occurred or not? So the collideSprites() call does need to be inside the game loop?
I must test this tonight, but I think it sounds a bit strange...
-
@vinicity i have it in my main loop yes, il double check also when home but works. i use it to collect sprites move sprites all sorts
-
I am also confused by this collidesprites returns a struct. If I treat it as a condition (bool) it seems to always be true. Interestingly if I try to negate it using ! I get an error. Are you sure that this works?
-
@pianofire ok so i shouldn't write code without seeing it, i have
for i = 0 to len(sprite) loop
collide1 = detectspritecollision (sprite,coins[i])
if collide1 then
(stuff)
endif
repeat
-
For checking if it's true I always just use detectspritecollision(spr1,spr2). All it returns is a true or false statement
-
i missed that part detect....
-
That explains it!