• R/O
  • SSH
  • HTTPS

zenjiro: コミット


コミットメタ情報

リビジョン112 (tree)
日時2007-05-06 15:47:05
作者zenjiro

ログメッセージ

- Eclilpse 3.2.1で開いたらいろいろ怒られたので、黄色い波線が出ないように修正しました。
- 削除モードでチェックポイントも削除できるようにしました。
- ファイルを開くときに、ディレクトリが表示されない不具合を修正しました。

この行以下は無視されます --

M Editor$1.class
M Editor$3.class
M Editor$5.class
M Editor$7.class
M Editor$9.class
M Editor$20.class
M Editor$22.class
M Editor$Mode.class
M Editor$24.class
M Editor$26.class
M Editor$28.class
M ShortSCurveRail.java
M Stage.java
M Editor.class
M Editor$10.class
M Editor$12.class
M Editor$31.class
M Editor$14.class
M Editor$33.class
M Editor$16.class
M Editor.java
M Rail.java
M Editor$18.class
M Editor$2.class
M Util.class
M Editor$4.class
M Editor$6.class
M Editor$8.class
M Rail.class
M Editor$21.class
M Editor$23.class
M Editor$25.class
M Editor$27.class
M Editor$29.class
M NetKartFileFilter.class
M Const.class
M Util.java
M NetKartFileFilter.java
M Editor$11.class
M Editor$30.class
M Editor$13.class
M Editor$32.class
M Editor$15.class
M Editor$17.class
M Const.java
M CheckPoint.java
M Editor$19.class
M Point.java

変更サマリ

差分

