H:\CSC120\Java\lec30\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 void draw(Graphics g){
63
64 g.setColor(mouseColor);
65 g.fillOval(over, down, 50, 20);
66 Polygon nose;
67 nose = new Polygon();
68 if (facingLeft) {
69 nose.addPoint(over+18, down);
70 nose.addPoint(over+18, down+20);
71 nose.addPoint(over-10, down+10);
72 g.fillPolygon(nose);
73 g.setColor(Color.BLACK);
74 g.setColor(Color.BLACK);
75 g.fillOval(over+12, down+4, 5, 5);
76 g.fillOval(over+12, down+11, 5, 5);
77 g.drawLine(over-5, down+8, over, down-5);
78 g.drawLine(over-5, down+8, over-3, down-5);
79 g.drawLine(over-5, down+8, over-6, down-5);
80 g.drawLine(over-5, down+12, over, down+25);
81 g.drawLine(over-5, down+12, over-3, down+25);
82 g.drawLine(over-5, down+12, over-6, down+25);
83 g.drawArc(over+20, down-10, 60, 20, 270, 90 );
84 }
85 else {
86 nose.addPoint(over+32, down);
87 nose.addPoint(over+32, down+20);
88 nose.addPoint(over+60, down+10);
89 g.fillPolygon(nose);
90 g.setColor(Color.BLACK);
91 g.fillOval(over+38, down+4, 5, 5);
92 g.fillOval(over+38, down+11, 5, 5);
93 g.drawLine(over+55, down+8, over+50, down-5);
94 g.drawLine(over+55, down+8, over+53, down-5);
95 g.drawLine(over+55, down+8, over+56, down-5);
96 g.drawLine(over+55, down+12, over+50, down+25);
97 g.drawLine(over+55, down+12, over+53, down+25);
98 g.drawLine(over+55, down+12, over+56, down+25);
99 g.drawArc(over-30, down-10, 60, 20, 180, 90 );
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