[Qt-interest] Howto Do `hit Test' with QGraphicsItems ?

Andre Somers andre at familiesomers.nl
Thu May 6 09:55:14 CEST 2010


On 6-5-2010 3:37, Aaron Lewis wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 05/05/2010 07:06 PM, Mihail Naydenov wrote:
>    
>> If you read the docs you will find you way around.
>>
>> Hints:
>> QGraphicsItem::contains()
>>      
> So far it's not a easy way for me to check the Position of player
> against other items , i'd do some research first.
>
>    
>> QGraphicsItem::collidesWithItem()
>>      
> Cuz in my game , i've got lots of GraphicsItem , i don't need to check a
> player Item with all of the rest , so i just play around with
>   collidingItems() function , see if it hits any other item.
>
> e,g I've got walls around at the bound of map , buildings inside the map
> , any NPC whatever , i don't want my player 'hit' them , so only tried
> with collidingItems() , just check if it's higher than zero.
>
> Is that a good way for doing this ?
>    
Sounds ok to me. Do you run into issues if you check the 
collidingItems() method of the graphicsItem that represents your sprite?

> It's not good to list all of the Item on a QGraphicsScene , and check
> the player with it right ?
>    
No, it sounds silly to do that if the item provides a method to do it 
directly. Though it would not suprise me if collidingItems was 
implemented this way internally.

André





More information about the Qt-interest-old mailing list