--- netkart/trunk/ShortSCurveRail.java (revision 111)
+++ netkart/trunk/ShortSCurveRail.java (revision 112)
@@ -24,7 +24,7 @@
2424
2525 public Shape getShape() {
2626 final GeneralPath path = new GeneralPath();
27- final float fatness = (float) (Const.RAIL_WIDTH / 4);
27+ final float fatness = Const.RAIL_WIDTH / 4;
2828 path.moveTo(0, -Const.RAIL_WIDTH / 2);
2929 path.curveTo(50 + fatness, -Const.RAIL_WIDTH / 2, 50 + fatness, 50 - Const.RAIL_WIDTH / 2, 100, 50 - Const.RAIL_WIDTH / 2);
3030 path.moveTo(100, 50 + Const.RAIL_WIDTH / 2);
@@ -34,7 +34,7 @@
3434
3535 public Shape getFill() {
3636 final GeneralPath path = new GeneralPath();
37- final float fatness = (float) (Const.RAIL_WIDTH / 4);
37+ final float fatness = Const.RAIL_WIDTH / 4;
3838 path.moveTo(0, -Const.RAIL_WIDTH / 2);
3939 path.curveTo(50 + fatness, -Const.RAIL_WIDTH / 2, 50 + fatness, 50 - Const.RAIL_WIDTH / 2, 100, 50 - Const.RAIL_WIDTH / 2);
4040 path.lineTo(100, 50 + Const.RAIL_WIDTH / 2);
--- netkart/trunk/Stage.java (revision 111)
+++ netkart/trunk/Stage.java (revision 112)
@@ -94,7 +94,7 @@
9494 * @return チェックポイントの一覧
9595 */
9696 public List<CheckPoint> getCheckPoints() {
97- return checkPoints;
97+ return this.checkPoints;
9898 }
9999
100100 /**
--- netkart/trunk/Editor.java (revision 111)
+++ netkart/trunk/Editor.java (revision 112)
@@ -49,10 +49,6 @@
4949 /**
5050 * ステージエディタです。
5151 * @author zenjiro
52- *
53- * - スタート位置を作りたい。
54- * - ステージの大きさを固定にしたい。
55- * - 表示倍率を変更できるようにしたい。
5652 */
5753 public class Editor {
5854 /**
@@ -65,9 +61,9 @@
6561 */
6662 ADD_RAIL,
6763 /**
68- * レールを削除するモード
64+ * 削除するモード
6965 */
70- DELETE_RAIL,
66+ DELETE,
7167 /**
7268 * チェックポイントを追加するモード
7369 */
@@ -77,22 +73,27 @@
7773 /**
7874 * モード
7975 */
80- private static Mode mode;
76+ static Mode mode;
8177
8278 /**
8379 * 削除するレール
8480 */
85- private static Rail deleteRail;
81+ static Rail deleteRail;
8682
8783 /**
84+ * 削除するチェックポイント
85+ */
86+ static CheckPoint deleteCheckPoint;
87+
88+ /**
8889 * 編集中のファイル
8990 */
90- private static File file;
91+ static File file;
9192
9293 /**
9394 * 変更されたかどうか
9495 */
95- private static boolean isModified;
96+ static boolean isModified;
9697
9798 /**
9899 * メインメソッドです。
@@ -144,15 +145,14 @@
144145 {
145146 int i = 0;
146147 for (final CheckPoint checkPoint : stage.getCheckPoints()) {
147- final AffineTransform transform = new AffineTransform();
148- transform.translate(checkPoint.location.getX(), checkPoint.location.getY());
149- transform.rotate(checkPoint.angle);
150- final Shape rectangle = transform.createTransformedShape(new Rectangle2D.Double(-10,
151- -Const.RAIL_WIDTH / 2, 20, Const.RAIL_WIDTH));
148+ final Shape rectangle = Util.getFill(checkPoint);
152149 g2.setColor(new Color(250, 250, 250));
153150 g2.fill(rectangle);
154151 g2.setColor(Color.BLACK);
155152 g2.draw(rectangle);
153+ final AffineTransform transform = new AffineTransform();
154+ transform.translate(checkPoint.location.getX(), checkPoint.location.getY());
155+ transform.rotate(checkPoint.angle);
156156 if (i == 0) {
157157 final GeneralPath arrow = new GeneralPath();
158158 arrow.moveTo(-20, 0);
@@ -165,13 +165,15 @@
165165 arrow.closePath();
166166 g2.fill(transform.createTransformedShape(arrow));
167167 }
168- final Shape string = g2.getFont().createGlyphVector(g2.getFontRenderContext(),
169- String.valueOf(i)).getOutline();
170- transform.rotate(-checkPoint.angle);
171- transform
172- .translate(-string.getBounds2D().getWidth() / 2, -string.getBounds2D().getHeight() / 2);
173- transform.scale(1, -1);
174- g2.fill(transform.createTransformedShape(string));
168+ if (checkPoint != deleteCheckPoint) {
169+ final Shape string = g2.getFont().createGlyphVector(g2.getFontRenderContext(),
170+ String.valueOf(i)).getOutline();
171+ transform.rotate(-checkPoint.angle);
172+ transform.translate(-string.getBounds2D().getWidth() / 2,
173+ -string.getBounds2D().getHeight() / 2);
174+ transform.scale(1, -1);
175+ g2.fill(transform.createTransformedShape(string));
176+ }
175177 i++;
176178 }
177179 }
@@ -191,7 +193,7 @@
191193 g2.draw(transform.createTransformedShape(temporaryRail.type.getShape()));
192194 }
193195 break;
194- case DELETE_RAIL:
196+ case DELETE:
195197 g2.setStroke(new BasicStroke(2));
196198 if (deleteRail != null) {
197199 final AffineTransform transform = new AffineTransform();
@@ -204,6 +206,12 @@
204206 g2.fill(transform.createTransformedShape(deleteRail.type.getFill()));
205207 g2.setColor(Const.COLOR_DELETE_DRAW);
206208 g2.draw(transform.createTransformedShape(deleteRail.type.getShape()));
209+ } else if (deleteCheckPoint != null) {
210+ final Shape rectangle = Util.getFill(deleteCheckPoint);
211+ g2.setColor(Const.COLOR_DELETE_FILL);
212+ g2.fill(rectangle);
213+ g2.setColor(Const.COLOR_DELETE_DRAW);
214+ g2.draw(rectangle);
207215 }
208216 break;
209217 case ADD_CHECK_POINT:
@@ -309,14 +317,23 @@
309317 }
310318 }
311319 break;
312- case DELETE_RAIL:
320+ case DELETE:
321+ deleteCheckPoint = null;
313322 deleteRail = null;
314- for (final Rail rail : stage.getRails()) {
315- if (Util.getFill(rail).contains(mouseLocation.toPoint2D())) {
316- deleteRail = rail;
323+ for (final CheckPoint checkPoint : stage.getCheckPoints()) {
324+ if (Util.getFill(checkPoint).contains(mouseLocation.toPoint2D())) {
325+ deleteCheckPoint = checkPoint;
317326 break;
318327 }
319328 }
329+ if (deleteCheckPoint == null) {
330+ for (final Rail rail : stage.getRails()) {
331+ if (Util.getFill(rail).contains(mouseLocation.toPoint2D())) {
332+ deleteRail = rail;
333+ break;
334+ }
335+ }
336+ }
320337 break;
321338 case ADD_CHECK_POINT:
322339 minDistance = Const.EDITOR_GRID;
@@ -380,12 +397,17 @@
380397 }
381398 }
382399 break;
383- case DELETE_RAIL:
400+ case DELETE:
384401 if (deleteRail != null) {
385402 stage.getRails().remove(deleteRail);
386403 deleteRail = null;
387404 isModified = true;
388405 frame.setTitle(Util.getTitle(file, isModified));
406+ } else if (deleteCheckPoint != null) {
407+ stage.getCheckPoints().remove(deleteCheckPoint);
408+ deleteCheckPoint = null;
409+ isModified = true;
410+ frame.setTitle(Util.getTitle(file, isModified));
389411 }
390412 break;
391413 case ADD_CHECK_POINT:
@@ -850,7 +872,7 @@
850872 deleteItem.addActionListener(new ActionListener() {
851873 public void actionPerformed(ActionEvent e) {
852874 deleteRadio.setSelected(true);
853- mode = Mode.DELETE_RAIL;
875+ mode = Mode.DELETE;
854876 panel.repaint();
855877 }
856878 });
@@ -890,7 +912,7 @@
890912 * @param title ダイアログボックスのタイトルバーに表示する文字列
891913 * @return 次に進んでも良いかどうか
892914 */
893- private static boolean askIfSave(final JFrame frame, final JMenuItem saveItem, final String title) {
915+ static boolean askIfSave(final JFrame frame, final JMenuItem saveItem, final String title) {
894916 if (isModified) {
895917 switch (JOptionPane.showConfirmDialog(frame, "\"" + (file == null ? "新規ステージ" : file)
896918 + "\"は修正されています。保存しますか?", title, JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE)) {
--- netkart/trunk/Rail.java (revision 111)
+++ netkart/trunk/Rail.java (revision 112)
@@ -59,6 +59,17 @@
5959 this.isReverse = rail.isReverse;
6060 }
6161
62+ /**
63+ * レールをコピーします。
64+ * @param rail レール
65+ */
66+ public void setRail(final Rail rail) {
67+ this.type = rail.type;
68+ this.location = rail.location;
69+ this.angle = rail.angle;
70+ this.isReverse = rail.isReverse;
71+ }
72+
6273 @Override
6374 public String toString() {
6475 return "(" + this.type.getClass().getName() + ", " + this.location + ", " + this.angle + ", " + this.isReverse
--- netkart/trunk/Util.java (revision 111)
+++ netkart/trunk/Util.java (revision 112)
@@ -1,5 +1,6 @@
11 import java.awt.Shape;
22 import java.awt.geom.AffineTransform;
3+import java.awt.geom.Rectangle2D;
34 import java.io.File;
45
56 /**
@@ -48,7 +49,7 @@
4849 public static String getTitle(final File file, final boolean isModified) {
4950 return (isModified ? "*" : "") + (file == null ? "新規ステージ" : file.toString()) + " - NetKartステージエディタ";
5051 }
51-
52+
5253 /**
5354 * @param rail レール
5455 * @return レールの塗りつぶし
@@ -63,4 +64,16 @@
6364 return transform.createTransformedShape(rail.type.getFill());
6465 }
6566
67+ /**
68+ * @param checkPoint チェックポイント
69+ * @return チェックポイントの塗りつぶし
70+ */
71+ public static Shape getFill(final CheckPoint checkPoint) {
72+ final AffineTransform transform = new AffineTransform();
73+ transform.translate(checkPoint.location.getX(), checkPoint.location.getY());
74+ transform.rotate(checkPoint.angle);
75+ return transform.createTransformedShape(new Rectangle2D.Double(-Const.EDITOR_CHECK_POINT_WIDTH / 2,
76+ -Const.RAIL_WIDTH / 2, Const.EDITOR_CHECK_POINT_WIDTH, Const.RAIL_WIDTH));
77+ }
78+
6679 }
--- netkart/trunk/NetKartFileFilter.java (revision 111)
+++ netkart/trunk/NetKartFileFilter.java (revision 112)
@@ -9,7 +9,7 @@
99 public class NetKartFileFilter extends FileFilter {
1010 @Override
1111 public boolean accept(final File file) {
12- return file.getName().toLowerCase().endsWith(".netkart");
12+ return file.isDirectory() || file.getName().toLowerCase().endsWith(".netkart");
1313 }
1414
1515 @Override
--- netkart/trunk/Const.java (revision 111)
+++ netkart/trunk/Const.java (revision 112)
@@ -42,4 +42,9 @@
4242 */
4343 public static final Font EDITOR_FONT = new Font("Sans", Font.BOLD, 50);
4444
45+ /**
46+ * チェックポイントの幅
47+ */
48+ public static final int EDITOR_CHECK_POINT_WIDTH = 20;
49+
4550 }
--- netkart/trunk/CheckPoint.java (revision 111)
+++ netkart/trunk/CheckPoint.java (revision 112)
@@ -40,7 +40,7 @@
4040 * @return 向き
4141 */
4242 public double getAngle() {
43- return angle;
43+ return this.angle;
4444 }
4545
4646 /**
@@ -54,7 +54,7 @@
5454 * @return 位置
5555 */
5656 public Point getLocation() {
57- return location;
57+ return this.location;
5858 }
5959
6060 /**
--- netkart/trunk/Point.java (revision 111)
+++ netkart/trunk/Point.java (revision 112)
@@ -36,7 +36,7 @@
3636 * @return x座標
3737 */
3838 public double getX() {
39- return x;
39+ return this.x;
4040 }
4141
4242 /**
@@ -50,7 +50,7 @@
5050 * @return y座標
5151 */
5252 public double getY() {
53- return y;
53+ return this.y;
5454 }
5555
5656 /**
旧リポジトリブラウザで表示