-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathBoundCheckHit.java
More file actions
99 lines (82 loc) · 1.74 KB
/
BoundCheckHit.java
File metadata and controls
99 lines (82 loc) · 1.74 KB
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/**
* @(#)GraphicalStuff.java
*
*
* @author
* @version 1.00 2012/3/19
*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.lang.Math;
public class BoundCheckHit implements Runnable{
public Link link;
public BoundCheckHit(Link theLink) {
this.link = theLink;
}
//@Override
public void run (){
while (1>0){
if (link.hurt){
if (isWalkable()){
this.link.linkWalk = true;
}
else {
this.link.linkWalk = false;
}
}
try{
Thread.sleep(5);
}
catch (InterruptedException e){
}
}
}
public boolean isWalkable() {
int x, y;
double mapX, mapY;
int tileNum;
if (this.link.sDirection.equals("u")){
x = this.link.linkCo[0] + 14;
y = this.link.linkCo[1] + 34;
if (y > 340){
return false;
}
}
else if (this.link.sDirection.equals("r")){
x = this.link.linkCo[0];
y = this.link.linkCo[1] + 18;
if (x < 34){
return false;
}
}
else if (this.link.sDirection.equals("d")){
x = this.link.linkCo[0] + 14;
y = this.link.linkCo[1];
if (y < 34){
return false;
}
}
else {
x = this.link.linkCo[0] + 34;
y = this.link.linkCo[1] + 18;
if (x > 510){
return false;
}
}
mapX = x/34;
mapY = y/34;
x = (int)Math.floor(mapX);
y = (int)Math.floor(mapY);
tileNum = (y*16) + x;
if (this.link.window.theMap.walkable[tileNum] != 1){
return false;
}
/*else if (this.link.direction.equals("n")){
return true;
}*/
else {
return true;
}
}
}