..\CSC120\Java\lec32_f22\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 public void moveForward( Integer steps ) {
51 Integer direction = 1;
52 if (facingLeft) {
53 direction = -1;
54 }
55 over += direction*10*steps;
56 }
57
58 public void turnAround() {
59 facingLeft = !facingLeft;
60 }
61
62 public Integer getOver() {
63 return over;
64 }
65
66 public Integer getDown() {
67 return down;
68 }
69
70 public void draw(Graphics g){
71
72 g.setColor(mouseColor);
73 g.fillOval(over, down, 50, 20);
74 Polygon nose;
75 nose = new Polygon();
76 if (facingLeft) {
77 nose.addPoint(over+18, down);
78 nose.addPoint(over+18, down+20);
79 nose.addPoint(over-10, down+10);
80 g.fillPolygon(nose);
81 g.setColor(Color.BLACK);
82 g.setColor(Color.BLACK);
83 g.fillOval(over+12, down+4, 5, 5);
84 g.fillOval(over+12, down+11, 5, 5);
85 g.drawLine(over-5, down+8, over, down-5);
86 g.drawLine(over-5, down+8, over-3, down-5);
87 g.drawLine(over-5, down+8, over-6, down-5);
88 g.drawLine(over-5, down+12, over, down+25);
89 g.drawLine(over-5, down+12, over-3, down+25);
90 g.drawLine(over-5, down+12, over-6, down+25);
91 g.drawArc(over+20, down-10, 60, 20, 270, 90 );
92 }
93 else {
94 nose.addPoint(over+32, down);
95 nose.addPoint(over+32, down+20);
96 nose.addPoint(over+60, down+10);
97 g.fillPolygon(nose);
98 g.setColor(Color.BLACK);
99 g.fillOval(over+38, down+4, 5, 5);
100 g.fillOval(over+38, down+11, 5, 5);
101 g.drawLine(over+55, down+8, over+50, down-5);
102 g.drawLine(over+55, down+8, over+53, down-5);
103 g.drawLine(over+55, down+8, over+56, down-5);
104 g.drawLine(over+55, down+12, over+50, down+25);
105 g.drawLine(over+55, down+12, over+53, down+25);
106 g.drawLine(over+55, down+12, over+56, down+25);
107 g.drawArc(over-30, down-10, 60, 20, 180, 90 );
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