-
Notifications
You must be signed in to change notification settings - Fork 0
/
collision_mask.txt
71 lines (51 loc) · 1.62 KB
/
collision_mask.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
W S F N T P
+---------
SHIP|0 0 0 0 0 1
|
FF |0 0 0 0 1 0
|
NMY |0 0 0 1 0 0
|
TUN |0 0 1 0 0 0
|
BUL |0 1 0 0 0 0
|
WAL |1 0 0 0 0 0
W S F N T P
+---------
SHIP|0 0 0 0 0 1
|
CUB |0 0 0 0 1 0
|
SHIP = 1 , GROUP = 2 = 10 = 2
CUB = 2 , GROUP = 1 = 01 = 1
SHIP = 1 , GROUP = 4 or 8 or 32 = 101100 = 44
FF = 2 , GROUP = 4 or 8 = 000100 = 12
//NMY = 4 , GROUP = 1 or 2 = 000011 = 3
//NMY = 4 , GROUP = 1 or 2 or 4 = 000111 = 7
NMY = 4 , GROUP = 1 or 2 or 4 or 8 = 001111 = 15
//TUN = 8 , GROUP = 1 or 2 = 000011 = 3
TUN = 8 , GROUP = 1 or 2 or 4 = 000111 = 7
//BUL = 16, GROUP = 4 or 8 or 32 = 101100 = 44
BUL = 16, GROUP = 32 = 100000 = 32
//WAL = 32, GROUP = 16 or 1 = 110001 = 17
WAL = 32, GROUP = 1 = 000001 = 1
------
Mask = 0 to disable collisions on an item
C'est un systeme de masque de bit :
Un object a un masque pour les groupes auquel il appartient (SelfMask) et un masque pour les groupes avec qui il collide (CollideWith).
Ex:
Si on definis les groupes suivants :
Allies: 001b (1 en decimal)
Ennemis: 010b (2 en decimal)
Mur: 100b (4 en decimal)
Alors :
Un objet qui est un allie et qui ne collide pas avec les allies mais avec les murs et les ennemis est definis comme suit :
Self (groupe auquel il appartient) : 001b (allies) -> 1
Collide with (groupe qu'il collide) : 010b (ennemis) | 100b (mur) = 110b -> 6
Un mur qui collide avec tout le monde sauf les autres murs :
Self : 100b -> 4
Coll: 001b | 010b = 011b -> 3
*-----
ItemSetCollisionMask = Collide with mask
ItemSetSelfMask = Collision group mask