Ik ben bezig met het maken van een Breakout spel in c#. Hierbij heb ik de bal als een rectangle en alle blokjes als een rectangle. Ik kan al kijken wanneer het balletje dus een blokje raakt.
Nu ben ik bezig met het maken van een methode die als parameters 2 rectangles krijgt (balletje en balkje) en dan kijkt aan welke kant die hem raakt (links, rechts, boven of onderkant). Ik heb een methode gemaakt maar ik weet zeker dat het makkelijker moet kunnen
Nu ben ik bezig met het maken van een methode die als parameters 2 rectangles krijgt (balletje en balkje) en dan kijkt aan welke kant die hem raakt (links, rechts, boven of onderkant). Ik heb een methode gemaakt maar ik weet zeker dat het makkelijker moet kunnen
C#:
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
| private Position checkPositionOfCollition(Rectangle rec, Rectangle recTarget) { if (!rec.IntersectsWith(recTarget)) return Position.None; rec.Intersect(recTarget); if (rec.Left == recTarget.Left && rec.Width < rec.Height) { if (rec.Top == recTarget.Top) { if (rec.Width >= rec.Height) return Position.Top; } else if (rec.Bottom == recTarget.Bottom) { if (rec.Width >= rec.Height) return Position.Bottom; } return Position.Left; } else if (rec.Top == recTarget.Top) { if (rec.Left == recTarget.Left) { if (rec.Height >= rec.Width) return Position.Left; } else if (rec.Right == recTarget.Right) { if (rec.Height >= rec.Width) return Position.Right; } return Position.Top; } else if (rec.Right == recTarget.Right) { if (rec.Top == recTarget.Top) { if (rec.Width >= rec.Height) return Position.Top; } else if (rec.Bottom == recTarget.Bottom) { if (rec.Width >= rec.Height) return Position.Bottom; } return Position.Right; } else if (rec.Bottom == recTarget.Bottom) { if (rec.Left == recTarget.Left) { if (rec.Height >= rec.Width) return Position.Left; } else if (rec.Right == recTarget.Right) { if (rec.Height >= rec.Width) return Position.Right; } return Position.Bottom; } //doubtful return Position.None; } |
[ Voor 3% gewijzigd door NMe op 12-10-2005 17:25 . Reden: Hey Creep, als je code opleukt met [code]-tags, doe het dan ook goed. :+ ]