1 var Ctrl = enchant.Class.create({
2 initialize: function (){
5 this.currentCommand = ECommand.WORLD_CURSOR;
6 this.backgroundMap = null;
11 init : function (game){
14 setDefined:function(def){
17 addObj: function(obj){
18 this.objArray[obj.id] = obj;
23 removeObj:function(obj){
24 delete this.objArray[obj.id];
26 setMenuBg: function (menuBg){
27 console.log("setMenuBg");
30 setBackgroundMap: function(backgroundMap){
31 this.backgroundMap = backgroundMap;
33 setPlayer: function(player){
37 * [setCurrentCommand description]
38 * @param {ECommand} cmd [description]
40 setCurrentCommand: function(cmd){
41 this.currentCommand = cmd;
43 getCurrentCommand: function(){
44 return this.currentCommand;
47 var CommandIcon = enchant.Class.create(enchant.Sprite,{
48 initialize: function (x, y, ecmd, index){
49 enchant.Sprite.call(this, x, y);
53 isCurrent: function(){
54 return (this.index * 2)%2 !== 0;
56 setCurrent: function(){
57 this.frame = (this.index * 2) + 1;
59 removeCurrent: function(){
60 this.frame = (this.index * 2);
63 var MangIcon = enchant.Class.create({
64 initialize: function (ctl, menuBg){
69 for (var key in ECommand) {
70 var value = ECommand[key];
71 this.cmdIcons[value] = new CommandIcon(40, 40, value, index);
72 this.cmdIcons[value].image = this.ctl.game.assets[EResPath.COMMAND];
73 this.cmdIcons[value].x = 40 * index;
74 this.cmdIcons[value].y = 4;
76 // odd equals current. even equals not current.
77 this.cmdIcons[value].frame = (this.ctl.getCurrentCommand() == value)? index * 2 + 1: index * 2;
78 menuBg.addChild(this.cmdIcons[value]);
79 this.cmdIcons[value].ontouchstart = function(obj){
80 // change command icons
81 var nowECmd = self.ctl.getCurrentCommand();
82 self.cmdIcons[nowECmd].removeCurrent();
83 if(!this.isCurrent()){
86 self.ctl.setCurrentCommand(this.index);
91 get: function(commandIndex){
92 return this.cmdIcons[commandIndex];
95 var ATouchEvent = enchant.Class.create({
96 // initialize: function (ctl){
99 touchstart: function(e){
101 touchmove: function(e){
103 touchend: function(e){
107 var WorldCursorTouchEvent = enchant.Class.create(ATouchEvent,{
108 initialize: function (ctl){
113 touchstart : function(e){
114 this.touchX = e.x - this.ctl.backgroundMap.x;
115 this.touchY = e.y - this.ctl.backgroundMap.y;
117 touchmove : function(e){
118 var backgroundMap = this.ctl.backgroundMap;
119 var game = this.ctl.game;
122 backgroundMap.x = e.x - this.touchX;
123 if(backgroundMap.x < -EFieldPos.WIDTH)backgroundMap.x = -EFieldPos.WIDTH;
124 if(backgroundMap.x > 0)backgroundMap.x = 0;
126 backgroundMap.y = e.y - this.touchY;
127 if(backgroundMap.y < -EFieldPos.HEIGHT)backgroundMap.y = -EFieldPos.HEIGHT;
128 if(backgroundMap.y > 0)backgroundMap.y = 0;
130 if(e.x > EFieldPos.WIDTH)game.touched = false;
131 else if(e.x < 30)game.touched = false;
133 touchend : function(e){
136 var WorldTargetTouchEvent = enchant.Class.create(ATouchEvent,{
137 initialize: function (ctl){
142 touchstart :function(e){
143 if(e.x >= 0 && e.x <= EFieldPos.WIDTH){
144 var backgroundMap = this.ctl.backgroundMap;
145 addEffect(this.ctl.backgroundMap, -backgroundMap.x + e.x, -backgroundMap.y + e.y);
146 this.ctl.player.tweet("ゆっくりりかいしたよ!");
147 var vx = (-backgroundMap.x + e.x) - this.ctl.player.getX() ;
148 var vy = (-backgroundMap.y + e.y) - this.ctl.player.getY() ;
150 // this.ctl.player.action.setStatus(EAction.MOVE_TO_COMMAND);
151 // new MoveCommandEvent({
154 // "action": this.ctl.player.action,
155 // "myYukkuri": this.ctl.player
158 // this.ctl.player.tweet("ゆー...いきたくないのぜ");
162 var WorldAppleTouchEvent = enchant.Class.create(ATouchEvent,{
163 initialize: function (ctl){
168 touchstart :function(e){
169 if(e.x >= 0 && e.x <= EFieldPos.WIDTH){
170 var backgroundMap = this.ctl.backgroundMap;
171 var tx = -backgroundMap.x + e.x;
172 var ty = -backgroundMap.y + e.y;
173 new ctl.def.Food("apple", tx, ty);
177 var WorldPlaceTouchEvent = enchant.Class.create(ATouchEvent,{
178 initialize: function (ctl){
183 touchstart :function(e){
184 if(e.x >= 0 && e.x <= EFieldPos.WIDTH){
185 var backgroundMap = this.ctl.backgroundMap;
186 var tx = -backgroundMap.x + e.x;
187 var ty = -backgroundMap.y + e.y;
188 new ctl.def.Place("tree", tx, ty);
194 var MangTouch = enchant.Class.create({
195 initialize: function (ctl){
197 var cursor = ECommand.WORLD_CURSOR;
199 this.mang[ECommand.WORLD_CURSOR] = new WorldCursorTouchEvent(ctl);
200 this.mang[ECommand.WORLD_TARGET] = new WorldTargetTouchEvent(ctl);
201 this.mang[ECommand.WORLD_APPLE] = new WorldAppleTouchEvent(ctl);
202 this.mang[ECommand.WORLD_PLACE] = new WorldPlaceTouchEvent(ctl);
205 return this.mang[ecmd];
208 var MangLabel = enchant.Class.create({
209 initialize: function (ctl, menuBg){
211 var labelGroup = new LabelGroup();
213 this.START_YPOS = GAME_HEIGHT / 2;
214 this.GAUGE_XPOS = 80;
215 this.menuBg = menuBg;
217 this.WIDTH_MARGIN = 4;
218 this.GAUGE_HEIGHT = 16;
219 var FONT = "18px 'Times New Roman'";
220 var COLOR = "#ffffff";
221 menuBg.image.context.font = FONT;
228 var TEXT = M.LABEL_YUKKURI;
229 var label = new Label(TEXT);
232 label.x = self.START_XPOS;
233 label.y = self.START_YPOS;
234 label.textWidth = menuBg.image.context.measureText(TEXT).width;
237 draw: function(yukkuriObj){
239 var gauge = 100 / yukkuriObj.param.maxYukkuri * yukkuriObj.param.yukkuri;
240 self.menuBg.image.context.fillStyle = "#ffffff";
241 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
242 self.menuBg.image.context.fillStyle = "#ff0000";
243 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
249 var TEXT = M.LABEL_HUNGRY;
250 var label = new Label(TEXT);
253 label.x = self.START_XPOS;
254 label.y = self.START_YPOS + 20;
255 label.textWidth = menuBg.image.context.measureText(TEXT).width;
258 draw: function(yukkuriObj){
259 var gauge =yukkuriObj.param.hungry;
260 self.menuBg.image.context.fillStyle = "#ffffff";
261 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
262 self.menuBg.image.context.fillStyle = "#bb7777";
263 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
269 var TEXT = M.LABEL_UNUN;
270 var label = new Label(TEXT);
273 label.x = self.START_XPOS;
274 label.y = self.START_YPOS + 40;
275 label.textWidth = menuBg.image.context.measureText(TEXT).width;
278 draw: function(yukkuriObj){
279 var gauge =yukkuriObj.param.unun;
280 self.menuBg.image.context.fillStyle = "#ffffff";
281 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
282 self.menuBg.image.context.fillStyle = "#bb7777";
283 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
289 var TEXT = M.LABEL_SLEEP;
290 var label = new Label(TEXT);
293 label.x = self.START_XPOS;
294 label.y = self.START_YPOS + 60;
295 label.textWidth = menuBg.image.context.measureText(TEXT).width;
298 draw: function(yukkuriObj){
299 var gauge =yukkuriObj.param.sleep;
300 self.menuBg.image.context.fillStyle = "#ffffff";
301 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
302 self.menuBg.image.context.fillStyle = "#bb7777";
303 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
309 var TEXT = M.LABEL_STRESS;
310 var label = new Label(TEXT);
313 label.x = self.START_XPOS;
314 label.y = self.START_YPOS + 80;
315 label.textWidth = menuBg.image.context.measureText(TEXT).width;
318 draw: function(yukkuriObj){
319 var gauge =yukkuriObj.param.stress;
320 self.menuBg.image.context.fillStyle = "#ffffff";
321 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, 100, self.GAUGE_HEIGHT);
322 self.menuBg.image.context.fillStyle = "#bb7777";
323 self.menuBg.image.context.fillRect(self.GAUGE_XPOS, this.label.y, gauge, self.GAUGE_HEIGHT);
328 this.menuBg.image.context.fillStyle = '#ff0000';
329 for(var key in this.labelParams){
330 var labelObj = this.labelParams[key];
332 labelGroup.addChild(labelObj.label);
334 menuBg.addChild(labelGroup);
336 draw: function(yukkuriObj){
337 for(var key in this.labelParams){
338 var labelObj = this.labelParams[key];
339 labelObj.draw(yukkuriObj);
344 var MangMsg = enchant.Class.create({
345 initialize: function (ctl){
348 output:function(yukkuri, emsg, targetYukkuri){
349 //var M = yukkuri.getMsg();
350 if(emsg == EMsg.WALK){
352 yukkuri.tweet(M.WALK1);
354 else if(rand(4) === 1){
355 yukkuri.tweet(M.WALK2);
357 else if(rand(4) === 2){
358 yukkuri.tweet(M.WALK3);
360 else if(rand(4) === 3){
361 yukkuri.tweet(M.WALK4);
364 else if(emsg == EMsg.EAT){
366 yukkuri.tweet(M.EAT1);
368 else if(rand(3) === 1){
369 yukkuri.tweet(M.EAT2);
371 else if(rand(3) === 2){
372 yukkuri.tweet(M.EAT3);
375 else if(emsg == EMsg.GET_UP){
376 yukkuri.tweet(M.GET_UP1);
378 else if(emsg == EMsg.SLEEP){
379 yukkuri.tweet(M.SLEEP1);
381 else if(emsg == EMsg.DEAD){
382 yukkuri.tweet(M.DEAD1);
384 else if(emsg == EMsg.UNUN){
386 yukkuri.tweet(M.UNUN1);
388 yukkuri.tweet(M.UNUN2);
391 else if(emsg == EMsg.UNUN_END){
392 yukkuri.tweet(M.UNUN_END1);
394 else if(emsg == EMsg.UNUN_SMELL){
395 yukkuri.tweet(M.UNUN_SPELL1);
397 else if(emsg == EMsg.EAT_FAILED){
398 yukkuri.tweet(M.EAT_FAILED1);
400 else if(emsg == EMsg.SAY_HELLO){
401 if(yukkuri.getAddress(targetYukkuri) === null){
402 yukkuri.tweet(M.SAY_HELLO1);
404 yukkuri.tweet(M.SAY_HELLO2);
407 else if(emsg == EMsg.TARGETING_EAT){
408 yukkuri.tweet(M.TARGETING_EAT1);
410 else if(emsg == EMsg.DECLARE_PLACE){
411 yukkuri.tweet(M.DECLARE_PLACE1);
417 // var MangLabel = enchant.Class.create({
418 // initialize: function (ctl, menuBg){
420 // var labelGroup = new LabelGroup();
421 // this.START_XPOS = 4;
422 // this.START_YPOS = GAME_HEIGHT / 2;
423 // this.menuBg = menuBg;
424 // this.widthArr = [];
425 // this.WIDTH_MARGIN = 4;
426 // var FONT = "14px 'Times New Roman'";
427 // var COLOR = "#ffffff";
428 // menuBg.image.context.font = FONT;
431 // "yukkuri" : function(){
432 // var TEXT = "ゆっくり";
433 // var label = new Label(TEXT);
434 // label.color = COLOR;
435 // label.font = FONT;
436 // label.x = self.START_XPOS;
437 // label.y = self.START_YPOS;
438 // label.textWidth = menuBg.image.context.measureText(TEXT).width;
440 // "hungry" : function(){
442 // var label = new Label(TEXT);
443 // label.color = COLOR;
444 // label.font = FONT;
445 // label.x = self.START_XPOS;
446 // label.y = self.START_YPOS + 20;
447 // label.textWidth = menuBg.image.context.measureText(TEXT).width;
452 // this.labels["yukkuri"]();
453 // console.log(this.labels["yukkuri"]().textWidth);
454 // // for(var key in this.labels){
455 // // console.log(key);
456 // // var label = this.labels[key]();
457 // // // labelGroup.addChild(label);
459 // // var width = this.widthArr['yukkuri'];
460 // // this.menuBg.image.context.fillStyle = '#ff0000';
461 // // this.menuBg.image.context.fillRect(this.START_XPOS + width, this.START_YPOS, 100, 30);
462 // // menuBg.addChild(labelGroup);
465 // label = this.labels[key]();
466 // this.menuBg.image.context.fillStyle = '#ff0000';
467 // this.menuBg.image.context.fillRect(label.x, label.y, 100, 14);