| ..\CSC120\Java\lec31_s26\src\Mouse.java |
1 import java.awt.*;
2 import java.util.Random;
3
4 public class Mouse {
5
6 public Integer over, down;
7 public Boolean facingLeft;
8 public Color mouseColor;
9
10 public Mouse( Integer x, Integer y, Color c ) {
11 over = x;
12 down = y;
13 facingLeft = false;
14 mouseColor = c;
15 }
16
17 public Mouse( Integer x, Integer y ) {
18 over = x;
19 down = y;
20 facingLeft = false;
21 mouseColor = Color.LIGHT_GRAY;
22 }
23
24 public Mouse() {
25 Random generator = new Random();
26 over = generator.nextInt(601) + 100;
27 down = generator.nextInt(501) + 50;
28 facingLeft = generator.nextBoolean();
29 Integer red, green, blue;
30 red = generator.nextInt(150);
31 green = generator.nextInt(150);
32 blue = generator.nextInt(150);
33 mouseColor = new Color(red, green, blue);
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 }
51
52 public void moveForward( Integer steps ) {
53 Integer direction = 1;
54 if (facingLeft) {
55 direction = -1;
56 }
57 over += direction*10*steps;
58 }
59
60 public void turnAround() {
61 facingLeft = !facingLeft;
62 }
63
64 public Integer getOver() {
65 return over;
66 }
67
68 public Integer getDown() {
69 return down;
70 }
71
72 public void draw(Graphics g){
73
74 g.setColor(mouseColor);
75 g.fillOval(over, down, 50, 20);
76 Polygon nose;
77 nose = new Polygon();
78 if (facingLeft) {
79 nose.addPoint(over+18, down);
80 nose.addPoint(over+18, down+20);
81 nose.addPoint(over-10, down+10);
82 g.fillPolygon(nose);
83 g.setColor(Color.BLACK);
84 g.setColor(Color.BLACK);
85 g.fillOval(over+12, down+4, 5, 5);
86 g.fillOval(over+12, down+11, 5, 5);
87 g.drawLine(over-5, down+8, over, down-5);
88 g.drawLine(over-5, down+8, over-3, down-5);
89 g.drawLine(over-5, down+8, over-6, down-5);
90 g.drawLine(over-5, down+12, over, down+25);
91 g.drawLine(over-5, down+12, over-3, down+25);
92 g.drawLine(over-5, down+12, over-6, down+25);
93 g.drawArc(over+20, down-10, 60, 20, 270, 90 );
94 }
95 else {
96 nose.addPoint(over+32, down);
97 nose.addPoint(over+32, down+20);
98 nose.addPoint(over+60, down+10);
99 g.fillPolygon(nose);
100 g.setColor(Color.BLACK);
101 g.fillOval(over+38, down+4, 5, 5);
102 g.fillOval(over+38, down+11, 5, 5);
103 g.drawLine(over+55, down+8, over+50, down-5);
104 g.drawLine(over+55, down+8, over+53, down-5);
105 g.drawLine(over+55, down+8, over+56, down-5);
106 g.drawLine(over+55, down+12, over+50, down+25);
107 g.drawLine(over+55, down+12, over+53, down+25);
108 g.drawLine(over+55, down+12, over+56, down+25);
109 g.drawArc(over-30, down-10, 60, 20, 180, 90 );
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