1 var FormSprite = enchant.Class.create({
2 initialize: function (){
4 this.formSpriteArray = [];
9 addChild:function(sprite, index, attr){
10 this.add(sprite, index, attr);
11 sprite.baseX = sprite.x;
12 sprite.baseY = sprite.y;
13 sprite.anim = new Animation(sprite);
15 App.backgroundMap.addChild(sprite);
17 addYukkuri: function(formSprite){
18 var addIndex = function (){
24 var index = addIndex();
25 this.formSpriteArray[index] = formSprite;
27 // addChildAll:function(){
28 // for(var i=0;i<this.spriteArray.length;i++){
29 // if(this.spriteArray[i] === undefined)continue;
30 // this.spriteArray[i].baseX = this.spriteArray[i].x;
31 // this.spriteArray[i].baseY = this.spriteArray[i].y;
32 // this.spriteArray[i].anim = new Animation(this.spriteArray[i]);
33 // this.spriteArray[i].id = guid();
34 // App.backgroundMap.addChild(this.spriteArray[i]);
39 mainIndexFlg:true/false
40 shadowIndexFlg:true/false
44 add : function(sprite, index, attr){
45 if(attr === undefined)attr = {};
46 this.spriteArray[index] = sprite;
47 this.spriteArray[index].type = attr.type;
48 this.spriteArray[index].scaleValue = attr.scaleValue;
49 this.spriteArray[index].spname = attr.spname;
50 if(attr.mainIndexFlg){
51 this.mainIndex = index;
53 if(attr.shadowIndexFlg){
54 this.shadowIndex = index;
56 // this.spriteArray.push(sprite);
58 remove: function (sprite){
59 this.spriteArray.remove(sprite);
62 for(var i=0;i<this.spriteArray.length;i++){
63 if(this.spriteArray[i] === undefined)continue;
64 var spr = this.spriteArray[i];
69 for(var i=0;i<this.spriteArray.length;i++){
70 if(this.spriteArray[i] === undefined)continue;
71 var spr = this.spriteArray[i];
77 attr: targetTypes 許可するtypeを配列で指定する
79 addXAttr: function(x, attr){
80 for(var i=0;i<this.spriteArray.length;i++){
81 if(this.spriteArray[i] === undefined)continue;
82 var spr = this.spriteArray[i];
83 if(!attr || attr.targetTypes.indexOf(spr.type) >= 0){
88 addYAttr: function(y, attr){
89 for(var i=0;i<this.spriteArray.length;i++){
90 if(this.spriteArray[i] === undefined)continue;
91 var spr = this.spriteArray[i];
92 if(!attr || attr.targetTypes.indexOf(spr.type) >= 0){
97 setXAttr: function(x, attr){
98 for(var i=0;i<this.spriteArray.length;i++){
99 if(this.spriteArray[i] === undefined)continue;
100 var spr = this.spriteArray[i];
101 if(!attr || attr.targetTypes.indexOf(spr.type) >= 0){
106 setYAttr: function(y, attr){
107 for(var i=0;i<this.spriteArray.length;i++){
108 if(this.spriteArray[i] === undefined)continue;
109 var spr = this.spriteArray[i];
110 if(!attr || attr.targetTypes.indexOf(spr.type) >= 0){
115 calcField: function(field, value, attr){
116 for(var i=0;i<this.spriteArray.length;i++){
117 if(this.spriteArray[i] === undefined)continue;
118 var spr = this.spriteArray[i];
119 if(!attr || attr.types.indexOf(spr.type) >= 0){
120 if(attr.calc == "equal"){
123 else if(attr.calc == "add"){
132 getMainSprite: function(){
133 return this.spriteArray[this.mainIndex];
135 getShadowSprite: function(){
136 return this.spriteArray[this.shadowIndex];
138 getMainShadowMarginY: function(){
139 if(!this.getShadowSprite())return 0;
140 return Math.round(this.getMainSprite().y - this.getShadowSprite().y);
143 return Math.round(this.spriteArray[this.mainIndex].x,2) - this.spriteArray[this.mainIndex].baseX;
146 return Math.round(this.spriteArray[this.mainIndex].y,2) - this.spriteArray[this.mainIndex].baseY;
149 for(var i=0;i<this.spriteArray.length;i++){
150 if(this.spriteArray[i] === undefined)continue;
151 var spr = this.spriteArray[i];
152 spr.x = x + spr.baseX;
156 for(var i=0;i<this.spriteArray.length;i++){
157 if(this.spriteArray[i] === undefined)continue;
158 var spr = this.spriteArray[i];
159 spr.y = y + spr.baseY;
162 addBodyY: function(y){
163 for(var i=0;i<this.spriteArray.length;i++){
164 if(this.spriteArray[i] === undefined)continue;
165 var spr = this.spriteArray[i];
166 if(spr.type == "body" || spr.type == "budge"){
167 this.spriteArray[i].y += y;
171 setFixBudgeLeft: function (index){
172 this.spriteArray[index].x = this.spriteArray[this.mainIndex].x + this.spriteArray[this.mainIndex].width / 3 * 2;
173 this.spriteArray[index].scaleX = 1;
175 setFixBudgeRight: function (index){
176 this.spriteArray[index].x = this.spriteArray[this.mainIndex].x;
178 setFixKukiLeft: function (){
179 this.calcField("x", this.getMainSprite().x - 30, {types:["kuki"],calc:"equal"});
181 setFixKukiRight: function (){
182 this.calcField("x", this.getMainSprite().x + 30, {types:["kuki"],calc:"equal"});
184 formScaleX: function(x){
185 for(var i=0;i<this.spriteArray.length;i++){
186 if(this.spriteArray[i] === undefined)continue;
187 var spr = this.spriteArray[i];
188 if(spr.type == "tweet")continue;
192 formScaleY: function(y){
193 for(var i=0;i<this.spriteArray.length;i++){
194 if(this.spriteArray[i] === undefined)continue;
195 var spr = this.spriteArray[i];
196 if(spr.type == "tweet")continue;
200 // tlTween:function(params){
201 // console.log("tlTween");
202 // for(var i=0;i<this.spriteArray.length;i++){
203 // var spr = this.spriteArray[i];
204 // spr.tl.tween(params);
207 tlMoveBy:function(x, y, time, eventFunctions){
209 for(var i=0;i<this.spriteArray.length;i++){
210 if(this.spriteArray[i] === undefined)continue;
211 var spr = this.spriteArray[i];
212 if(spr.type == "tweet")continue;
217 x: this.paramX(spr.x, addX),
218 y: this.paramY(spr.y, addY),
220 easing: enchant.Easing.SIN_EASEINOUT
222 if(eventFunctions !== undefined && i == this.mainIndex){
223 for(var key in eventFunctions){
224 params[key] = eventFunctions[key];
227 spr.tl.tween(params);
230 paramX : function(x, addX){
233 paramY : function(y, addY){
236 tlMoveTo:function(x, y, time, easing ){
237 for(var i=0;i<this.spriteArray.length;i++){
238 if(this.spriteArray[i] === undefined)continue;
239 var spr = this.spriteArray[i];
240 spr.tl.moveTo(x, y, time, easing);
243 tlQueueLength:function(){
244 return this.spriteArray[this.mainIndex].tl.queue.length;
246 formRunAnimation: function(){
247 //影とボディの差異が強くなったら修正する
248 if(this.getMainShadowMarginY() < -8)this.addBodyY(+1);
249 else if(this.getMainShadowMarginY() > 0)this.addBodyY(-1);
251 for(var i=0;i<this.spriteArray.length;i++){
252 if(this.spriteArray[i] === undefined)continue;
253 var spr = this.spriteArray[i];
254 if(spr.type == "body"
255 || spr.type == "budge"
256 || spr.type == "kuki"
262 formStartAnimation: function(){
263 for(var i=0;i<this.spriteArray.length;i++){
264 if(this.spriteArray[i] === undefined)continue;
265 var spr = this.spriteArray[i];
266 if(spr.type == "body" || spr.type == "budge" || spr.type == "kuki"){
267 spr.anim.startAnim();
271 formStopAnimation: function(){
272 for(var i=0;i<this.spriteArray.length;i++){
273 if(this.spriteArray[i] === undefined)continue;
274 var spr = this.spriteArray[i];
275 if(spr.type == "body" || spr.type == "budge" || spr.type == "kuki"){
280 scale: function(_scaleX,_scaleY){
281 for(var i=0;i<this.spriteArray.length;i++){
282 if(this.spriteArray[i] === undefined)continue;
283 var spr = this.spriteArray[i];
284 if(spr.type == "tweet")continue;
285 spr.scale(_scaleX, _scaleY);