Skip to content

Instantly share code, notes, and snippets.

@aoisensi
Created December 1, 2012 11:59
Show Gist options
  • Save aoisensi/4181830 to your computer and use it in GitHub Desktop.
Save aoisensi/4181830 to your computer and use it in GitHub Desktop.
誰か最適化してください
#thx user/843843 !!
class Collision(object):
left = False
right = False
up = False
down = False
def __init__(self, left, right, up, down):
self.left = left
self.right = right
self.up = up
self.down = down
def _not_ander(self, left, right, up, down):
self.left = self.left and (not left)
self.right = self.right and (not right)
self.up = self.up and (not up)
self.down = self.down and (not down)
def get_collision(self, x, y):
collision = self._get_collision_natural(x, y)
up = self._get_collision_natural(x, y - 1).down
down = self._get_collision_natural(x, y + 1).up
left = self._get_collision_natural(x + 1, y).right
right = self._get_collision_natural(x - 1, y).left
collision._not_ander(left, right, up, down)
return collision
#789
#456
#123
def get_collision(self, x, y):
collision = self._get_collision_natural(x, y)
if collision == 1:
_collision = self._get_collision_natural(x - 1, y)
if(_collision == 3 or _collision == 6 or _collision == 9):
_collision = self._get_collision_natural(x, y + 1)
if(_collision == 7 or _collision == 8 or _collision == 9):
return 5
else:
return 2
else:
_collision = self._get_collision_natural(x, y + 1)
if(_collision == 7 or _collision == 8 or _collision == 9):
return 4
else:
return 1
elif collision == 2:
_collision = self._get_collision_natural(x, y + 1)
if(_collision == 7 or _collision == 8 or _collision == 9):
return 5
else:
return 2
elif collision == 3:
_collision = self._get_collision_natural(x + 1, y)
if(_collision == 1 or _collision == 4 or _collision == 7):
_collision = self._get_collision_natural(x, y + 1)
if(_collision == 7 or _collision == 8 or _collision == 9):
return 5
else:
return 2
else:
_collision = self._get_collision_natural(x, y + 1)
if(_collision == 7 or _collision == 8 or _collision == 9):
return 6
else:
return 3
elif collision == 4:
_collision = self._get_collision_natural(x - 1, y)
if(_collision == 3 or _collision == 6 or _collision == 9):
return 5
else:
return 4
elif collision == 6:
_collision = self._get_collision_natural(x + 1, y)
if(_collision == 1 or _collision == 4 or _collision == 7):
return 5
else:
return 6
elif collision == 7:
_collision = self._get_collision_natural(x - 1, y)
if(_collision == 3 or _collision == 6 or _collision == 9):
_collision = self._get_collision_natural(x, y - 1)
if(_collision == 1 or _collision == 2 or _collision == 3):
return 5
else:
return 8
else:
_collision = self._get_collision_natural(x, y - 1)
if(_collision == 1 or _collision == 2 or _collision == 3):
return 4
else:
return 7
elif collision == 8:
_collision = self._get_collision_natural(x, y - 1)
if(_collision == 1 or _collision == 2 or _collision == 3):
return 5
else:
return 8
elif collision == 9:
_collision = self._get_collision_natural(x + 1, y)
if(_collision == 1 or _collision == 4 or _collision == 7):
_collision = self._get_collision_natural(x, y - 1)
if(_collision == 1 or _collision == 2 or _collision == 3):
return 5
else:
return 8
else:
_collision = self._get_collision_natural(x, y - 1)
if(_collision == 1 or _collision == 2 or _collision == 3):
return 6
else:
return 9
else:
return 5
@aoisensi
Copy link
Author

aoisensi commented Dec 1, 2012

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment