1 var Ctrl = enchant.Class.create({
2 initialize: function (){
5 this.currentCommand = ECommand.WORLD_CURSOR;
6 this.backgroundMap = null;
10 this.objSprite = null;
11 this.mangTouch = null;
13 init : function (game){
16 setDefined:function(def){
19 addObj: function(obj){
20 this.objArray[obj.id] = obj;
25 removeObj:function(obj){
26 delete this.objArray[obj.id];
28 setMenuBg: function (menuBg){
29 console.log("setMenuBg");
32 setBackgroundMap: function(backgroundMap){
33 this.backgroundMap = backgroundMap;
35 setPlayer: function(player){
38 setCurrentObjSprite: function(objSprite){
39 this.objSprite = objSprite;
41 getCurrentObjSprite: function(objSprite){
42 return this.objSprite;
44 isCollision : function (e, node){
45 var ex = e.x - ctl.backgroundMap.x;
46 var ey = e.y - ctl.backgroundMap.y;
47 if(node.getX() <= ex && node.getX() + node.width >= ex
48 && node.getY() <= ey && node.getY() + node.height >= ey){
54 * [setCurrentCommand description]
55 * @param {ECommand} cmd [description]
57 setCurrentCommand: function(cmd){
58 this.currentCommand = cmd;
60 getCurrentCommand: function(){
61 return this.currentCommand;
64 var CommandIcon = enchant.Class.create(enchant.Sprite,{
65 initialize: function (x, y, ecmd, index){
66 enchant.Sprite.call(this, x, y);
70 isCurrent: function(){
71 return (this.index * 2)%2 !== 0;
73 setCurrent: function(){
74 this.frame = (this.index * 2) + 1;
76 removeCurrent: function(){
77 this.frame = (this.index * 2);
80 var MangIcon = enchant.Class.create({
81 initialize: function (ctl, menuBg){
86 for (var key in ECommand) {
87 var value = ECommand[key];
88 this.cmdIcons[value] = new CommandIcon(40, 40, value, index);
89 this.cmdIcons[value].image = this.ctl.game.assets[EResPath.COMMAND];
90 this.cmdIcons[value].x = 40 * index;
91 this.cmdIcons[value].y = 4;
93 // odd equals current. even equals not current.
94 this.cmdIcons[value].frame = (this.ctl.getCurrentCommand() == value)? index * 2 + 1: index * 2;
95 menuBg.addChild(this.cmdIcons[value]);
96 this.cmdIcons[value].ontouchstart = function(obj){
97 // change command icons
98 var nowECmd = self.ctl.getCurrentCommand();
99 self.cmdIcons[nowECmd].removeCurrent();
100 if(!this.isCurrent()){
103 self.ctl.setCurrentCommand(this.index);
108 get: function(commandIndex){
109 return this.cmdIcons[commandIndex];
112 var ATouchEvent = enchant.Class.create({
113 // initialize: function (ctl){
116 touchstart: function(e){
118 touchmove: function(e){
120 touchend: function(e){
124 var WorldCursorTouchEvent = enchant.Class.create(ATouchEvent,{
125 initialize: function (ctl){
130 touchstart : function(e){
131 this.touchX = e.x - this.ctl.backgroundMap.x;
132 this.touchY = e.y - this.ctl.backgroundMap.y;
133 var tx = this.touchX;
134 var ty = this.touchY;
135 var nodes = this.ctl.getObjs();
136 nodes.sort(ctl.def.nodeSort);
137 for (var id in nodes) {
138 var node = nodes[id];
139 var nx = node.getX();
140 var ny = node.getY();
141 if(node == null)continue;
142 if(node instanceof Box
143 || node instanceof this.ctl.def.Food
147 if(node instanceof this.ctl.def.Yukkuri){
148 nx -= node.width / 2;
149 ny -= node.height / 2;
152 && (nx + node.width) >= tx
154 && (ny + node.height) >= ty
156 // new BoxLabel(this.ctl,100, e.x, e.y);
157 var box = new Box(this.ctl, node, e.x - ctl.backgroundMap.x, e.y - ctl.backgroundMap.y, 200, 200);
164 touchmove : function(e){
165 var backgroundMap = this.ctl.backgroundMap;
166 var game = this.ctl.game;
169 backgroundMap.x = e.x - this.touchX;
170 if(backgroundMap.x < -EFieldPos.WIDTH)backgroundMap.x = -EFieldPos.WIDTH;
171 if(backgroundMap.x > 0)backgroundMap.x = 0;
173 backgroundMap.y = e.y - this.touchY;
174 if(backgroundMap.y < -EFieldPos.HEIGHT)backgroundMap.y = -EFieldPos.HEIGHT;
175 if(backgroundMap.y > 0)backgroundMap.y = 0;
177 if(e.x > EFieldPos.WIDTH)game.touched = false;
178 else if(e.x < 30)game.touched = false;
180 touchend : function(e){
183 var WorldTargetTouchEvent = enchant.Class.create(ATouchEvent,{
184 initialize: function (ctl){
189 touchstart :function(e){
190 if(e.x >= 0 && e.x <= EFieldPos.WIDTH){
191 var backgroundMap = this.ctl.backgroundMap;
192 addEffect(this.ctl.backgroundMap, -backgroundMap.x + e.x, -backgroundMap.y + e.y);
193 this.ctl.player.tweet("ゆっくりりかいしたよ!");
194 var vx = (-backgroundMap.x + e.x) - this.ctl.player.getX() ;
195 var vy = (-backgroundMap.y + e.y) - this.ctl.player.getY() ;
197 // this.ctl.player.action.setStatus(EAction.MOVE_TO_COMMAND);
198 // new MoveCommandEvent({
201 // "action": this.ctl.player.action,
202 // "myYukkuri": this.ctl.player
205 // this.ctl.player.tweet("ゆー...いきたくないのぜ");
209 var WorldAppleTouchEvent = enchant.Class.create(ATouchEvent,{
210 initialize: function (ctl){
215 touchstart :function(e){
216 if(e.x >= 0 && e.x <= EFieldPos.WIDTH){
217 var backgroundMap = this.ctl.backgroundMap;
218 var tx = -backgroundMap.x + e.x;
219 var ty = -backgroundMap.y + e.y;
220 // new ctl.def.Food("apple", tx, ty);
221 new ctl.def.Food("grass", tx, ty);
225 var WorldPlaceTouchEvent = enchant.Class.create(ATouchEvent,{
226 initialize: function (ctl){
231 touchstart :function(e){
232 if(e.x >= 0 && e.x <= EFieldPos.WIDTH){
233 var backgroundMap = this.ctl.backgroundMap;
234 var tx = -backgroundMap.x + e.x;
235 var ty = -backgroundMap.y + e.y;
236 new ctl.def.Place("tree", tx, ty);
242 var MangTouch = enchant.Class.create({
243 initialize: function (ctl){
245 var cursor = ECommand.WORLD_CURSOR;
247 this.mang[ECommand.WORLD_CURSOR] = new WorldCursorTouchEvent(ctl);
248 this.mang[ECommand.WORLD_TARGET] = new WorldTargetTouchEvent(ctl);
249 this.mang[ECommand.WORLD_APPLE] = new WorldAppleTouchEvent(ctl);
250 this.mang[ECommand.WORLD_PLACE] = new WorldPlaceTouchEvent(ctl);
251 ctl.mangTouch = this;
254 return this.mang[ecmd];
257 var MangLabel = enchant.Class.create({
258 initialize: function (ctl, menuBg){
260 var labelGroup = new LabelGroup();
262 this.START_YPOS = GAME_HEIGHT / 2;
263 this.GAUGE_XPOS = 80;
264 this.menuBg = menuBg;
266 this.WIDTH_MARGIN = 4;
267 this.GAUGE_HEIGHT = 16;
268 var FONT = "18px 'Times New Roman'";
269 var COLOR = "#ffffff";
270 menuBg.image.context.font = FONT;
277 var TEXT = M.LABEL_YUKKURI;
278 var label = new Label(TEXT);
281 label.x = self.START_XPOS;
282 label.y = self.START_YPOS;
283 label.textWidth = menuBg.image.context.measureText(TEXT).width;
286 draw: function(yukkuriObj){
288 var gauge = 100 / yukkuriObj.param.maxYukkuri * yukkuriObj.param.yukkuri;
289 self.menuBg.image.context.fillStyle = "#ffffff";
290 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
291 self.menuBg.image.context.fillStyle = "#ff0000";
292 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
298 var TEXT = M.LABEL_HUNGRY;
299 var label = new Label(TEXT);
302 label.x = self.START_XPOS;
303 label.y = self.START_YPOS + 20;
304 label.textWidth = menuBg.image.context.measureText(TEXT).width;
307 draw: function(yukkuriObj){
308 var gauge =yukkuriObj.param.hungry;
309 self.menuBg.image.context.fillStyle = "#ffffff";
310 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
311 self.menuBg.image.context.fillStyle = "#bb7777";
312 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
318 var TEXT = M.LABEL_UNUN;
319 var label = new Label(TEXT);
322 label.x = self.START_XPOS;
323 label.y = self.START_YPOS + 40;
324 label.textWidth = menuBg.image.context.measureText(TEXT).width;
327 draw: function(yukkuriObj){
328 var gauge =yukkuriObj.param.unun;
329 self.menuBg.image.context.fillStyle = "#ffffff";
330 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
331 self.menuBg.image.context.fillStyle = "#bb7777";
332 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
338 var TEXT = M.LABEL_SLEEP;
339 var label = new Label(TEXT);
342 label.x = self.START_XPOS;
343 label.y = self.START_YPOS + 60;
344 label.textWidth = menuBg.image.context.measureText(TEXT).width;
347 draw: function(yukkuriObj){
348 var gauge =yukkuriObj.param.sleep;
349 self.menuBg.image.context.fillStyle = "#ffffff";
350 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
351 self.menuBg.image.context.fillStyle = "#bb7777";
352 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
358 var TEXT = M.LABEL_STRESS;
359 var label = new Label(TEXT);
362 label.x = self.START_XPOS;
363 label.y = self.START_YPOS + 80;
364 label.textWidth = menuBg.image.context.measureText(TEXT).width;
367 draw: function(yukkuriObj){
368 var gauge =yukkuriObj.param.stress;
369 self.menuBg.image.context.fillStyle = "#ffffff";
370 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
371 self.menuBg.image.context.fillStyle = "#bb7777";
372 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
377 this.menuBg.image.context.fillStyle = '#ff0000';
378 for(var key in this.labelParams){
379 var labelObj = this.labelParams[key];
381 labelGroup.addChild(labelObj.label);
383 menuBg.addChild(labelGroup);
385 draw: function(yukkuriObj){
386 for(var key in this.labelParams){
387 var labelObj = this.labelParams[key];
388 labelObj.draw(yukkuriObj);
392 var MangMsg = enchant.Class.create({
393 initialize: function (ctl){
396 output:function(yukkuri, emsg, targetYukkuri){
397 //var M = yukkuri.getMsg();
398 if(emsg == EMsg.WALK){
400 yukkuri.tweet(M.WALK1);
402 else if(rand(4) === 1){
403 yukkuri.tweet(M.WALK2);
405 else if(rand(4) === 2){
406 yukkuri.tweet(M.WALK3);
408 else if(rand(4) === 3){
409 yukkuri.tweet(M.WALK4);
412 else if(emsg == EMsg.EAT){
414 yukkuri.tweet(M.EAT1);
416 else if(rand(3) === 1){
417 yukkuri.tweet(M.EAT2);
419 else if(rand(3) === 2){
420 yukkuri.tweet(M.EAT3);
423 else if(emsg == EMsg.GET_UP){
424 yukkuri.tweet(M.GET_UP1);
426 else if(emsg == EMsg.SLEEP){
427 yukkuri.tweet(M.SLEEP1);
429 else if(emsg == EMsg.DEAD){
430 yukkuri.tweet(M.DEAD1);
432 else if(emsg == EMsg.UNUN){
434 yukkuri.tweet(M.UNUN1);
436 yukkuri.tweet(M.UNUN2);
439 else if(emsg == EMsg.UNUN_END){
440 yukkuri.tweet(M.UNUN_END1);
442 else if(emsg == EMsg.UNUN_SMELL){
443 yukkuri.tweet(M.UNUN_SPELL1);
445 else if(emsg == EMsg.EAT_FAILED){
446 yukkuri.tweet(M.EAT_FAILED1);
448 else if(emsg == EMsg.SAY_HELLO){
449 if(yukkuri.getAddress(targetYukkuri) === null){
450 yukkuri.tweet(M.SAY_HELLO1);
452 yukkuri.tweet(M.SAY_HELLO2);
455 else if(emsg == EMsg.TARGETING_EAT){
456 yukkuri.tweet(M.TARGETING_EAT1);
458 else if(emsg == EMsg.DECLARE_PLACE){
459 yukkuri.tweet(M.DECLARE_PLACE1);
465 // var MangLabel = enchant.Class.create({
466 // initialize: function (ctl, menuBg){
468 // var labelGroup = new LabelGroup();
469 // this.START_XPOS = 4;
470 // this.START_YPOS = GAME_HEIGHT / 2;
471 // this.menuBg = menuBg;
472 // this.widthArr = [];
473 // this.WIDTH_MARGIN = 4;
474 // var FONT = "14px 'Times New Roman'";
475 // var COLOR = "#ffffff";
476 // menuBg.image.context.font = FONT;
479 // "yukkuri" : function(){
480 // var TEXT = "ゆっくり";
481 // var label = new Label(TEXT);
482 // label.color = COLOR;
483 // label.font = FONT;
484 // label.x = self.START_XPOS;
485 // label.y = self.START_YPOS;
486 // label.textWidth = menuBg.image.context.measureText(TEXT).width;
488 // "hungry" : function(){
490 // var label = new Label(TEXT);
491 // label.color = COLOR;
492 // label.font = FONT;
493 // label.x = self.START_XPOS;
494 // label.y = self.START_YPOS + 20;
495 // label.textWidth = menuBg.image.context.measureText(TEXT).width;
500 // this.labels["yukkuri"]();
501 // console.log(this.labels["yukkuri"]().textWidth);
502 // // for(var key in this.labels){
503 // // console.log(key);
504 // // var label = this.labels[key]();
505 // // // labelGroup.addChild(label);
507 // // var width = this.widthArr['yukkuri'];
508 // // this.menuBg.image.context.fillStyle = '#ff0000';
509 // // this.menuBg.image.context.fillRect(this.START_XPOS + width, this.START_YPOS, 100, 30);
510 // // menuBg.addChild(labelGroup);
513 // label = this.labels[key]();
514 // this.menuBg.image.context.fillStyle = '#ff0000';
515 // this.menuBg.image.context.fillRect(label.x, label.y, 100, 14);