-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStvorec.java
175 lines (154 loc) · 3.95 KB
/
Stvorec.java
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
import java.awt.Rectangle;
/**
* Štvorec, s ktorým možno pohybovať a nakreslí sa na plátno.
*
* @author Michael Kolling and David J. Barnes
* @version 1.0 (15 July 2000)
*/
public class Stvorec {
private int strana;
private int lavyHornyX;
private int lavyHornyY;
private String farba;
private boolean jeViditelny;
/**
* Vytvor nový štvorec preddefinovanej farby na preddefinovanej pozícii.
*/
public Stvorec() {
this.strana = 30;
this.lavyHornyX = 60;
this.lavyHornyY = 50;
this.farba = "red";
this.jeViditelny = false;
}
/**
* (Štvorec) Zobraz sa.
*/
public void zobraz() {
this.jeViditelny = true;
this.nakresli();
}
/**
* (Štvorec) Skry sa.
*/
public void skry() {
this.zmaz();
this.jeViditelny = false;
}
/**
* (Štvorec) Posuň sa vpravo o pevnú dĺžku.
*/
public void posunVpravo() {
this.posunVodorovne(20);
}
/**
* (Štvorec) Posuň sa vľavo o pevnú dĺžku.
*/
public void posunVlavo() {
this.posunVodorovne(-20);
}
/**
* (Štvorec) Posuň sa hore o pevnú dĺžku.
*/
public void posunHore() {
this.posunZvisle(-20);
}
/**
* (Štvorec) Posuň sa dole o pevnú dĺžku.
*/
public void posunDole() {
this.posunZvisle(20);
}
/**
* (Štvorec) Posuň sa vodorovne o dĺžku danú parametrom.
*/
public void posunVodorovne(int vzdialenost) {
this.zmaz();
this.lavyHornyX += vzdialenost;
this.nakresli();
}
/**
* (Štvorec) Posuň sa zvisle o dĺžku danú parametrom.
*/
public void posunZvisle(int vzdialenost) {
this.zmaz();
this.lavyHornyY += vzdialenost;
this.nakresli();
}
/**
* (Štvorec) Posuň sa pomaly vodorovne o dĺžku danú parametrom.
*/
public void pomalyPosunVodorovne(int vzdialenost) {
int delta;
if (vzdialenost < 0) {
delta = -1;
vzdialenost = -vzdialenost;
} else {
delta = 1;
}
for (int i = 0; i < vzdialenost; i++) {
this.lavyHornyX += delta;
this.nakresli();
}
}
/**
* (Štvorec) Posuň sa pomaly vodorovne o dĺžku danú parametrom.
*/
public void pomalyPosunZvisle(int vzdialenost) {
int delta;
if (vzdialenost < 0) {
delta = -1;
vzdialenost = -vzdialenost;
} else {
delta = 1;
}
for (int i = 0; i < vzdialenost; i++) {
this.lavyHornyY += delta;
this.nakresli();
}
}
/**
* (Štvorec) Zmeň dĺžku strany na hodnotu danú parametrom.
* Dĺžka strany musí byť nezáporné celé číslo.
*/
public void zmenStranu(int dlzka) {
this.zmaz();
this.strana = dlzka;
this.nakresli();
}
/**
* (Štvorec) Zmeň farbu na hodnotu danú parametrom.
* Nazov farby musí byť po anglicky.
* Možné farby sú tieto:
* červená - "red"
* žltá - "yellow"
* modrá - "blue"
* zelená - "green"
* fialová - "magenta"
* čierna - "black"
*/
public void zmenFarbu(String farba) {
this.farba = farba;
this.nakresli();
}
/*
* Draw the square with current specifications on screen.
*/
private void nakresli() {
if (this.jeViditelny) {
Platno canvas = Platno.dajPlatno();
canvas.draw(this, this.farba,
new Rectangle(this.lavyHornyX, this.lavyHornyY, this.strana, this.strana));
//canvas.wait(10);
}
}
/*
* Erase the square on screen.
*/
private void zmaz() {
if (this.jeViditelny) {
Platno canvas = Platno.dajPlatno();
canvas.erase(this);
}
}
}