Fixed top-right corner (22).
[chise/kage.git] / engine / kage.js
1 function Kage(){\r
2   // method\r
3   function makeGlyph(polygons, target){ // void\r
4     var buhin = this.kBuhin.search(target);\r
5     if(buhin != ""){\r
6       this.drawGlyph(polygons, buhin);\r
7     }\r
8   }\r
9   Kage.prototype.makeGlyph = makeGlyph;\r
10 \r
11   function drawGlyph(polygons, glyph){ // void\r
12     // [glyph] : [stroke]$[stroke]$.....\r
13     // [stroke] : [column]:[column]:.....\r
14     var strokes = glyph.split("$");\r
15     for(var i = 0; i < strokes.length; i++){\r
16       var columns = strokes[i].split(":");\r
17       if(Math.floor(columns[0]) != 99){\r
18         dfDrawFont(this, polygons,\r
19                    Math.floor(columns[0]),\r
20                    Math.floor(columns[1]), Math.floor(columns[2]),\r
21                    Math.floor(columns[3]), Math.floor(columns[4]),\r
22                    Math.floor(columns[5]), Math.floor(columns[6]),\r
23                    Math.floor(columns[7]), Math.floor(columns[8]),\r
24                    Math.floor(columns[9]), Math.floor(columns[10]));\r
25       } else {\r
26         var buhin = this.kBuhin.search(columns[7]);\r
27         if(buhin != ""){\r
28           this.drawBuhin(polygons, buhin,\r
29                          Math.floor(columns[3]),\r
30                          Math.floor(columns[4]),\r
31                          Math.floor(columns[5]),\r
32                          Math.floor(columns[6]));\r
33         }\r
34       }\r
35     }\r
36   }\r
37   Kage.prototype.drawGlyph = drawGlyph;\r
38   \r
39   function drawBuhin(polygons, glyph, x1, y1, x2, y2){ // void\r
40     var strokes = glyph.split("$");\r
41     for(var i = 0; i < strokes.length; i++){\r
42       var columns = strokes[i].split(":");\r
43       if(Math.floor(columns[0]) != 99){\r
44         dfDrawFont(this, polygons,\r
45                    Math.floor(columns[0]),\r
46                    Math.floor(columns[1]),\r
47                    Math.floor(columns[2]),\r
48                    x1 + Math.floor(columns[3]) * (x2 - x1) / 200,\r
49                    y1 + Math.floor(columns[4]) * (y2 - y1) / 200,\r
50                    x1 + Math.floor(columns[5]) * (x2 - x1) / 200,\r
51                    y1 + Math.floor(columns[6]) * (y2 - y1) / 200,\r
52                    x1 + Math.floor(columns[7]) * (x2 - x1) / 200,\r
53                    y1 + Math.floor(columns[8]) * (y2 - y1) / 200,\r
54                    x1 + Math.floor(columns[9]) * (x2 - x1) / 200,\r
55                    y1 + Math.floor(columns[10]) * (y2 - y1) / 200);\r
56       } else {\r
57         var buhin = this.kBuhin.search(columns[7]);\r
58         if(buhin != ""){\r
59           this.drawBuhin(polygons, buhin,\r
60                          x1 + Math.floor(columns[3]) * (x2 - x1) / 200,\r
61                          y1 + Math.floor(columns[4]) * (y2 - y1) / 200,\r
62                          x1 + Math.floor(columns[5]) * (x2 - x1) / 200,\r
63                          y1 + Math.floor(columns[6]) * (y2 - y1) / 200);\r
64         }\r
65       }\r
66     }\r
67   }\r
68   Kage.prototype.drawBuhin = drawBuhin;\r
69   \r
70   //properties\r
71   Kage.prototype.kMincho = 0;\r
72   Kage.prototype.kGothic = 1;\r
73   this.kShotai = this.kMincho;\r
74   this.kMage = 10;\r
75   this.kRate = 100;\r
76   this.kMinWidthY = 2;\r
77   this.kMinWidthT = 6;\r
78   this.kWidth = 5;\r
79   this.kKakato = 3;\r
80   //has KAKATO = 2, no KAKATO = 1\r
81   this.kL2RDfatten = 1.1;\r
82   this.kBuhin = new Buhin();\r
83   \r
84   return this;\r
85 }\r