1 var Ctrl = enchant.Class.create({
2 initialize: function (){
5 this.currentCommand = ECommand.WORLD_CURSOR;
6 this.backgroundMap = null;
10 this.objSprite = null;
12 init : function (game){
15 setDefined:function(def){
18 addObj: function(obj){
19 this.objArray[obj.id] = obj;
24 removeObj:function(obj){
25 delete this.objArray[obj.id];
27 setMenuBg: function (menuBg){
28 console.log("setMenuBg");
31 setBackgroundMap: function(backgroundMap){
32 this.backgroundMap = backgroundMap;
34 setPlayer: function(player){
37 setCurrentObjSprite: function(objSprite){
38 this.objSprite = objSprite;
40 getCurrentObjSprite: function(objSprite){
41 return this.objSprite;
44 * [setCurrentCommand description]
45 * @param {ECommand} cmd [description]
47 setCurrentCommand: function(cmd){
48 this.currentCommand = cmd;
50 getCurrentCommand: function(){
51 return this.currentCommand;
54 var CommandIcon = enchant.Class.create(enchant.Sprite,{
55 initialize: function (x, y, ecmd, index){
56 enchant.Sprite.call(this, x, y);
60 isCurrent: function(){
61 return (this.index * 2)%2 !== 0;
63 setCurrent: function(){
64 this.frame = (this.index * 2) + 1;
66 removeCurrent: function(){
67 this.frame = (this.index * 2);
70 var MangIcon = enchant.Class.create({
71 initialize: function (ctl, menuBg){
76 for (var key in ECommand) {
77 var value = ECommand[key];
78 this.cmdIcons[value] = new CommandIcon(40, 40, value, index);
79 this.cmdIcons[value].image = this.ctl.game.assets[EResPath.COMMAND];
80 this.cmdIcons[value].x = 40 * index;
81 this.cmdIcons[value].y = 4;
83 // odd equals current. even equals not current.
84 this.cmdIcons[value].frame = (this.ctl.getCurrentCommand() == value)? index * 2 + 1: index * 2;
85 menuBg.addChild(this.cmdIcons[value]);
86 this.cmdIcons[value].ontouchstart = function(obj){
87 // change command icons
88 var nowECmd = self.ctl.getCurrentCommand();
89 self.cmdIcons[nowECmd].removeCurrent();
90 if(!this.isCurrent()){
93 self.ctl.setCurrentCommand(this.index);
98 get: function(commandIndex){
99 return this.cmdIcons[commandIndex];
102 var ATouchEvent = enchant.Class.create({
103 // initialize: function (ctl){
106 touchstart: function(e){
108 touchmove: function(e){
110 touchend: function(e){
114 var WorldCursorTouchEvent = enchant.Class.create(ATouchEvent,{
115 initialize: function (ctl){
120 touchstart : function(e){
121 this.touchX = e.x - this.ctl.backgroundMap.x;
122 this.touchY = e.y - this.ctl.backgroundMap.y;
123 var tx = this.touchX;
124 var ty = this.touchY;
125 var nodes = this.ctl.getObjs();
126 for (var id in nodes) {
127 var node = nodes[id];
128 var nx = node.getX();
129 var ny = node.getY();
130 // if(node.id === undefined)continue;
131 if(node instanceof this.ctl.def.Yukkuri){
132 nx -= node.width / 2;
133 ny -= node.height / 2;
136 && (nx + node.width) >= tx
138 && (ny + node.height) >= ty
145 touchmove : function(e){
146 var backgroundMap = this.ctl.backgroundMap;
147 var game = this.ctl.game;
150 backgroundMap.x = e.x - this.touchX;
151 if(backgroundMap.x < -EFieldPos.WIDTH)backgroundMap.x = -EFieldPos.WIDTH;
152 if(backgroundMap.x > 0)backgroundMap.x = 0;
154 backgroundMap.y = e.y - this.touchY;
155 if(backgroundMap.y < -EFieldPos.HEIGHT)backgroundMap.y = -EFieldPos.HEIGHT;
156 if(backgroundMap.y > 0)backgroundMap.y = 0;
158 if(e.x > EFieldPos.WIDTH)game.touched = false;
159 else if(e.x < 30)game.touched = false;
161 touchend : function(e){
164 var WorldTargetTouchEvent = enchant.Class.create(ATouchEvent,{
165 initialize: function (ctl){
170 touchstart :function(e){
171 if(e.x >= 0 && e.x <= EFieldPos.WIDTH){
172 var backgroundMap = this.ctl.backgroundMap;
173 addEffect(this.ctl.backgroundMap, -backgroundMap.x + e.x, -backgroundMap.y + e.y);
174 this.ctl.player.tweet("ゆっくりりかいしたよ!");
175 var vx = (-backgroundMap.x + e.x) - this.ctl.player.getX() ;
176 var vy = (-backgroundMap.y + e.y) - this.ctl.player.getY() ;
178 // this.ctl.player.action.setStatus(EAction.MOVE_TO_COMMAND);
179 // new MoveCommandEvent({
182 // "action": this.ctl.player.action,
183 // "myYukkuri": this.ctl.player
186 // this.ctl.player.tweet("ゆー...いきたくないのぜ");
190 var WorldAppleTouchEvent = enchant.Class.create(ATouchEvent,{
191 initialize: function (ctl){
196 touchstart :function(e){
197 if(e.x >= 0 && e.x <= EFieldPos.WIDTH){
198 var backgroundMap = this.ctl.backgroundMap;
199 var tx = -backgroundMap.x + e.x;
200 var ty = -backgroundMap.y + e.y;
201 new ctl.def.Food("apple", tx, ty);
205 var WorldPlaceTouchEvent = enchant.Class.create(ATouchEvent,{
206 initialize: function (ctl){
211 touchstart :function(e){
212 if(e.x >= 0 && e.x <= EFieldPos.WIDTH){
213 var backgroundMap = this.ctl.backgroundMap;
214 var tx = -backgroundMap.x + e.x;
215 var ty = -backgroundMap.y + e.y;
216 new ctl.def.Place("tree", tx, ty);
222 var MangTouch = enchant.Class.create({
223 initialize: function (ctl){
225 var cursor = ECommand.WORLD_CURSOR;
227 this.mang[ECommand.WORLD_CURSOR] = new WorldCursorTouchEvent(ctl);
228 this.mang[ECommand.WORLD_TARGET] = new WorldTargetTouchEvent(ctl);
229 this.mang[ECommand.WORLD_APPLE] = new WorldAppleTouchEvent(ctl);
230 this.mang[ECommand.WORLD_PLACE] = new WorldPlaceTouchEvent(ctl);
233 return this.mang[ecmd];
236 var MangLabel = enchant.Class.create({
237 initialize: function (ctl, menuBg){
239 var labelGroup = new LabelGroup();
241 this.START_YPOS = GAME_HEIGHT / 2;
242 this.GAUGE_XPOS = 80;
243 this.menuBg = menuBg;
245 this.WIDTH_MARGIN = 4;
246 this.GAUGE_HEIGHT = 16;
247 var FONT = "18px 'Times New Roman'";
248 var COLOR = "#ffffff";
249 menuBg.image.context.font = FONT;
256 var TEXT = M.LABEL_YUKKURI;
257 var label = new Label(TEXT);
260 label.x = self.START_XPOS;
261 label.y = self.START_YPOS;
262 label.textWidth = menuBg.image.context.measureText(TEXT).width;
265 draw: function(yukkuriObj){
267 var gauge = 100 / yukkuriObj.param.maxYukkuri * yukkuriObj.param.yukkuri;
268 self.menuBg.image.context.fillStyle = "#ffffff";
269 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
270 self.menuBg.image.context.fillStyle = "#ff0000";
271 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
277 var TEXT = M.LABEL_HUNGRY;
278 var label = new Label(TEXT);
281 label.x = self.START_XPOS;
282 label.y = self.START_YPOS + 20;
283 label.textWidth = menuBg.image.context.measureText(TEXT).width;
286 draw: function(yukkuriObj){
287 var gauge =yukkuriObj.param.hungry;
288 self.menuBg.image.context.fillStyle = "#ffffff";
289 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
290 self.menuBg.image.context.fillStyle = "#bb7777";
291 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
297 var TEXT = M.LABEL_UNUN;
298 var label = new Label(TEXT);
301 label.x = self.START_XPOS;
302 label.y = self.START_YPOS + 40;
303 label.textWidth = menuBg.image.context.measureText(TEXT).width;
306 draw: function(yukkuriObj){
307 var gauge =yukkuriObj.param.unun;
308 self.menuBg.image.context.fillStyle = "#ffffff";
309 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
310 self.menuBg.image.context.fillStyle = "#bb7777";
311 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
317 var TEXT = M.LABEL_SLEEP;
318 var label = new Label(TEXT);
321 label.x = self.START_XPOS;
322 label.y = self.START_YPOS + 60;
323 label.textWidth = menuBg.image.context.measureText(TEXT).width;
326 draw: function(yukkuriObj){
327 var gauge =yukkuriObj.param.sleep;
328 self.menuBg.image.context.fillStyle = "#ffffff";
329 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
330 self.menuBg.image.context.fillStyle = "#bb7777";
331 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
337 var TEXT = M.LABEL_STRESS;
338 var label = new Label(TEXT);
341 label.x = self.START_XPOS;
342 label.y = self.START_YPOS + 80;
343 label.textWidth = menuBg.image.context.measureText(TEXT).width;
346 draw: function(yukkuriObj){
347 var gauge =yukkuriObj.param.stress;
348 self.menuBg.image.context.fillStyle = "#ffffff";
349 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
350 self.menuBg.image.context.fillStyle = "#bb7777";
351 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
356 this.menuBg.image.context.fillStyle = '#ff0000';
357 for(var key in this.labelParams){
358 var labelObj = this.labelParams[key];
360 labelGroup.addChild(labelObj.label);
362 menuBg.addChild(labelGroup);
364 draw: function(yukkuriObj){
365 for(var key in this.labelParams){
366 var labelObj = this.labelParams[key];
367 labelObj.draw(yukkuriObj);
371 var MangMsg = enchant.Class.create({
372 initialize: function (ctl){
375 output:function(yukkuri, emsg, targetYukkuri){
376 //var M = yukkuri.getMsg();
377 if(emsg == EMsg.WALK){
379 yukkuri.tweet(M.WALK1);
381 else if(rand(4) === 1){
382 yukkuri.tweet(M.WALK2);
384 else if(rand(4) === 2){
385 yukkuri.tweet(M.WALK3);
387 else if(rand(4) === 3){
388 yukkuri.tweet(M.WALK4);
391 else if(emsg == EMsg.EAT){
393 yukkuri.tweet(M.EAT1);
395 else if(rand(3) === 1){
396 yukkuri.tweet(M.EAT2);
398 else if(rand(3) === 2){
399 yukkuri.tweet(M.EAT3);
402 else if(emsg == EMsg.GET_UP){
403 yukkuri.tweet(M.GET_UP1);
405 else if(emsg == EMsg.SLEEP){
406 yukkuri.tweet(M.SLEEP1);
408 else if(emsg == EMsg.DEAD){
409 yukkuri.tweet(M.DEAD1);
411 else if(emsg == EMsg.UNUN){
413 yukkuri.tweet(M.UNUN1);
415 yukkuri.tweet(M.UNUN2);
418 else if(emsg == EMsg.UNUN_END){
419 yukkuri.tweet(M.UNUN_END1);
421 else if(emsg == EMsg.UNUN_SMELL){
422 yukkuri.tweet(M.UNUN_SPELL1);
424 else if(emsg == EMsg.EAT_FAILED){
425 yukkuri.tweet(M.EAT_FAILED1);
427 else if(emsg == EMsg.SAY_HELLO){
428 if(yukkuri.getAddress(targetYukkuri) === null){
429 yukkuri.tweet(M.SAY_HELLO1);
431 yukkuri.tweet(M.SAY_HELLO2);
434 else if(emsg == EMsg.TARGETING_EAT){
435 yukkuri.tweet(M.TARGETING_EAT1);
437 else if(emsg == EMsg.DECLARE_PLACE){
438 yukkuri.tweet(M.DECLARE_PLACE1);
444 // var MangLabel = enchant.Class.create({
445 // initialize: function (ctl, menuBg){
447 // var labelGroup = new LabelGroup();
448 // this.START_XPOS = 4;
449 // this.START_YPOS = GAME_HEIGHT / 2;
450 // this.menuBg = menuBg;
451 // this.widthArr = [];
452 // this.WIDTH_MARGIN = 4;
453 // var FONT = "14px 'Times New Roman'";
454 // var COLOR = "#ffffff";
455 // menuBg.image.context.font = FONT;
458 // "yukkuri" : function(){
459 // var TEXT = "ゆっくり";
460 // var label = new Label(TEXT);
461 // label.color = COLOR;
462 // label.font = FONT;
463 // label.x = self.START_XPOS;
464 // label.y = self.START_YPOS;
465 // label.textWidth = menuBg.image.context.measureText(TEXT).width;
467 // "hungry" : function(){
469 // var label = new Label(TEXT);
470 // label.color = COLOR;
471 // label.font = FONT;
472 // label.x = self.START_XPOS;
473 // label.y = self.START_YPOS + 20;
474 // label.textWidth = menuBg.image.context.measureText(TEXT).width;
479 // this.labels["yukkuri"]();
480 // console.log(this.labels["yukkuri"]().textWidth);
481 // // for(var key in this.labels){
482 // // console.log(key);
483 // // var label = this.labels[key]();
484 // // // labelGroup.addChild(label);
486 // // var width = this.widthArr['yukkuri'];
487 // // this.menuBg.image.context.fillStyle = '#ff0000';
488 // // this.menuBg.image.context.fillRect(this.START_XPOS + width, this.START_YPOS, 100, 30);
489 // // menuBg.addChild(labelGroup);
492 // label = this.labels[key]();
493 // this.menuBg.image.context.fillStyle = '#ff0000';
494 // this.menuBg.image.context.fillRect(label.x, label.y, 100, 14);