The Moosader Community

Visit the IRC at irc.freenode.net #Moosader! Community dedicated to programming and game development! Moosader.com
It is currently Wed Oct 16, 2019 7:23 pm

All times are UTC - 6 hours [ DST ]




Post new topic Reply to topic  [ 13 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Sun Dec 06, 2009 10:34 pm 
Offline
Smushed Goomba
Smushed Goomba
User avatar

Joined: Sun Dec 06, 2009 4:45 pm
Posts: 5
Location: United States
Hi.

I know how to check for a collision, but this has been stumping me for a few.

I need to know which side the collision is coming from.

For example, take 2 objects (obja, objb).

obja
|
v
objb

in the above example, obja is hitting objb from the top. So I would need the collision detection function to return a unique integer that represents the top. For simplicity I will use the following:

Code:
// 0 - no collision
// 1 - collision from top
// 2 - collision from bottom
// 3 - collision from left
// 4 - collision from right


The function would, of course, need to return type integer. For the arguments, it would take 2 types of (SDL_Rect*).

Here would be a basic prototype:

Code:
int CheckCollisionSide(SDL_Rect *r1, SDL_Rect *r2)
{
   // 0 - no collision
   // 1 - collision from top
   // 2 - collision from bottom
   // 3 - collision from left
   // 4 - collision from right

   if (collision_from_top)
      return 1;

   if (collision_from_bottom)
      return 2;

   if (collision_from_left)
      return 3;

   if (collision_from_right)
      return 4;

   return 0;
}


Can anyone help me out with the logic for checking which side the collision came from?

Thanks anyone for your time.

And PS, for anyone not using the SDL library, SDL_Rect* is just a pointer to a structure containing 4 integers (1 for x, y, width, and height).

_________________
- Master Jake
[ http://www.masterjakeonline.com/ ]


Top
 Profile  
 
PostPosted: Sat Dec 26, 2009 10:38 pm 
Offline
Black Mage
Black Mage
User avatar

Joined: Wed Sep 23, 2009 8:58 am
Posts: 167
idk maybe this can help http://www.lazyfoo.net/SDL_tutorials/index.php

_________________
Image

this signature is from here http://ashiro-kun.deviantart.com/


Top
 Profile  
 
PostPosted: Fri Jan 15, 2010 8:37 am 
Offline
Zora
Zora
User avatar

Joined: Tue Jan 05, 2010 6:56 am
Posts: 251
Location: Germany
If you're using the SDL_Rect you can use the x and y to say where the object originally stands.

Like
Code:
int CheckCollisionSide(SDL_Rect *r1, SDL_Rect *r2)
{
    // 0 - no collision
    // 1 - collision from top
    // 2 - collision from bottom
    // 3 - collision from left
    // 4 - collision from right

    if (r1->y > r2->y)
        // r2 is above r1
        return 1;

    if (r1->y < r2->y)
        // r2 is below r1
        return 2;

    if (r1->x > r2->x)
        // r2 stands left of r1
        return 3;

    if (r1->x < r2->x)
        // r2 stands right of r1
        return 4;

    return 0;
}


Keep in mind: If the object r2 hits r1 from a diagonal position you will get "collision from top" or "collision from bottom" only.
It would be better to check all directions and return the value then.
Like
Code:
int CheckCollisionSide(SDL_Rect *r1, SDL_Rect *r2)
{
    int FoundCollisions = 0;
    // 0 - no collision
    // 1 - collision from top
    // 2 - collision from bottom
    // 4 - collision from left
    // 8 - collision from right

    if (r1->y > r2->y)
        // r2 is above r1
        FoundCollisions = 1;

    if (r1->y < r2->y)
        // r2 is below r1
        FoundCollisions = 2;

    if (r1->x > r2->x)
        // r2 stands left of r1
        FoundCollisions = FoundCollisions or 4;

    if (r1->x < r2->x)
        // r2 stands right of r1
        FoundCollisions = FoundCollisions or 8;

    return FoundCollisions;
}


This is more accurat.
You can check the founded collisions then with an easy AND operation.
Like:
Code:
void HandleCollisons(int CollisionCode)
{
    if (CollsionCode and 1)
    {
        // Handle the top
        cout << "Hit from above!" << endl;
    }

    if (CollsionCode and 2)
    {
        // Handle the top
        cout << "Hit from below!" << endl;
    }

    if (CollsionCode and 4)
    {
        // Handle the top
        cout << "Hit from the left!" << endl;
    }

    if (CollsionCode and 8)
    {
        // Handle the top
        cout << "Hit from the right!" << endl;
    }
}


Example:
If you call this like this
Code:
    HandleCollisons(CheckCollisionSide(&Object1, &Object2));


You get a more accurat result.
You can check if Object 1 hits Objects 2 from two sides and not only from one.

But I show some pictures to illustrate that. Okay?
Object1 (r1) is the black square. Object2 (r2) is the red square.
Image
The code you wanted would only say: It's above. (return 1)
The code I gave you would say: It's above and it's from the left. (return 1 and 4 (=5))

Image
The code you wanted would only say: It's above. (return 1)
The code I gave you would say: It's above and it's from the right. (return 1 and 8 (=9))

Image
The code you wanted would only say: It's below. (return 2)
The code I gave you would say: It's below and it's from the left. (return 2 and 4 (=6))

Image
The code you wanted would only say: It's below. (return 2)
The code I gave you would say: It's below and it's from the right. (return 2 and 8 (=10))

The usage of POT numbers should explain itself. Otherwhise you can't realy get sure that there's no mistake while combining them.
If you wonder how that actually works:
The number "1" is stored as "00000001". // Top
The number "2" is stored as "00000010". // Bottom
The number "4" is stored as "00000100". // Left
The number "8" is stored as "00001000". // Right
By combining them with "or" they get values between 1 and 10.
With "and" you can seperate them again and get the actual value.

Hope that wasn't to messy and I explained everything well enough.

_________________
"There are only 10 different kinds of humans. Those who understand the binary code and thos who don't."
Why do I dislike Apple? Would you eat a half-eaten apple?

Image


Top
 Profile  
 
PostPosted: Thu Jun 09, 2011 8:38 am 
Offline
Goblin
Goblin
User avatar

Joined: Tue Apr 27, 2010 1:34 am
Posts: 104
Location: Minnesota
I remember reading this a long time ago. I really like this solution. I had to dig it up again, because I forgot how to extract the side from the OR'ed value (by using the AND operator).


Top
 Profile  
 
PostPosted: Fri Jun 17, 2011 9:27 am 
Offline
Site Admin
User avatar

Joined: Wed May 14, 2008 4:43 am
Posts: 2328
Location: Kansas City
rabrant wrote:
I remember reading this a long time ago. I really like this solution. I had to dig it up again, because I forgot how to extract the side from the OR'ed value (by using the AND operator).


I changed this topic to a sticky since this tends to get asked a lot :D

_________________
Android apps by Moosader! - Open Source projects - Moosader.com


Top
 Profile  
 
PostPosted: Wed Sep 19, 2012 4:58 pm 
Offline
Rather Dashing
Rather Dashing
User avatar

Joined: Sat Feb 06, 2010 5:06 am
Posts: 378
Location: Australia
Since I didn't see this in Anihex's code, I'll post my answer: you need to remember the actual box height.

Code:
//-------------------------
//Preprocessor directives
//-------------------------

#define DISTANCE_ABOVE   (b.y + b.h - a.y)
#define DISTANCE_BELOW   (a.y + a.h - b.y)
#define DISTANCE_LEFT   (b.x + b.w - a.x)
#define DISTANCE_RIGHT   (a.x + a.w - b.x)

//-------------------------
//Check for a collision
//-------------------------

BBox::Result CheckCollision(BBox a, BBox b) {
   /* lets say there are two boxes with a width of 3
    * these boxes are given origins of 0 and 3
    * if the boxes are zero indexed, then they look like this:
    *
    * 0, 1, 2
    * 3, 4, 5
    *
    * no collision. However, if they have the origins 4 and 6:
    *
    * 4, 5, 6
    * 6, 7, 8
    *
    * there should be a graphical overlap, which is considered a collision.
    * because of this, the correct operator in the following (inverted)
    * if statement is "greater than or equal to", instead of "greater than"
    *
    * Pay close attention when you are building more advanced collision code
    * on top of this.
    */
   if (b.x >= a.x + a.w ||
      b.y >= a.y + a.h ||
      a.x >= b.x + b.w ||
      a.y >= b.y + b.h
      )
      return BBox::NONE;

   return BBox::COLLISION;
}

BBox::Result CheckCollisionSide(BBox a, BBox b) {
   if (!CheckCollision(a, b))
      return BBox::NONE;

   //check each side, and return only if true
   if (CheckCollisionAbove(a, b))
      return BBox::ABOVE;

   if (CheckCollisionBelow(a, b))
      return BBox::BELOW;

   if (CheckCollisionLeft(a, b))
      return BBox::LEFT;

   if (CheckCollisionRight(a, b))
      return BBox::RIGHT;

   //error
   throw(std::logic_error("Collision side unknown"));
}

BBox::Result CheckCollisionAbove(BBox a, BBox b) {
   if (!CheckCollision(a, b))
      return BBox::NONE;

   if (DISTANCE_ABOVE <= DISTANCE_BELOW && DISTANCE_ABOVE <= std::min(DISTANCE_LEFT, DISTANCE_RIGHT))
      return BBox::ABOVE;

   return BBox::NONE;
}

BBox::Result CheckCollisionBelow(BBox a, BBox b) {
   if (!CheckCollision(a, b))
      return BBox::NONE;

   if (DISTANCE_BELOW <= DISTANCE_ABOVE && DISTANCE_BELOW <= std::min(DISTANCE_LEFT, DISTANCE_RIGHT))
      return BBox::BELOW;

   return BBox::NONE;
}

BBox::Result CheckCollisionLeft(BBox a, BBox b) {
   if (!CheckCollision(a, b))
      return BBox::NONE;

   if (DISTANCE_LEFT <= DISTANCE_RIGHT && DISTANCE_LEFT <= std::min(DISTANCE_ABOVE, DISTANCE_BELOW))
      return BBox::LEFT;

   return BBox::NONE;
}

BBox::Result CheckCollisionRight(BBox a, BBox b) {
   if (!CheckCollision(a, b))
      return BBox::NONE;

   if (DISTANCE_RIGHT <= DISTANCE_LEFT && DISTANCE_RIGHT <= std::min(DISTANCE_ABOVE, DISTANCE_BELOW))
      return BBox::RIGHT;

   return BBox::NONE;
}


This was ripped from bbox.h and bbox.cpp.

Although this doesn't have the bit mask thingy, it's on my TODO list. BBox is identical to SDL_Rect.

Basically what this does is, it sets some macros, which represent the "overlap" between two boxes (I use macros in case I mistype something). Then, the functions take two boxes, and compare them. CheckCollision(a,b) is straight forward, but the "check side" functions determine if the distance from a to b is smaller on a specific side than from any other side.

_________________
My blog: http://kr-studios.tumblr.com/


Top
 Profile  
 
PostPosted: Sun Mar 11, 2018 8:08 pm 
Offline
Rabite
Rabite

Joined: Sun Mar 11, 2018 7:59 pm
Posts: 50
derrick rose shoes
ferragamo belt
hermes belt
michael kors outlet
vibram fivefingers
asics shoes
jordan 13
ysl bags
christian louboutin shoes
links of london sale
yeezy shoes
caterpillar boots
fitflops
pandora charms
westbrook shoes
yeezy shoes
lacoste outlet
vibram five fingers
kate spade outlet
nhl jerseys
air jordan shoes
kobe 9
chrome hearts online
michael kors
longchamp handbags
yeezy boost 350
nike air max
cheap jordans
vapormax
air jordan 13
roshe shoes
nike zoom
yeezy shoes
golden goose
nba jerseys
air max 90
nike flyknit racer
links of london outlet store
hermes belt
goyard handbags
yeezys
adidas yeezy
adidas iniki
cheap mlb jerseys
nike air huarache
nike roshe one
adidas nmd
michael kors handbags
nike foamposite
nike huarache
gucci belt
cheap jordans
michael kors outlet
patriots jersey
adidas eqt
balenciaga shoes
nike flyknit
nike roshe run
yeezy boost
jordan 4
kobe shoes
michael kors outlet online
michael kors factory outlet
nike max
pandora bracelet
michael kors handbags
nmd
hogan outlet online
yeezy boost 350
nfl jerseys
adidas stan smith sneakers
nike roshe
moncler jackets
nike flyknit racer
nike air max 2018
adidas online shop
cheap basketball shoes
adidas outlet online
cartier bracelet
jordan 6
james harden shoes
vans shoes
nike air max
longchamp bags
reebok shoes
birkin bag
fitflops sale clearance
red bottom shoes
adidas superstar
vans shoes
john wall shoes
balenciaga shoes
supreme clothing
curry shoes
air jordan shoes
off white
nike free run
longchamp handbags
michael kors outlet
nike air max
gucci belts
nike huarache
yeezy boost 350
nike huarache
kyrie irving shoes
longchamps
adidas tubular
adidas ultra
curry 3 shoes
nike shoes for men
russell westbrook shoes
nike hyperdunk 2017
links of london
adidas yeezy boost
real jordans for sale cheap
af1
lacoste online shop
vans outlet
reebok outlet
fitflops
adidas stan smith
100% real jordans for cheap
lebron 15
christian louboutin
adidas ultra boost
asics gel kayano
nike sneakers
jordan 11 retro
birkin bag
yeezy boost 350
retro jordans
yeezy boost 350 v2
nike air huarache
cheap jordans
nike cortez
nike dunk shoes
longchamp
adidas yeezy
basketball shoes
tory burch outlet
michael kors outlet store
yeezy boost 350 v2
retro jordans
nike running shoes
true religion outlet
100% real jordans for cheap
kobe byrant shoes
lebron shoes
yeezy shoes
iniki
golden goose outlet
adidas gazelle
yeezy boost
adidas shoes
kobe 9
cheap jordans
cheap jordans
true religion
converse outlet store
dior sunglasses
yeezy
led shoes
kyrie 4
off white clothing
air max 2018
led shoes
jordan retro
kyrie 4
nike mercurial
nike zoom running shoe
longchamp bags
nike air max 90
yeezy boost
adidas ultra boost
converse shoes
authentic jordans
longchamp outlet
adidas tubular
true religion jeans
yeezy boost 350
yeezy shoes
hermes birkin
nike polo
adidas nmd r1
nike air zoom
nike flyknit
nike outlet
air jordan
yeezy shoes
yeezy
kobe basketball shoes
yeezy
longchamp handbags
hogan outlet
russell westbrook shoes
kobe basketball shoes
crazy explosive
brady jersey
yeezy boost
nike air force
adidas eqt
lebron 13 shoes
michael kors outlet
nike huarache
adidas nmd
chrome hearts online
paul george shoes
adidas yeezy
yeezys
ysl handbags
adidas nmd
http://www.kobebasketballshoes.us.com
nike air force
michael kors uk
lacoste polo
goyard bags
nmd
cheap nba jerseys
longchamp bags
timberland boots
tory burch shoes
lebron soldier 10
lebron 14
van cleef
yeezy boost 350
louboutin shoes
lebron 13
hermes belts for men
nike dunks
yeezy 700
atlanta falcons jersey
calvin klein outlet
adidas tubular
golden goose
ultra boost
nike air huarache
asics running shoes
yeezy boost 350
moncler outlet
nike air force 1
lebron james shoes
yeezy
off white clothing
michael kors outlet
fenty puma
jordan retro 12
nike outlet store online shopping
air force 1
prada glasses
longchamp sale
kate spade handbags
retro jordans
yeezy boost 350
adidas superstar shoes
balenciaga sneakers
curry 4
air yeezy
air presto
adidas tubular shadow
adidas stan smith
michael kors outlet online
kobe 11
kobe shoes
nike lebron soldier 11
adidas tubular
lacoste outlet
moncler jackets
nike cortez men
lebron 14 shoes
yeezy boost
nike air zoom
chrome hearts
cheap jordans
balenciaga sneakers
kevin durant shoes
nike roshe uk
nike lebron soldier 10
zx flux
nike zoom
pandora charms
yeezy boost 350 v2
yeezy boost
new england patriots jersey
adidas nmd runner
moncler jackets
roshe run
supreme hoodie
golden goose
jordan shoes
air max
light up shoes
adidas ultra boost
links of london
michael jordan shoes
vapor max
curry 4
adidas superstar
nike roshe run
longchamp outlet
michael kors outlet online
bape hoodie
adidas nmd
nike basketball shoes
nike sneakers for women
kd shoes
adidas tubular shadow
mlb jerseys
yeezy boost 350 v2
yeezy boost 700
yeezy boost 350 v2
tom ford sunglasses
adidas outlet
harden shoes
nike air max 90
air force 1
air max 90
nike air max 2017
adidas pure boost
pandora jewelry
adidas superstar shoes
bape hoodie
adidas yeezy
paul george shoes
nike air force 1
michael kors handbags
moncler outlet
nike football boots
jordan shoes
kobe 11
jordan retro 6
adidas stan smith shoes
kate spade outlet online
tory burch shoes
ferragamo belts
nike sneakers for men
off white hoodie
chrome hearts
red bottoms
nike shoes
kobe shoes
air jordans
yeezy boost 350 v2
moncler jackets
pure boost
adidas nmd
yeezy boost 350
hermes handbags
hermes belt
stephen curry shoes
cat boots
converse outlet
jordan shoes
falcons jersey
kyrie 3
nike hyperdunk
louboutin shoes uk
yeezy boost 350 v2
nike air presto
lebron soldier 11
kobe sneakers
damian lillard shoes
basketball shoes
timberland outlet
http://www.kobeshoes.uk
jordan 12
adidas eqt support
nike free
dior glasses
goyard bags
cheap nfl jerseys
adidas outlet
nike roshe run
yeezy boost
golden goose sneakers
adidas crazy explosive
Kanye West shoes
calvin klein outlet online
moncler jacket
adidas zx flux
birkin bag
tom ford eyewear
lebron 15
air jordan
jordan shoes
led shoes for kids
prada sunglasses
jordan 11
asics kayno
longchamp
van cleef arpels
adidas ultra boost uncaged
pandora jewelry
longchamp bags
goyard handbags
kyrie 3 shoes
kyrie shoes
golden goose sneakers
nmd
nike polo shirts
michael kors handbags
true religion
yeezy boost 350
converse outlet
adidas store
chrome hearts
curry 3
longchamp longchamps


Top
 Profile  
 
PostPosted: Thu May 31, 2018 8:21 pm 
Offline
Du'Cate
Du'Cate

Joined: Sun Apr 15, 2018 8:53 pm
Posts: 371
jordan 11 win like 82
converse outlet
barbour
fitflops sale clearance
birkenstocks
polo ralph lauren outlet
skechers outlet
kobe 12
nike clearance
asics gel lyte
curry 4
yeezy boost 350 v2
jordan 12
pandora charm
ecco shoes for men
jordan retro 12
asics shoes
mbt shoes clearance
cheap nfl jerseys china
yeezy shoes
canadian goose jacket
win like 96
louboutin shoes
longchamp bags
red bottoms
yeezy beluga 2.0
nike air vapormax
fitflops
beats headphones
pandora bracelets clearance
calvin klein underwear
nike air vapormax
pandora bracelets clearance
louboutin mens
mbt
pandora rings
adidas nmd
balenciaga shoes
fake yeezys
the north face jackets
pandora uk
jordan 11 red
rihanna puma
the north face outlet online
yeezy zebra
air max plus
louboutin
timberland boots
red bottom
pandora jewelry
pandora sale
yeezy boost 350 v2
red jordan 11
timberland outlet stores
north face clearance
jordan 11 red
yeezy boost 350 v2
nike air max 2018
kd 10 shoes
christian louboutin mens shoes
ecco
adidas yeezy
yeezy zebra v2
birkenstock shoes
nike vapor max plus
timberland outlet stores
red bottom shoes for women
air jordan retro 11
ralph lauren sale clearance uk
calvin klein outlet
michael kors outlet clearance
coach handbags outlet
salvatore ferragamo shoes
soccer cleats
superdry uk
fitflop
cheap nfl jerseys
pandora jewelry official site
clarks shoes for women
adidas yeezy
supreme hoodie
yeezy boost
vapor max
barbour jackets
timberland
vapor max
pandora
jimmy choo outlet
kobe bryant shoes
pandora bracelet
birkenstock sandals
yeezy
supremenewyork
yeezy boost
red bottom heels
skechers uk
nike factory store
under armour clearance
vapormax flyknit
adidas outlet
christian louboutin
timberland outlet
fake rolex watches
under armour outlet online
curry shoes
christian louboutin shoes
coach outlet
michael kors handbags outlet
pandora ring
vapormax plus
air max plus
red bottom shoes
pandora
curry 4 shoes
birkin bag
adidas outlet store
pandora earrings
yeezy beluga
pandora jewelry
beats wireless headphones
red bottoms for men
air max 97
pandora charms
asics running shoes
fitflop
red bottom
louboutin outlet
pandora bracelet
lebron 15
balenciaga triple s
pandora jewelry
adidas ultra boost
canadian goose
adidas yeezy
wholesale jerseys china
nike vapor max
pandora jewelry
huarache shoes
pandora rings
jordan retro
lacoste polo shirts
pandora charms sale
kd 10
louboutin shoes
nike vapor max
air max 2018
beats headphones
birkenstock outlet
kyrie irving shoes
timberland shoes
ferragamo shoes
fitflop sandals
pandora jewelry
beats wireless
blue tint yeezy
north face uk
adidas yeezy boost
pandora charms
jordan 11 win like 96
ralph lauren factory store
skechers shoes
fake yeezy
birkenstock outlet
pandora charms
louboutin boots
christian louboutin men
north face jackets
salvatore ferragamo
nike factory
win like 82
pandora bracelet charms
fenty puma
lebron 15 shoes
canada goose jackets
red bottoms louboutin
nike outlet online
calvin klein online
birkin bags
cheap nike
pandora jewelry outlet
pandora charms
pandora bracelet
nike outlet store
barbour uk
ultra boost
replica watches
birkenstock sandals
nike uk
nike kyrie
red bottom shoes
cheap soccer cleats
pandora jewelry 70 off clearance
skechers shoes
converse shoes
lacoste outlet
kyrie 4
red 11s
fake yeezy boost
nike air max plus
longchamp handbags
pandora jewelry official site
yeezy blue tint
wholesale nfl jerseys
pandora necklace
louboutin shoes
nmd r1
kyrie 3
canada goose sale
clarks shoes
barbour jackets
huaraches nike
valentino shoes
replica rolex
supreme clothing
timberland uk
goyard
asics gel
vapor max
jimmy choo shoes
north face jackets clearance
gym red 11
valentino outlet
air max 2018
goyard bags
balenciaga sneakers
pandora charms
clarks shoes for women
yeezy boost 350 v2
rihanna fenty puma
2018.0601W


Top
 Profile  
 
PostPosted: Mon Jun 18, 2018 8:35 pm 
Offline
Du'Cate
Du'Cate

Joined: Sun Apr 15, 2018 8:53 pm
Posts: 371
asd20180619
win like 96
pandora jewelry 70 off clearance
michael kors outlet
pandora bracelet
under armour outlet online
air max 2018
yeezy boost 350 v2
calvin klein outlet
nike outlet store online
curry 4 shoes
fenty puma
canada goose jackets
cheap nfl jerseys china
michael kors handbags outlet
air max 97 silver bullet
asics gel lyte
yeezy boost 350 v2
longchamp bags
pandora jewelry
valentino shoes
fake yeezy boost
christian louboutin mens shoes
vans store
off white jordan
red bottom
kyrie 4
curry shoes
supreme clothing
kd 10
clarks shoes for women
kobe bryant shoes
valentino outlet
vapor max
nike outlet store
skechers outlet
kd 10
michael kors outlet clearance
nike kd
yeezy
canadian goose
supreme hoodie
red bottoms louboutin
rihanna puma
canadian goose jacket
pandora bracelet charms
puma outlet
coach factory outlet
jimmy choo shoes
timberland shoes
pandora canada
louboutin boots
kate spade outlet
adidas yeezy boost
birkenstock
louboutin
air max plus
ferragamo shoes
pandora bracelets clearance
vapormax flyknit
pandora charms
win like 82
lacoste polo shirts
tory burch outlet
north face clearance
jordan retro
birkenstock shoes
air max plus
ecco
jordan 11 win like 82
curry 4
adidas nmd
celine handbags
louboutin shoes
converse outlet
adidas outlet store
red bottoms for men
kate spade handbags
nike cortez
clarks shoes
kyrie 4
polo ralph lauren outlet
nmd r1
curry shoes
yeezy boost
red bottom heels
nike clearance
christian louboutin shoes
vapor max
cheap nike
birkenstock sandals
yeezy boost
cortez
fitflops
fenty puma
pandora charms
yeezy beluga
pandora
gym red 11
pandora jewelry official site
canada goose sale
kobe 12
fake rolex watches
nike factory
birkin bags
pandora charms
lebron 15
yeezy boost 350 v2
jordan 11 win like 96
beats headphones
balenciaga sneakers
huaraches nike
cheap soccer cleats
curry basketball shoes
north face jackets
celine
kd 10 shoes
jordan 11 red
birkin bag
pandora bracelet
north face jackets clearance
asics shoes
yeezy boost 350 v2
red bottom shoes
nike kyrie
louboutin mens
vapor max
clarks shoes for women
yeezy beluga 2.0
kyrie 3
fake yeezys
nike air vapormax
barbour jackets
kyrie 3
birkenstock outlet
red jordan 11
pandora rings
timberland outlet stores
tory burch handbags
jordan 11 red
the north face outlet online
salvatore ferragamo
jimmy choo outlet
replica rolex
balenciaga shoes
adidas ultra boost
ecco shoes for men
red 11s
salvatore ferragamo shoes
jordan 12
pandora jewelry
yeezy shoes
off white vapormax
calvin klein underwear
pandora canada
air jordan retro 11
calvin klein online
nike vapor max
birkenstock outlet
christian louboutin men
pandora rings
red bottoms
longchamp handbags
yeezy zebra v2
pandora charms
pandora charms sale
rihanna fenty puma
wholesale nfl jerseys
beats wireless
under armour clearance
louboutin shoes
asics gel
barbour
converse shoes
yeezy boost 350 v2
pandora bracelets clearance
coach handbags outlet
puma shoes
adidas outlet
nike air vapormax
adidas yeezy
nike vapor max plus
adidas outlet
goyard bags
red bottom shoes for women
vapormax plus
birkenstock sandals
nike factory store
nike air max 2018
soccer cleats
kyrie 3 basketball shoes
jordan retro 12
kd shoes
vans
timberland outlet stores
replica watches
timberland outlet
ralph lauren factory store
pandora jewelry
kyrie 4 confetti
pandora jewelry outlet
pandora ring
adidas outlet online
nike kyrie 4
pandora jewelry
air max 97
pandora earrings
air max 2018
goyard
birkenstocks
off white nike
the north face jackets
curry 4
fitflop
supremenewyork
lebron 15 shoes
adidas yeezy
pandora jewelry official site
nike clearance
huarache shoes
lacoste outlet
air max 97 ultra
coach outlet online
pandora bracelet
yeezy shoes
fitflops sale clearance
pandora necklace
nike air max plus
cheap nfl jerseys
pandora charm
red bottom shoes
kyrie irving shoes
adidas yeezy
birkenstock sandals
mbt
nike vapor max
wholesale jerseys china
red bottom
air max 97
skechers shoes
nike outlet online
uptempo
yeezy blue tint
kyrie 4 confetti
louboutin outlet
off white shoes
michael kors canada
balenciaga triple s
curry 4 shoes
coach outlet
nike uptempo
asics running shoes
kevin durant shoes
fitflop
yeezy zebra
fitflop sandals
coach outlet store
ultra boost
mbt shoes clearance
blue tint yeezy
fake yeezy
yeezy boost 350 v2
pandora sale


Top
 Profile  
 
PostPosted: Thu Jul 05, 2018 3:53 am 
Offline
Smushed Goomba
Smushed Goomba

Joined: Thu Jul 05, 2018 3:20 am
Posts: 11
"On Kate Spade Outlet the other ED Hardy Outlet hand, to a greater Kate Spade Outlet extent, human Louis Vuitton destiny, personality,Giuseppe Shoes and behavior Stephen Curry Shoes are determined Skechers Outlet by a lifetime Michael Kors Handbags of learning:Red Bottom Shoes extract information Kate Spade Outlet from the surrounding Prada Outlet world and adjust Prada Handbags their behavior Kate Spade Outlet to better adapt Buty Nike Air Max to the new environment.Burberry Scarf This constitutes Red Bottom Shoes our theoretical Kate Spade Outlet model for studying Prada Outlet individual behavioral Ferragamo Shoes and motivational NFL Jerseysneeds: individual Yeezy Boost 350 v2 level seeking Valentino Shoes for stability Skechers Shoes and change Hugo Boss (avoiding risk,Hollister Jeans pursuing stability Marc Jacobs Handbags and seeking stimuli,Burberry Belt sensory enjoyment)Salvatore Ferragamo confrontation; individual Red Bottomsawareness and Kevin Durant Shoes group awareness New Balance Outlet learning and Adidas Outlet confrontation.Vans Outlet This is also Moncler Jackets an extensive Under Armour Outlet response pattern Herve Leger when human Converse Shoes beings face Chan Luu external stimuli NBA Jerseys.
According Sac Longchamp to this model,Keds Shoes the world’s NHL Jerseys leading market New Balance Outlet research group Adidas Outlet Ipsos conducted Michael Kors Outlet a survey True Religion of luxury brand Louis Vuitton Outlet consumption for Moncler Outlet 4,000 female Burberry Outlet respondents aged 20-44 Oakley Outletin China’s Chanel Outlet 1-3 cities.Manolo Blahnik Shoes Our research Cazal Sunglasses finds that Red Bottom Shoes expressing the personal Markelle Fultz Shoes taste, demonstrating Swarovski Outlet the status Pandora Outlet of identity, ensuring Michael Kors Outlet Store the quality of Michael Kors life, lubricating Philipp Plein group communication,Acheter Philipp Plein and releasing self are Kenzo the five major reasons Isabel Marant for Chinese women Ray Ban Sunglasses to consume luxury brands,Cheap NBA Jerseys each accounting G Star for about 20% of the total.Oakley Outlet What are the characteristics Asics Shoes of different Bape Hoodie types of women? Stone Island What are their similarities and Moncler Jackets differences in terms of age,Stone Island Jacket education Calvin Klein and income? What kind of magazine do they love to see? Bally Shoes What is the channel for obtaining luxury product information? Chicago Bulls Jersey Like to buy what you like to see what ads?
"


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 13 posts ]  Go to page 1, 2  Next

All times are UTC - 6 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron