From sangokushi-svn @ lists.sourceforge.jp Tue Feb 1 23:56:41 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Tue, 01 Feb 2011 23:56:41 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzQ3Nl0gIOS7lQ==?= =?utf-8?b?5qeY5pu444KS5L+u5q2j44GX44G+44GX44Gf44CC?= Message-ID: <1296572201.063330.30415.nullmailer@users.sourceforge.jp> Revision: 476 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=476 Author: hryksbt Date: 2011-02-01 23:56:41 +0900 (Tue, 01 Feb 2011) Log Message: ----------- 仕様書を修正しました。 一旦削除した部隊属性(騎馬隊、歩兵、戦車)は、持てる武器が異なるだけの属性なので、復活させて見ました。工作兵は削除です。 (あった方がより戦略色が濃くなるので、あるとうれしい…) その他細かい修正があった箇所は、赤字にしています。 Modified Paths: -------------- trunk/Documents/仕様書/Open三国志v1.0仕様書.pdf trunk/Documents/仕様書/Open三国志v1.0仕様書.ppt Added Paths: ----------- trunk/Documents/仕様書/old/Open三国志ユースケース図_ボツ案.xls Removed Paths: ------------- trunk/Documents/仕様書/Open三国志ユースケース図.xls Modified: trunk/Documents/仕様書/Open三国志v1.0仕様書.pdf =================================================================== (Binary files differ) Modified: trunk/Documents/仕様書/Open三国志v1.0仕様書.ppt =================================================================== (Binary files differ) Deleted: trunk/Documents/仕様書/Open三国志ユースケース図.xls =================================================================== (Binary files differ) Added: trunk/Documents/仕様書/old/Open三国志ユースケース図_ボツ案.xls =================================================================== (Binary files differ) Property changes on: trunk/Documents/仕様書/old/Open三国志ユースケース図_ボツ案.xls ___________________________________________________________________ Added: svn:mime-type + application/octet-stream From sangokushi-svn @ lists.sourceforge.jp Tue Feb 1 23:58:48 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Tue, 01 Feb 2011 23:58:48 +0900 Subject: [Sangokushi-svn] =?iso-2022-jp?b?W1NWTl9Db21pdHRlZF0gWzQ3Nl0gIA==?= =?iso-2022-jp?b?GyRCO0VNTT1xJHI9JEA1JDckXiQ3JD8hIxsoQg==?= In-Reply-To: <1296572201.063330.30415.nullmailer@users.sourceforge.jp> References: <1296572201.063330.30415.nullmailer@users.sourceforge.jp> Message-ID: <4D481FA8.4060509@gmail.com> 裕之です。 鯖蔵の基本アーキテクチャについても、コメントを直してます。 (2011/02/01 23:56), OpenSangokushi commit ML wrote: > Revision: 476 > http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=476 > Author: hryksbt > Date: 2011-02-01 23:56:41 +0900 (Tue, 01 Feb 2011) > > Log Message: > ----------- > 仕様書を修正しました。 > > 一旦削除した部隊属性(騎馬隊、歩兵、戦車)は、持てる武器が異なるだけの属性なので、復活させて見ました。工作兵は削除です。 > (あった方がより戦略色が濃くなるので、あるとうれしい…) > > その他細かい修正があった箇所は、赤字にしています。 > > Modified Paths: > -------------- > trunk/Documents/仕様書/Open三国志v1.0仕様書.pdf > trunk/Documents/仕様書/Open三国志v1.0仕様書.ppt > > Added Paths: > ----------- > trunk/Documents/仕様書/old/Open三国志ユースケース図_ボツ案.xls > > Removed Paths: > ------------- > trunk/Documents/仕様書/Open三国志ユースケース図.xls > > Modified: trunk/Documents/仕様書/Open三国志v1.0仕様書.pdf > =================================================================== > (Binary files differ) > > Modified: trunk/Documents/仕様書/Open三国志v1.0仕様書.ppt > =================================================================== > (Binary files differ) > > Deleted: trunk/Documents/仕様書/Open三国志ユースケース図.xls > =================================================================== > (Binary files differ) > > Added: trunk/Documents/仕様書/old/Open三国志ユースケース図_ボツ案.xls > =================================================================== > (Binary files differ) > > > Property changes on: trunk/Documents/仕様書/old/Open三国志ユースケース図_ボツ案.xls > ___________________________________________________________________ > Added: svn:mime-type > + application/octet-stream > > _______________________________________________ > Sangokushi-svn mailing list > Sangokushi-svn @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/sangokushi-svn From sangokushi-svn @ lists.sourceforge.jp Fri Feb 4 02:51:38 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Fri, 04 Feb 2011 02:51:38 +0900 Subject: [Sangokushi-svn] =?utf-8?q?=5BSVN=5FComitted=5D_=5B477=5D__Twitte?= =?utf-8?b?cuapn+iDveOCkuWkluOBl+OBn+ewoeaYk+eJiOOBp+OBmeOAgg==?= Message-ID: <1296755498.913960.12974.nullmailer@users.sourceforge.jp> Revision: 477 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=477 Author: akifumi3 Date: 2011-02-04 02:51:38 +0900 (Fri, 04 Feb 2011) Log Message: ----------- Twitter機能を外した簡易版です。 オープニングのTwitter認証、戦闘画面のメッセージ部分を削除しました。 Modified Paths: -------------- branches/OpenSangokushi_without_twitter/default.properties branches/OpenSangokushi_without_twitter/gen/jp/or/cute/sangokushi/R.java branches/OpenSangokushi_without_twitter/res/layout/battle.xml branches/OpenSangokushi_without_twitter/res/layout/opening.xml branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Battle.java branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Opening.java branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/view/MapView.java Added Paths: ----------- branches/OpenSangokushi_without_twitter/ branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs Removed Paths: ------------- branches/OpenSangokushi_without_twitter/bin/OpenSangokushi.apk branches/OpenSangokushi_without_twitter/bin/classes.dex branches/OpenSangokushi_without_twitter/bin/jp/ branches/OpenSangokushi_without_twitter/bin/resources.ap_ Added: branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs =================================================================== --- branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs (rev 0) +++ branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs 2011-02-03 17:51:38 UTC (rev 477) @@ -0,0 +1,3 @@ +#Fri Feb 04 01:39:07 JST 2011 +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false Deleted: branches/OpenSangokushi_without_twitter/bin/OpenSangokushi.apk =================================================================== (Binary files differ) Deleted: branches/OpenSangokushi_without_twitter/bin/classes.dex =================================================================== (Binary files differ) Deleted: branches/OpenSangokushi_without_twitter/bin/resources.ap_ =================================================================== (Binary files differ) Modified: branches/OpenSangokushi_without_twitter/default.properties =================================================================== --- trunk/OpenSangokushi/default.properties 2011-02-01 14:56:41 UTC (rev 476) +++ branches/OpenSangokushi_without_twitter/default.properties 2011-02-03 17:51:38 UTC (rev 477) @@ -10,4 +10,4 @@ # Indicates whether an apk should be generated for each density. split.density=false # Project target. -target=android-4 +target=android-7 Modified: branches/OpenSangokushi_without_twitter/gen/jp/or/cute/sangokushi/R.java =================================================================== --- trunk/OpenSangokushi/gen/jp/or/cute/sangokushi/R.java 2011-02-01 14:56:41 UTC (rev 476) +++ branches/OpenSangokushi_without_twitter/gen/jp/or/cute/sangokushi/R.java 2011-02-03 17:51:38 UTC (rev 477) @@ -1,144 +1,141 @@ -/* AUTO-GENERATED FILE. DO NOT MODIFY. - * - * This class was automatically generated by the - * aapt tool from the resource data it found. It - * should not be modified by hand. - */ - -package jp.or.cute.sangokushi; - -public final class R { - public static final class anim { - public static final int logo_scale=0x7f040000; - } - public static final class attr { - } - public static final class color { - public static final int solid_blue=0x7f060001; - public static final int solid_green=0x7f060002; - public static final int solid_red=0x7f060000; - public static final int solid_white=0x7f060004; - public static final int solid_yellow=0x7f060003; - public static final int start_button=0x7f060005; - } - public static final class drawable { - public static final int castle=0x7f020000; - public static final int desert=0x7f020001; - public static final int dra=0x7f020002; - public static final int forest=0x7f020003; - public static final int gi=0x7f020004; - public static final int gi_bg=0x7f020005; - public static final int go=0x7f020006; - public static final int go_bg=0x7f020007; - public static final int grass=0x7f020008; - public static final int icon=0x7f020009; - public static final int king=0x7f02000a; - public static final int king_back=0x7f02000b; - public static final int loading=0x7f02000c; - public static final int logo=0x7f02000d; - public static final int map_draft=0x7f02000e; - public static final int mountain=0x7f02000f; - public static final int openingback=0x7f020010; - public static final int player=0x7f020011; - public static final int player_back=0x7f020012; - public static final int street=0x7f020013; - public static final int syoku=0x7f020014; - public static final int syoku_bg=0x7f020015; - public static final int tree=0x7f020016; - public static final int water=0x7f020017; - } - public static final class id { - public static final int Button01=0x7f080025; - public static final int ChatView=0x7f080007; - public static final int EditText01=0x7f080024; - public static final int LinearLayout01=0x7f080000; - public static final int LinearLayout02=0x7f080001; - public static final int LinearLayout03=0x7f08000a; - public static final int LinearLayout04=0x7f080002; - public static final int LinearLayout06=0x7f080014; - public static final int ListView01=0x7f080015; - public static final int MapView=0x7f080008; - public static final int ScrollView01=0x7f08001e; - public static final int StatusDetailView=0x7f080009; - public static final int StatusView=0x7f080005; - public static final int TableLayout01=0x7f080017; - public static final int TableRow01=0x7f080018; - public static final int TableRow02=0x7f080019; - public static final int TableRow03=0x7f08001b; - public static final int TextView01=0x7f08000b; - public static final int TextView02=0x7f080003; - public static final int TextView03=0x7f080004; - public static final int TextView04=0x7f08001a; - public static final int TextView05=0x7f08001c; - public static final int TextView06=0x7f08001d; - public static final int Title01=0x7f080012; - public static final int Title02=0x7f080013; - public static final int TweetListView=0x7f080026; - public static final int WholeMap=0x7f080006; - public static final int edittext_name=0x7f08000e; - public static final int lobby_button=0x7f080023; - public static final int loginBtn=0x7f080011; - public static final int logo=0x7f08001f; - public static final int map=0x7f080016; - public static final int name=0x7f08000d; - public static final int presetBtn=0x7f080010; - public static final int serif=0x7f08000f; - public static final int start_button=0x7f080021; - public static final int title=0x7f08000c; - public static final int tweet_name=0x7f080027; - public static final int tweet_tweet=0x7f080028; - public static final int twitter_button=0x7f080022; - public static final int twitter_image=0x7f080020; - } - public static final class layout { - public static final int battle=0x7f030000; - public static final int initialization=0x7f030001; - public static final int list=0x7f030002; - public static final int lobby=0x7f030003; - public static final int main=0x7f030004; - public static final int map=0x7f030005; - public static final int opening=0x7f030006; - public static final int popup=0x7f030007; - public static final int tweetlist=0x7f030008; - } - public static final class raw { - public static final int bgm=0x7f050000; - } - public static final class string { - public static final int app_name=0x7f070000; - public static final int auth_progress_text=0x7f070008; - public static final int auth_progress_title=0x7f070007; - public static final int authenticate_button=0x7f070003; - public static final int authenticated=0x7f070005; - public static final int bad_value=0x7f070006; - public static final int cancel=0x7f070019; - public static final int chat_edit_hint=0x7f07000c; - public static final int commander=0x7f07001c; - public static final int compete=0x7f07001a; - public static final int game_user=0x7f07001d; - public static final int general=0x7f07001b; - public static final int login_button=0x7f07000e; - public static final int login_settings=0x7f07000d; - public static final int menu_reset_userstate=0x7f07001f; - public static final int menu_reset_userstate_comlplatemessage=0x7f070020; - public static final int menu_reset_userstate_notregistered=0x7f070021; - public static final int not_authenticated=0x7f070004; - public static final int ok=0x7f070018; - public static final int opening_message=0x7f070001; - public static final int send=0x7f07000b; - public static final int start_button=0x7f070002; - public static final int title=0x7f070022; - public static final int title_initialization=0x7f070009; - public static final int title_start=0x7f07000a; - public static final int tweet_error=0x7f07001e; - public static final int tweet_progress_text=0x7f070017; - public static final int tweet_progress_title=0x7f070016; - public static final int twitter_id=0x7f070011; - public static final int twitter_id_summary=0x7f070012; - public static final int twitter_key_edit_hint=0x7f07000f; - public static final int twitter_notauth_message=0x7f070015; - public static final int twitter_password=0x7f070013; - public static final int twitter_password_summary=0x7f070014; - public static final int twitter_secret_edit_hint=0x7f070010; - } -} +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package jp.or.cute.sangokushi; + +public final class R { + public static final class anim { + public static final int logo_scale=0x7f040000; + } + public static final class attr { + } + public static final class color { + public static final int solid_blue=0x7f060001; + public static final int solid_green=0x7f060002; + public static final int solid_red=0x7f060000; + public static final int solid_white=0x7f060004; + public static final int solid_yellow=0x7f060003; + public static final int start_button=0x7f060005; + } + public static final class drawable { + public static final int castle=0x7f020000; + public static final int desert=0x7f020001; + public static final int dra=0x7f020002; + public static final int forest=0x7f020003; + public static final int gi=0x7f020004; + public static final int gi_bg=0x7f020005; + public static final int go=0x7f020006; + public static final int go_bg=0x7f020007; + public static final int grass=0x7f020008; + public static final int icon=0x7f020009; + public static final int king=0x7f02000a; + public static final int king_back=0x7f02000b; + public static final int loading=0x7f02000c; + public static final int logo=0x7f02000d; + public static final int map_draft=0x7f02000e; + public static final int mountain=0x7f02000f; + public static final int openingback=0x7f020010; + public static final int player=0x7f020011; + public static final int player_back=0x7f020012; + public static final int street=0x7f020013; + public static final int syoku=0x7f020014; + public static final int syoku_bg=0x7f020015; + public static final int tree=0x7f020016; + public static final int water=0x7f020017; + } + public static final class id { + public static final int Button01=0x7f080022; + public static final int EditText01=0x7f080021; + public static final int LinearLayout01=0x7f080000; + public static final int LinearLayout02=0x7f080001; + public static final int LinearLayout03=0x7f080009; + public static final int LinearLayout04=0x7f080002; + public static final int LinearLayout06=0x7f080013; + public static final int ListView01=0x7f080014; + public static final int MapView=0x7f080007; + public static final int ScrollView01=0x7f08001d; + public static final int StatusDetailView=0x7f080008; + public static final int StatusView=0x7f080005; + public static final int TableLayout01=0x7f080016; + public static final int TableRow01=0x7f080017; + public static final int TableRow02=0x7f080018; + public static final int TableRow03=0x7f08001a; + public static final int TextView01=0x7f08000a; + public static final int TextView02=0x7f080003; + public static final int TextView03=0x7f080004; + public static final int TextView04=0x7f080019; + public static final int TextView05=0x7f08001b; + public static final int TextView06=0x7f08001c; + public static final int Title01=0x7f080011; + public static final int Title02=0x7f080012; + public static final int TweetListView=0x7f080023; + public static final int WholeMap=0x7f080006; + public static final int edittext_name=0x7f08000d; + public static final int loginBtn=0x7f080010; + public static final int logo=0x7f08001e; + public static final int map=0x7f080015; + public static final int name=0x7f08000c; + public static final int presetBtn=0x7f08000f; + public static final int serif=0x7f08000e; + public static final int start_button=0x7f080020; + public static final int title=0x7f08000b; + public static final int tweet_name=0x7f080024; + public static final int tweet_tweet=0x7f080025; + public static final int twitter_image=0x7f08001f; + } + public static final class layout { + public static final int battle=0x7f030000; + public static final int initialization=0x7f030001; + public static final int list=0x7f030002; + public static final int lobby=0x7f030003; + public static final int main=0x7f030004; + public static final int map=0x7f030005; + public static final int opening=0x7f030006; + public static final int popup=0x7f030007; + public static final int tweetlist=0x7f030008; + } + public static final class raw { + public static final int bgm=0x7f050000; + } + public static final class string { + public static final int app_name=0x7f070000; + public static final int auth_progress_text=0x7f070008; + public static final int auth_progress_title=0x7f070007; + public static final int authenticate_button=0x7f070003; + public static final int authenticated=0x7f070005; + public static final int bad_value=0x7f070006; + public static final int cancel=0x7f070019; + public static final int chat_edit_hint=0x7f07000c; + public static final int commander=0x7f07001c; + public static final int compete=0x7f07001a; + public static final int game_user=0x7f07001d; + public static final int general=0x7f07001b; + public static final int login_button=0x7f07000e; + public static final int login_settings=0x7f07000d; + public static final int menu_reset_userstate=0x7f07001f; + public static final int menu_reset_userstate_comlplatemessage=0x7f070020; + public static final int menu_reset_userstate_notregistered=0x7f070021; + public static final int not_authenticated=0x7f070004; + public static final int ok=0x7f070018; + public static final int opening_message=0x7f070001; + public static final int send=0x7f07000b; + public static final int start_button=0x7f070002; + public static final int title=0x7f070022; + public static final int title_initialization=0x7f070009; + public static final int title_start=0x7f07000a; + public static final int tweet_error=0x7f07001e; + public static final int tweet_progress_text=0x7f070017; + public static final int tweet_progress_title=0x7f070016; + public static final int twitter_id=0x7f070011; + public static final int twitter_id_summary=0x7f070012; + public static final int twitter_key_edit_hint=0x7f07000f; + public static final int twitter_notauth_message=0x7f070015; + public static final int twitter_password=0x7f070013; + public static final int twitter_password_summary=0x7f070014; + public static final int twitter_secret_edit_hint=0x7f070010; + } +} Modified: branches/OpenSangokushi_without_twitter/res/layout/battle.xml =================================================================== --- trunk/OpenSangokushi/res/layout/battle.xml 2011-02-01 14:56:41 UTC (rev 476) +++ branches/OpenSangokushi_without_twitter/res/layout/battle.xml 2011-02-03 17:51:38 UTC (rev 477) @@ -15,7 +15,7 @@ - + Modified: branches/OpenSangokushi_without_twitter/res/layout/opening.xml =================================================================== --- trunk/OpenSangokushi/res/layout/opening.xml 2011-02-01 14:56:41 UTC (rev 476) +++ branches/OpenSangokushi_without_twitter/res/layout/opening.xml 2011-02-03 17:51:38 UTC (rev 477) @@ -9,27 +9,11 @@ android:id="@+id/start_button" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textSize="30px" + android:textSize="40px" android:padding="5px" android:layout_gravity="center_horizontal" android:textColor="@color/solid_white" - android:layout_marginTop="270dp" android:text="@string/start_button" android:background="#00000000"> - - + android:layout_marginTop="330dp" android:text="@string/start_button" android:background="#00000000"> \ No newline at end of file Modified: branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Battle.java =================================================================== --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Battle.java 2011-02-01 14:56:41 UTC (rev 476) +++ branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Battle.java 2011-02-03 17:51:38 UTC (rev 477) @@ -214,7 +214,7 @@ setContentView(R.layout.battle); SangokushiPreferences pref = new SangokushiPreferences(this); - mChatview = (ChatView) findViewById(R.id.ChatView); + //mChatview = (ChatView) findViewById(R.id.ChatView); //userid,roomid Intent intent = getIntent(); String msg = (String)intent.getSerializableExtra("String"); @@ -233,7 +233,7 @@ httpclient.setHttpCommand(command); String result = (String) httpclient.execute(); - Log.d("getRoomInfo","rsult="+result); + Log.d("getRoomInfo","result="+result); String[] param = result.split(">>"); String[] value = param[1].split(","); int maxTurn = Integer.valueOf(value[0]); @@ -307,19 +307,19 @@ map.setUserAndRoom(mUserID,mRoomID); map.setContent(this); - mChatview.init(this, mRoomID, mPlayer.getCountryName()); + //mChatview.init(this, mRoomID, mPlayer.getCountryName()); // initPopUp(); - mTweetList = mChatview.getTweetList(); - mTweetEditor = mChatview.getTweetEditor(); + // mTweetList = mChatview.getTweetList(); + //mTweetEditor = mChatview.getTweetEditor(); //mTweetList = (ListView) mChatview.findViewById(R.id.TweetListView); // mChatTweetLists.add(new TweetItem("AB1")); // mChatTweetLists.add(new TweetItem("AB2")); // mChatTweetLists.add(new TweetItem("AB3")); // mChatTweetLists.add(new TweetItem("AB4")); - mTweetArrayAdapter = new TweetArrayAdapter(this, R.layout.tweetlist, mChatTweetLists); - mTweetList.setAdapter(mTweetArrayAdapter); + // mTweetArrayAdapter = new TweetArrayAdapter(this, R.layout.tweetlist, mChatTweetLists); + //mTweetList.setAdapter(mTweetArrayAdapter); //mTweetList.setSelection(0); } Modified: branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Opening.java =================================================================== --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java 2011-02-01 14:56:41 UTC (rev 476) +++ branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Opening.java 2011-02-03 17:51:38 UTC (rev 477) @@ -185,8 +185,12 @@ //スタートボタンは認証終了まで非表示 mStartButton = (Button)findViewById(R.id.start_button); //mStartButton.setEnabled(false); + + //2011.2.3 + //akifumi3 + //一旦Twitter認証を外します。 + /* mTwitterButton = (Button)findViewById(R.id.twitter_button); - mLobbyButton = (Button)findViewById(R.id.lobby_button); mLobbyButton.setOnClickListener(new OnClickListener() { @Override @@ -194,6 +198,7 @@ startLobby(); } }); + */ //保存している情報によって遷移を決定 int startBtnTitle = R.string.title_start; @@ -219,6 +224,10 @@ Toast.makeText(this, "ようこそ" + mPlayer.getUserName() + "様", Toast.LENGTH_LONG).show(); } + + //2011.2.3 + //akifumi3 + /* //Twitter認証チェック //Opening画面表示中にTwitterの認証情報を確認させる mOperator = new TwitterOperator(this); @@ -232,6 +241,7 @@ }else{ mTwitterButton.setEnabled(false); } + */ } @Override Modified: branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/view/MapView.java =================================================================== --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/view/MapView.java 2011-02-01 14:56:41 UTC (rev 476) +++ branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/view/MapView.java 2011-02-03 17:51:38 UTC (rev 477) @@ -112,24 +112,6 @@ */ public boolean onKeyDown(int keyCode, KeyEvent event) { Log.d("MapView","onKeyDown code:"+keyCode); - // if (keyCode == KeyEvent.KEYCODE_MENU) { - // AlertDialog.Builder builder = new AlertDialog.Builder(activity); - // builder.setMessage("Helpを表示しますか?") - // .setCancelable(false) - // .setPositiveButton("Yes", new DialogInterface.OnClickListener() { - // public void onClick(DialogInterface dialog, int id) { - - // } - // }) - // .setNegativeButton("No", new DialogInterface.OnClickListener() { - // public void onClick(DialogInterface dialog, int id) { - // dialog.cancel(); - // } - // }); - // AlertDialog alert = builder.create(); - // alert.show(); - // return true; - // } return false; } From sangokushi-svn @ lists.sourceforge.jp Fri Feb 4 21:58:16 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Fri, 04 Feb 2011 21:58:16 +0900 Subject: [Sangokushi-svn] [SVN_Comitted] [478] Message-ID: <1296824296.772732.2228.nullmailer@users.sourceforge.jp> Revision: 478 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=478 Author: hryksbt Date: 2011-02-04 21:58:16 +0900 (Fri, 04 Feb 2011) Log Message: ----------- Added Paths: ----------- trunk/IRC_ChatLog/20110203_Skype.txt Added: trunk/IRC_ChatLog/20110203_Skype.txt =================================================================== --- trunk/IRC_ChatLog/20110203_Skype.txt (rev 0) +++ trunk/IRC_ChatLog/20110203_Skype.txt 2011-02-04 12:58:16 UTC (rev 478) @@ -0,0 +1,274 @@ +?[2011/02/03 22:48:55] 裕之: こんばんはー +[2011/02/03 22:49:22] doi: こんばんは +[2011/02/03 22:49:53] 裕之: doiさんは、ソフトウェアを作るって過程の中で、 +[2011/02/03 22:50:06] 裕之: どの辺が一番面白く感じますか? +[2011/02/03 22:50:24] doi: 納品するときってのはだめですか?w +[2011/02/03 22:50:52] 裕之: そう来るとは思いませんでしたが、 ^^;確かにそれもそうかもですね +[2011/02/03 22:51:31] doi: 設計自体は嫌いじゃないですけど、色々と制約があったりクライアントの希望を飲まなきゃというのは若干気になります。 +[2011/02/03 22:51:50] doi: その分、実装してるときは外の様子が変わらない限り自由なので、楽しいとも言えますね。 +[2011/02/03 22:52:07] 裕之: もっとこうすりゃ良いのに、ってのが多々あるような感じですかね +[2011/02/03 22:52:31] doi: そうですね。まぁ、僕視点での話しなので、クライアントが欲しいものとは違うのでしょうが。 +[2011/02/03 22:52:43] doi: でも、基本的にものづくりは好きです。どこをとっても。 +[2011/02/03 22:52:49] 裕之: なるほどー +[2011/02/03 22:52:56] 裕之: では天職ではないですか^^ +[2011/02/03 22:53:01] doi: 条件があるとすると、作っているものにわくわくできないと、作業になってしまいますね。 +[2011/02/03 22:53:23] 裕之: 作業って考えるとつらいですよね +[2011/02/03 22:53:42] doi: そうですねぇ。まぁ、好きなことしてお金もらえているので、幸せなんでしょうが。 +[2011/02/03 22:54:25] 裕之: まだまだ有り余っていそうですね +[2011/02/03 22:56:40] 裕之: 三国志の方ですが、 +[2011/02/03 22:57:10] 裕之: もっとこうすりゃいいってゆうのがあれば、ドンドンそうゆうのは適用していってもらえればと思うのですが、 +[2011/02/03 22:57:30] 裕之: 逆にそれも意外に難しいのかなとも思ったりします +[2011/02/03 22:57:55] doi: そうですね。 +[2011/02/03 22:58:15] 裕之: ルールがある事に大半の方は慣れてると思うので +[2011/02/03 22:58:18] doi: さっきも言いましたが、あくまで僕の独断でこうだったらなので、正しいとは限らないんですよね。 +[2011/02/03 22:58:20] 裕之: 私もそうですし +[2011/02/03 22:58:40] 裕之: それは私も同じなので、 +[2011/02/03 22:58:54] 裕之: 今作った仕様も私の独断でしかないので、 +[2011/02/03 22:59:14] 裕之: 間違いなく、もっと色々、あると思います +[2011/02/03 22:59:20] doi: いや。でも、ゲームのマーケティングとか勉強されていたじゃないですか。僕はそういうのも何もしていないので。 +[2011/02/03 22:59:38] 裕之: 勉強だけはやってますね +[2011/02/03 23:00:06] 裕之: でも、全員でやる必要もないと思うので、必要な部分だけ共有できればいいかなと思います +[2011/02/03 23:00:34] 裕之: 因みに、 +[2011/02/03 23:00:45] 裕之: 今の段階で設計に手をつけるとしたら、 +[2011/02/03 23:00:59] 裕之: ある程度は進められると思いますか??? +[2011/02/03 23:01:05] 裕之: テーブル設計とか。 +[2011/02/03 23:01:45] doi: えっと。それ以前の部分を固めないと行けないのかなと思ってます。 +[2011/02/03 23:01:53] doi: ちょうどゲームとしての設計といいますか。 +[2011/02/03 23:01:56] 裕之: ふむふむ +[2011/02/03 23:02:09] doi: ちょうど、裕之さんが仕様書を更新してくれているような部分ですかね。 +[2011/02/03 23:02:14] 裕之: 決まりきらない部分が多々あるって感じでしょうかね +[2011/02/03 23:02:32] 裕之: 通信とかのあたりですか??? +[2011/02/03 23:02:42] doi: ゲームとしてどうするかですかね。 +[2011/02/03 23:03:01] doi: 実装的にはとりあえず置いておいて、何をどうして楽しむってとこですかね。 +[2011/02/03 23:03:23] 裕之: 一番基本的なところですね +[2011/02/03 23:03:48] 裕之: これはもう、私の中では答えは出てると思っていて、 +[2011/02/03 23:04:17] doi: 遊び方の妙として、武器の組み合わせによる戦略的なところを楽しんでもらうのか、コツコツLvあげ(武器購入?)して、それによる達成感を楽しむのか。 +[2011/02/03 23:04:40] 裕之: 戦略を練りつつも、アクション要素があるので、ゆっくりまったりもできず +[2011/02/03 23:04:54] 裕之: マルチプレイでの戦闘を楽しむことを +[2011/02/03 23:05:02] 裕之: 目的としたいと思ってます +[2011/02/03 23:05:17] 裕之: なぜなら、そうゆうのって、あまり見かけないからです +[2011/02/03 23:05:46] 裕之: アクションだけなら、複雑な動きにとにかく凝るべきだと思いますが、 +[2011/02/03 23:06:00] 裕之: 個人の戦略やチームプレイも絡んでくるので、 +[2011/02/03 23:06:05] 裕之: 操作自体は簡単にして、 +[2011/02/03 23:06:26] 裕之: パッと決めて、パッと動く +[2011/02/03 23:06:42] doi: というと、極端な言い方をすると、数が勝負の戦争って感じですかね? +[2011/02/03 23:06:43] 裕之: とまあ、イメージでお伝えするとこんな感じですね +[2011/02/03 23:07:07] 裕之: 数もそうですが、属性も少なからず影響すると思います +[2011/02/03 23:08:16] doi: なるほど。 +[2011/02/03 23:08:28] 裕之: それと、仲間通しで組むフォーメーション +[2011/02/03 23:08:44] 裕之: 地形を意識して戦うことになりそうですね +[2011/02/03 23:09:25] 裕之: ドラクエみたいに、プレイヤーが入り込めない岩があったり、細い道なんかがあると +[2011/02/03 23:09:37] 裕之: 面白いかなと +[2011/02/03 23:10:48] doi: そうですよねぇ。 +[2011/02/03 23:11:03] 裕之: いいかんじですかねええ??? +[2011/02/03 23:11:46] doi: 日本人的には判官贔屓というか、弱者が強者を倒す方が好まれますよね。その方法の妙が痛快なんですよね。とはいっても、対戦型だとバランスが。。。というところで思考停止しています。 +[2011/02/03 23:12:25] 裕之: 舞台は三国志ですので、 +[2011/02/03 23:12:50] 裕之: 一撃で大量に倒せるような、兵器ってのはないですからねえ +[2011/02/03 23:13:21] 裕之: あとは、計略をどのようにゲームに組み込むかというのは重要な要素だと思います +[2011/02/03 23:13:42] 裕之: まだ決め切れてないので、 +[2011/02/03 23:13:57] 裕之: 火計とか、ただダメージを与えるだけにするか +[2011/02/03 23:14:36] 裕之: 一度火がついたユニットは、沈火するまでダメージを受け続けるとか +[2011/02/03 23:14:39] 裕之: などなど +[2011/02/03 23:17:20] doi: あとは、それに応じて、移動の仕方とかも変わってきますよね? +[2011/02/03 23:17:32] doi: 今は、1マスずつ動くことになったんでしたっけ? +[2011/02/03 23:17:41] 裕之: そうです +[2011/02/03 23:18:10] 裕之: そうじゃないと、システム的にどう解決するかで行き詰ってしまい、 +[2011/02/03 23:18:26] 裕之: 半オートマチックな操作は難しいという結論に至りましたので、 +[2011/02/03 23:18:47] 裕之: いっそのこと、もっとリアルタイムにしてしまえーという話になってます +[2011/02/03 23:19:19] doi: 半オートマチックは難しいですかね? +[2011/02/03 23:19:22] 裕之: 行き先だけ指定して、数秒かけて目的地に到達する +[2011/02/03 23:19:26] 裕之: みたいな。。 +[2011/02/03 23:19:51] 裕之: で、敵とその途中で遭遇した場合、戦闘が強制的に始まって +[2011/02/03 23:20:00] 裕之: とかというところをどう計算するか  +[2011/02/03 23:20:01] 裕之: ですね +[2011/02/03 23:20:07] 裕之: あと、 +[2011/02/03 23:20:26] 裕之: 目的地に移動している最中に、やっぱりこっち +[2011/02/03 23:20:41] 裕之: 見たいな操作も受け付けるようにしたいとか +[2011/02/03 23:20:51] 裕之: 出来そうですか??? +[2011/02/03 23:21:22] doi: 結局は同じなんじゃないかと。 +[2011/02/03 23:21:32] 裕之: 特に、通信部分で全体の状態を把握しなければいけないので、 +[2011/02/03 23:21:58] 裕之: パフォーマンス要求高そうだなあ、、なんて話してました。 +[2011/02/03 23:23:14] doi: クライアントが欲しい情報って、見える戦力の場所と、前回から今回からまでに起きた事象だけでいいのではないかと。 +[2011/02/03 23:24:28] 裕之: 多数のユーザーの位置情報と、敵と座標が交差したときに、攻撃ってゆうイベントが発生します +[2011/02/03 23:24:38] 裕之: おっと、意味不明な。。 +[2011/02/03 23:25:12] 裕之: 多数のユーザーの位置情報を常に受け取りつつ、 +[2011/02/03 23:25:24] 裕之: 座標が交差した場合に、 +[2011/02/03 23:25:25] 裕之: ですね +[2011/02/03 23:25:46] doi: 更新間隔をどのくらいにするかですが、 +[2011/02/03 23:25:56] doi: 移動命令をクライアントから送ることと +[2011/02/03 23:26:02] 裕之: はい +[2011/02/03 23:26:26] doi: サーバに一気に出した命令の一部を解釈することとは同等なのではないかと思っています。 +[2011/02/03 23:26:59] doi: つまり、ユーザが(0,0)から(10,10)に行きたいと命令を一度出して、半オートマチックにするということは、 +[2011/02/03 23:27:33] doi: 命令を出した次の更新タイミングでは、(0、1)に、 +[2011/02/03 23:27:40] doi: その次には、(1,1)に、 +[2011/02/03 23:28:01] doi: さらにその次には(1,2)にみたいな命令の連続だと思うんです。 +[2011/02/03 23:28:11] 裕之: そうですね +[2011/02/03 23:28:17] doi: これをクライアントから1マスずつ命令を出させたとしても、解決すべき問題は一緒なのではないかと。 +[2011/02/03 23:28:59] 裕之: ちなみに、更新間隔ということは、つまりターンがある前提なのかと思いますが、 +[2011/02/03 23:29:35] 裕之: 私が考えていたのは、ターンのない、リアルタイムな操作なんですね +[2011/02/03 23:29:56] 裕之: これも条件的にさほど変わりませんか??? +[2011/02/03 23:30:49] doi: リアルタイムな操作って、本質的に無理なのだと思っています。できるのは、ターンが細かい単位で動作する、擬似リアルタイムなのかと。 +[2011/02/03 23:31:15] 裕之: 丁度そんな解決法も話してまして、 +[2011/02/03 23:31:48] 裕之: 更新間隔がどれくらいあればいいか、下手すると超長くなってしまったり +[2011/02/03 23:32:02] 裕之: などなど悩んでました。 +[2011/02/03 23:32:15] 裕之: 完全なリアルタイムで行く場合、 +[2011/02/03 23:32:26] 裕之: 自分以外のプレイヤーの情報については、 +[2011/02/03 23:32:36] 裕之: サーバーからプッシュする形ですね +[2011/02/03 23:32:51] doi: 完全なリアルタイムであったとしても、クライアントからはポーリングすることになるので、その間隔以上のリアルタイム性は出せないのではないかと。 +[2011/02/03 23:32:55] 裕之: クライアントは受け取る都度画面でそれを表現するって形です +[2011/02/03 23:33:36] 裕之: ポーリングだと、電池の消耗が激しそうという話になりまして +[2011/02/03 23:34:21] 裕之: クライアントはポートを空けて、ポカーンとサーバーからのデータを待ち受けてる状態なら +[2011/02/03 23:34:42] 裕之: そんなに電池を食わないだろう、と考えていたわけです +[2011/02/03 23:34:56] doi: それってできるんですか?IPもころころ変わるのだと思いますし。調べてないんですが。 +[2011/02/03 23:35:17] 裕之: それをですね、今おこたねこさんが実験してるところです +[2011/02/03 23:35:35] doi: 2.2からできるんですかね。 +[2011/02/03 23:35:41] 裕之: 携帯ですからね。移動するとIP変わりますからね +[2011/02/03 23:36:11] 裕之: ソケット通信自体は、仕様上、1.6でも出来ますよね +[2011/02/03 23:36:44] doi: ソケット通信の仕組みだと、IP変わるとNGじゃないですか?というか、一度、切断されちゃうとおしまいじゃないですか? +[2011/02/03 23:37:05] 裕之: IPが変わることをキャッチできるかどうか +[2011/02/03 23:37:11] doi: iPhoneのAPNSのような仕組みなら行けるかもですが、 +[2011/02/03 23:37:12] doi: http://jp.techcrunch.com/archives/20100523chrome-to-android-push/ +[2011/02/03 23:37:15] doi: これですかね。 +[2011/02/03 23:37:21] 裕之: はやっ +[2011/02/03 23:37:42] doi: よく見てないので、検討はずれだったらごめんなさい。 +[2011/02/03 23:37:50] doi: ということで、これから帰宅するので、一度落ちますね。 +[2011/02/03 23:37:56] 裕之: あ、はい +[2011/02/03 23:38:02] 裕之: またお仕事でしたね +[2011/02/03 23:38:04] doi: 話の途中ですみません。 +[2011/02/03 23:38:06] 裕之: いえいえ +[2011/02/03 23:38:11] 裕之: ありがとうございます +[2011/02/03 23:38:14] 裕之: いつもいつも^^; +[2011/02/03 23:44:01] 裕之: Mizukamiさん +[2011/02/03 23:44:04] 裕之: 見てますか??? +[2011/02/03 23:44:19] 裕之: お、 +[2011/02/03 23:44:29] 裕之: narunaruさんも来ましたね! +[2011/02/03 23:48:50] 裕之: たぶん、Skypeもソケット通信してると思うんですけど、 +[2011/02/03 23:49:07] 裕之: 移動中でも途切れない仕組みを応用できれば +[2011/02/03 23:49:18] 裕之: 解決するんじゃないかなと思ってるわけですが、 +[2011/02/03 23:49:25] 裕之: どうやるんでしょう??? +[2011/02/03 23:50:52] narunaru: お疲れ様です^^ +[2011/02/03 23:50:58] 裕之: どうもー +[2011/02/03 23:51:02] narunaru: 過去ログ見てました- +[2011/02/03 23:51:13] 裕之: 丁度doiさんと入れ違いでしたね +[2011/02/03 23:51:20] narunaru: なかなかコアな話題が出てましたね^^ +[2011/02/03 23:51:46] 裕之: 楽しいですよね こうゆうの +[2011/02/03 23:52:20] narunaru: はい、楽しいですね。やはりみんなが思う箇所なんですねー +[2011/02/03 23:53:24] 裕之: 実際、携帯のアプリで双方向通信できている場合って、 +[2011/02/03 23:53:58] 裕之: 移動中でも途切れないので、技術的に解決する仕組みって結うのは +[2011/02/03 23:54:04] 裕之: 存在すると思うんですよね +[2011/02/03 23:54:46] narunaru: そうですね。skypeが解決できているなら、ほかの一般アプリでも実現できるのだと思います。 +[2011/02/03 23:55:06] 裕之: 出来るけどやりかたが^^; +[2011/02/03 23:55:14] narunaru: はい^^;; +[2011/02/03 23:56:19] 裕之: narunaruさんの周りにもコアな人が絶対いそうなので聞いて見てもらえればなあと。。 +[2011/02/03 23:57:31] narunaru: 了解です^^でもアンドロイドの開発やってる人は名古屋には居ないので、本社に戻ってからになりそうです^^;; +[2011/02/03 23:58:16] 裕之: Androidっていうレベルの話なのか、Unixのネットワークプログラミング的な話なのか。。。 +[2011/02/03 23:59:32] narunaru: Unixのネットワークプログラミングは、残念ながら今の場所には詳しい人は居ないですね^^; +[0:00:18] narunaru: 元、ナビの部隊なんでどちらかというとwindowsとtron系ばかりです。。。 +[0:00:20] 裕之: 自分の周りにも、なかなかそうゆう分野の人はいなそうだなあ。。 +[0:00:43] 裕之: ナビは、GPSでデータを受け取る場合、 +[0:00:48] 裕之: ソケットではないんですか? +[0:01:13] narunaru: う?ん、どうなんでしょう。。。GPSの部分はやったことないのですが、多分 +[0:01:28] narunaru: GPSデータは勝手に +[0:01:57] 裕之: でも何かしらのプロセスがあって、デジタル的にデータを受け取ってるので、基本原理としては同じなのかなあと。。 +[0:02:13] narunaru: すいません、離籍します。。。 +[0:02:17] 裕之: おっと +[0:02:20] 裕之: はい。。 +[0:02:24] 裕之: 悶々 +[0:02:25] narunaru: 英語の時間です。。 +[0:02:27] 裕之: 悶々 +[0:02:32] 裕之: なるほど^^ +[0:02:38] 裕之: 頑張ってくださいー +[0:26:25] narunaru: 無事完了しました^^ +[0:26:41] narunaru: 今日も大苦戦です^^;; +[0:26:57] 裕之: 早いですねー +[0:27:18] narunaru: で、続きですが、GPSは勝手に送られてきてハードで受信してそこからはI2SとかCANとかに +[0:27:26] narunaru: なってるんじゃないかと思ってます。 +[0:27:34] narunaru: そうぞうですが。。。 +[0:27:54] 裕之: なぞのキーワードが出てきましたが、そうゆうものなんですね +[0:28:39] narunaru: あ、CANとかI2Sは通信の手段です。 +[0:30:01] 裕之: WikipediaでI2Sを見たけど、日本語のようで日本語でないような世界でした! +[0:31:04] narunaru: 自分もAPIを使用しているだけなので、よくわかってないです^^; +[0:34:22] 裕之: いまずっと調べてたけど、謎です +[0:35:18] narunaru: 自分もナビをやってはじめて知りました +[0:35:32] 裕之: ソケット +[0:36:01] 裕之: narunaruさんの英会話中調べてたけど +[0:36:17] 裕之: いい感じの情報ないですねええええ +[0:36:42] narunaru: そうなんですね。。。 +[0:37:00] narunaru: 一般には公開されてない情報なんですかね +[0:37:50] 裕之: でもIPフォンアプリを作ってる人もいるから、 +[0:37:59] 裕之: あると思うんですけどねえ +[0:38:48] narunaru: そうなんですねー、ためしに英語で検索してみてはどうでしょうか? +[0:39:57] 裕之: お、早速narunaruさんの腕の見せ所ではないですか!? +[0:40:51] narunaru: はい、やっぱりそうきますか^^;;足りない英語力でがんばって調べて見ます +[0:57:01] doi: 帰宅しました?。 +[0:57:42] 裕之: はやいですねー :O +[0:58:01] doi: 1時間くらいですねぇ。 +[0:58:19] 裕之: あ、もうそんなに経ちますか^^; +[0:59:50] 裕之: 例の件、悶々としてましたが解決に至らずですねえ +[1:00:11] 裕之: こうゆうときはAndroidの会に投げてみますか^^ +[1:00:22] 裕之: 得意の (flex) +[1:00:52] doi: 何か知っている方はいそうですよね。 +[1:02:17] 裕之: さっき、narunaruさんと話してた様に、Skypeとか、IPphoneアプリとかで途切れず話せてるあたり、仕組みはあると思うんですよね +[1:02:45] doi: 確かにそうですねぇ。 +[1:03:00] 裕之: 全く途切れないっぽく感じますモンね +[1:03:20] doi: Skypeはインストールしたっきり使っていないのでw +[1:03:34] 裕之: あれま^^; +[1:07:04] 裕之: PJ活性化のために、まずはSourceForgeの方に投げてみようかと思います +[1:07:22] doi: http://androidoperatingsystem.net/2010/03/27/incorporating-socket-programming-into-your-applications/ +[1:07:31] doi: 電話同士で通信するって記事はありましたねぇ。 +[1:07:40] doi: でも、見ると普通にソケット通信してるだけなですよね。 +[1:08:02] 裕之: アドレスが変わったときが鍵なんですよね +[1:08:55] 裕之: public static String SERVERIP = "10.0.2.15"; は相手のアドレスのことですかねえ?? +[1:09:50] doi: デフォルトで入っていて、起動時に自分のIPに書き換えるようです。 +[1:10:11] 裕之: あ、そうゆうことですね +[1:15:01] 裕之: 今猛烈にコード読んでるとこでしたか? +[1:15:38] narunaru: 自分はコード見てましたが、よくわからなかったです^^; +[1:15:47] 裕之: むむ +[1:21:46] 裕之: サーバとの通信に使うアドレスがしりたいのであれば、 + +SocketオブジェクトのLocalAddressプロパティを見れば、分かります。 + +説明がアレなので、コードざっと書くと、 + +--- + +var sock:Socket = new Socket(); +sock.addEventListener(Event.CONNECT, ConnectCompleteHandler); +sock.connect("server address", 80); // 実際に接続するサーバのアドレスとポートを指定。 + +function ConnectCompleteHandler(ev:Event):void { +trace("connect :: use LocalAddress >> " + sock.localAddress); +} + +--- + +とかいう感じ。 + +BSD Socketで言う所の、getsockname みたいな感覚ですね。 + + +試行されていたNetworkInterfaceを使う方法は、default gateway も合わせて検出できれば、サーバと通信するものが選べそうではありますが、AIRでは標準でデフォルトゲートウェイ拾えないみたいなんで、その方法を貫きたい場合は、Native Process使って、Cなりjavaなりで書いた別プロセスで拾った結果を戻すしかなさげですねー。 +[1:22:00] 裕之: こんなのもありましたけど。。 +[1:22:48] 裕之: http://www.fxug.net/modules/xhnewbb/viewtopic.php?topic_id=4036 +[1:22:53] 裕之: ですけども。。 +[1:23:25] doi: う?ん。Skypeがどうやってるかはよく分かりませんが、 +[1:23:29] 裕之: はい +[1:23:55] doi: ゲームに関してはそこまでの接続性を求められないので、対処はできるでしょうね。切れたら、新しいIPをサーバに通知すればいいだけの話なので。 +[1:24:09] 裕之: そうですね +[1:24:15] doi: あとは、それで電力消費がどうなのかですが。 +[1:24:34] doi: まぁ、気にしなくてもいいかなと個人的には思ったりします。 +[1:25:52] 裕之: なにぶん仕様しだいですね +[1:26:23] 裕之: 結論としては、半オートマチック操作と、 +[1:26:37] doi: やりたいことが十分に面白ければ、電池の持ちが悪くても遊んでもらえることに期待。 +[1:26:56] 裕之: 今コミットしてる仕様ではそんなに大差ないかもといったところでしょうか +[1:27:41] 裕之: 優先度としては面白さがやっぱり1番に来ますよね +[1:30:18] doi: でしょうね。 +[1:31:39] 裕之: そろそろzzz仕様かと思いますが、 +[1:32:19] 裕之: 半オートか、リアルタイム操作かは、また相談させてください +[1:32:35] doi: はい。 +[1:32:43] doi: また、よろしくお願いします。 +[1:32:55] 裕之: ありがとうございましたー +[1:33:08] 裕之: どっちが面白いかで、検討ですね +[1:33:10] narunaru: お疲れ様でした^^ +[1:33:16] 裕之: それではー +[1:33:26] 裕之: お休みなさいー \ No newline at end of file From sangokushi-svn @ lists.sourceforge.jp Fri Feb 4 22:08:41 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Fri, 04 Feb 2011 22:08:41 +0900 Subject: [Sangokushi-svn] =?utf-8?q?=5BSVN=5FComitted=5D_=5B477=5D_Twitter?= =?utf-8?b?5qmf6IO944KS5aSW44GX44Gf57Ch5piT54mI44Gn44GZ44CC?= In-Reply-To: <1296755498.913960.12974.nullmailer@users.sourceforge.jp> References: <1296755498.913960.12974.nullmailer@users.sourceforge.jp> Message-ID: <4D4BFA59.9030607@gmail.com> akifumi3さん 裕之です。 修正頂きありがとうございました。 早かったですね。 暫く、環境を動かしてなかったので、 今アップデート中です。 アップデート完了後に動かしてみて、 問題なさそうであればリリースします。 で、A3 Winterにもそれこそだめもとで、一応エントリーしときます。 (2011/02/04 2:51), OpenSangokushi commit ML wrote: > Revision: 477 > http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=477 > Author: akifumi3 > Date: 2011-02-04 02:51:38 +0900 (Fri, 04 Feb 2011) > > Log Message: > ----------- > Twitter機能を外した簡易版です。 > オープニングのTwitter認証、戦闘画面のメッセージ部分を削除しました。 > > Modified Paths: > -------------- > branches/OpenSangokushi_without_twitter/default.properties > branches/OpenSangokushi_without_twitter/gen/jp/or/cute/sangokushi/R.java > branches/OpenSangokushi_without_twitter/res/layout/battle.xml > branches/OpenSangokushi_without_twitter/res/layout/opening.xml > branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Battle.java > branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Opening.java > branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/view/MapView.java > > Added Paths: > ----------- > branches/OpenSangokushi_without_twitter/ > branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs > > Removed Paths: > ------------- > branches/OpenSangokushi_without_twitter/bin/OpenSangokushi.apk > branches/OpenSangokushi_without_twitter/bin/classes.dex > branches/OpenSangokushi_without_twitter/bin/jp/ > branches/OpenSangokushi_without_twitter/bin/resources.ap_ > > Added: branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs > =================================================================== > --- branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs (rev 0) > +++ branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs 2011-02-03 17:51:38 UTC (rev 477) > @@ -0,0 +1,3 @@ > +#Fri Feb 04 01:39:07 JST 2011 > +eclipse.preferences.version=1 > +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false > > Deleted: branches/OpenSangokushi_without_twitter/bin/OpenSangokushi.apk > =================================================================== > (Binary files differ) > > Deleted: branches/OpenSangokushi_without_twitter/bin/classes.dex > =================================================================== > (Binary files differ) > > Deleted: branches/OpenSangokushi_without_twitter/bin/resources.ap_ > =================================================================== > (Binary files differ) > > Modified: branches/OpenSangokushi_without_twitter/default.properties > =================================================================== > --- trunk/OpenSangokushi/default.properties 2011-02-01 14:56:41 UTC (rev 476) > +++ branches/OpenSangokushi_without_twitter/default.properties 2011-02-03 17:51:38 UTC (rev 477) > @@ -10,4 +10,4 @@ > # Indicates whether an apk should be generated for each density. > split.density=false > # Project target. > -target=android-4 > +target=android-7 > > Modified: branches/OpenSangokushi_without_twitter/gen/jp/or/cute/sangokushi/R.java > =================================================================== > --- trunk/OpenSangokushi/gen/jp/or/cute/sangokushi/R.java 2011-02-01 14:56:41 UTC (rev 476) > +++ branches/OpenSangokushi_without_twitter/gen/jp/or/cute/sangokushi/R.java 2011-02-03 17:51:38 UTC (rev 477) > @@ -1,144 +1,141 @@ > -/* AUTO-GENERATED FILE. DO NOT MODIFY. > - * > - * This class was automatically generated by the > - * aapt tool from the resource data it found. It > - * should not be modified by hand. > - */ > - > -package jp.or.cute.sangokushi; > - > -public final class R { > - public static final class anim { > - public static final int logo_scale=0x7f040000; > - } > - public static final class attr { > - } > - public static final class color { > - public static final int solid_blue=0x7f060001; > - public static final int solid_green=0x7f060002; > - public static final int solid_red=0x7f060000; > - public static final int solid_white=0x7f060004; > - public static final int solid_yellow=0x7f060003; > - public static final int start_button=0x7f060005; > - } > - public static final class drawable { > - public static final int castle=0x7f020000; > - public static final int desert=0x7f020001; > - public static final int dra=0x7f020002; > - public static final int forest=0x7f020003; > - public static final int gi=0x7f020004; > - public static final int gi_bg=0x7f020005; > - public static final int go=0x7f020006; > - public static final int go_bg=0x7f020007; > - public static final int grass=0x7f020008; > - public static final int icon=0x7f020009; > - public static final int king=0x7f02000a; > - public static final int king_back=0x7f02000b; > - public static final int loading=0x7f02000c; > - public static final int logo=0x7f02000d; > - public static final int map_draft=0x7f02000e; > - public static final int mountain=0x7f02000f; > - public static final int openingback=0x7f020010; > - public static final int player=0x7f020011; > - public static final int player_back=0x7f020012; > - public static final int street=0x7f020013; > - public static final int syoku=0x7f020014; > - public static final int syoku_bg=0x7f020015; > - public static final int tree=0x7f020016; > - public static final int water=0x7f020017; > - } > - public static final class id { > - public static final int Button01=0x7f080025; > - public static final int ChatView=0x7f080007; > - public static final int EditText01=0x7f080024; > - public static final int LinearLayout01=0x7f080000; > - public static final int LinearLayout02=0x7f080001; > - public static final int LinearLayout03=0x7f08000a; > - public static final int LinearLayout04=0x7f080002; > - public static final int LinearLayout06=0x7f080014; > - public static final int ListView01=0x7f080015; > - public static final int MapView=0x7f080008; > - public static final int ScrollView01=0x7f08001e; > - public static final int StatusDetailView=0x7f080009; > - public static final int StatusView=0x7f080005; > - public static final int TableLayout01=0x7f080017; > - public static final int TableRow01=0x7f080018; > - public static final int TableRow02=0x7f080019; > - public static final int TableRow03=0x7f08001b; > - public static final int TextView01=0x7f08000b; > - public static final int TextView02=0x7f080003; > - public static final int TextView03=0x7f080004; > - public static final int TextView04=0x7f08001a; > - public static final int TextView05=0x7f08001c; > - public static final int TextView06=0x7f08001d; > - public static final int Title01=0x7f080012; > - public static final int Title02=0x7f080013; > - public static final int TweetListView=0x7f080026; > - public static final int WholeMap=0x7f080006; > - public static final int edittext_name=0x7f08000e; > - public static final int lobby_button=0x7f080023; > - public static final int loginBtn=0x7f080011; > - public static final int logo=0x7f08001f; > - public static final int map=0x7f080016; > - public static final int name=0x7f08000d; > - public static final int presetBtn=0x7f080010; > - public static final int serif=0x7f08000f; > - public static final int start_button=0x7f080021; > - public static final int title=0x7f08000c; > - public static final int tweet_name=0x7f080027; > - public static final int tweet_tweet=0x7f080028; > - public static final int twitter_button=0x7f080022; > - public static final int twitter_image=0x7f080020; > - } > - public static final class layout { > - public static final int battle=0x7f030000; > - public static final int initialization=0x7f030001; > - public static final int list=0x7f030002; > - public static final int lobby=0x7f030003; > - public static final int main=0x7f030004; > - public static final int map=0x7f030005; > - public static final int opening=0x7f030006; > - public static final int popup=0x7f030007; > - public static final int tweetlist=0x7f030008; > - } > - public static final class raw { > - public static final int bgm=0x7f050000; > - } > - public static final class string { > - public static final int app_name=0x7f070000; > - public static final int auth_progress_text=0x7f070008; > - public static final int auth_progress_title=0x7f070007; > - public static final int authenticate_button=0x7f070003; > - public static final int authenticated=0x7f070005; > - public static final int bad_value=0x7f070006; > - public static final int cancel=0x7f070019; > - public static final int chat_edit_hint=0x7f07000c; > - public static final int commander=0x7f07001c; > - public static final int compete=0x7f07001a; > - public static final int game_user=0x7f07001d; > - public static final int general=0x7f07001b; > - public static final int login_button=0x7f07000e; > - public static final int login_settings=0x7f07000d; > - public static final int menu_reset_userstate=0x7f07001f; > - public static final int menu_reset_userstate_comlplatemessage=0x7f070020; > - public static final int menu_reset_userstate_notregistered=0x7f070021; > - public static final int not_authenticated=0x7f070004; > - public static final int ok=0x7f070018; > - public static final int opening_message=0x7f070001; > - public static final int send=0x7f07000b; > - public static final int start_button=0x7f070002; > - public static final int title=0x7f070022; > - public static final int title_initialization=0x7f070009; > - public static final int title_start=0x7f07000a; > - public static final int tweet_error=0x7f07001e; > - public static final int tweet_progress_text=0x7f070017; > - public static final int tweet_progress_title=0x7f070016; > - public static final int twitter_id=0x7f070011; > - public static final int twitter_id_summary=0x7f070012; > - public static final int twitter_key_edit_hint=0x7f07000f; > - public static final int twitter_notauth_message=0x7f070015; > - public static final int twitter_password=0x7f070013; > - public static final int twitter_password_summary=0x7f070014; > - public static final int twitter_secret_edit_hint=0x7f070010; > - } > -} > +/* AUTO-GENERATED FILE. DO NOT MODIFY. > + * > + * This class was automatically generated by the > + * aapt tool from the resource data it found. It > + * should not be modified by hand. > + */ > + > +package jp.or.cute.sangokushi; > + > +public final class R { > + public static final class anim { > + public static final int logo_scale=0x7f040000; > + } > + public static final class attr { > + } > + public static final class color { > + public static final int solid_blue=0x7f060001; > + public static final int solid_green=0x7f060002; > + public static final int solid_red=0x7f060000; > + public static final int solid_white=0x7f060004; > + public static final int solid_yellow=0x7f060003; > + public static final int start_button=0x7f060005; > + } > + public static final class drawable { > + public static final int castle=0x7f020000; > + public static final int desert=0x7f020001; > + public static final int dra=0x7f020002; > + public static final int forest=0x7f020003; > + public static final int gi=0x7f020004; > + public static final int gi_bg=0x7f020005; > + public static final int go=0x7f020006; > + public static final int go_bg=0x7f020007; > + public static final int grass=0x7f020008; > + public static final int icon=0x7f020009; > + public static final int king=0x7f02000a; > + public static final int king_back=0x7f02000b; > + public static final int loading=0x7f02000c; > + public static final int logo=0x7f02000d; > + public static final int map_draft=0x7f02000e; > + public static final int mountain=0x7f02000f; > + public static final int openingback=0x7f020010; > + public static final int player=0x7f020011; > + public static final int player_back=0x7f020012; > + public static final int street=0x7f020013; > + public static final int syoku=0x7f020014; > + public static final int syoku_bg=0x7f020015; > + public static final int tree=0x7f020016; > + public static final int water=0x7f020017; > + } > + public static final class id { > + public static final int Button01=0x7f080022; > + public static final int EditText01=0x7f080021; > + public static final int LinearLayout01=0x7f080000; > + public static final int LinearLayout02=0x7f080001; > + public static final int LinearLayout03=0x7f080009; > + public static final int LinearLayout04=0x7f080002; > + public static final int LinearLayout06=0x7f080013; > + public static final int ListView01=0x7f080014; > + public static final int MapView=0x7f080007; > + public static final int ScrollView01=0x7f08001d; > + public static final int StatusDetailView=0x7f080008; > + public static final int StatusView=0x7f080005; > + public static final int TableLayout01=0x7f080016; > + public static final int TableRow01=0x7f080017; > + public static final int TableRow02=0x7f080018; > + public static final int TableRow03=0x7f08001a; > + public static final int TextView01=0x7f08000a; > + public static final int TextView02=0x7f080003; > + public static final int TextView03=0x7f080004; > + public static final int TextView04=0x7f080019; > + public static final int TextView05=0x7f08001b; > + public static final int TextView06=0x7f08001c; > + public static final int Title01=0x7f080011; > + public static final int Title02=0x7f080012; > + public static final int TweetListView=0x7f080023; > + public static final int WholeMap=0x7f080006; > + public static final int edittext_name=0x7f08000d; > + public static final int loginBtn=0x7f080010; > + public static final int logo=0x7f08001e; > + public static final int map=0x7f080015; > + public static final int name=0x7f08000c; > + public static final int presetBtn=0x7f08000f; > + public static final int serif=0x7f08000e; > + public static final int start_button=0x7f080020; > + public static final int title=0x7f08000b; > + public static final int tweet_name=0x7f080024; > + public static final int tweet_tweet=0x7f080025; > + public static final int twitter_image=0x7f08001f; > + } > + public static final class layout { > + public static final int battle=0x7f030000; > + public static final int initialization=0x7f030001; > + public static final int list=0x7f030002; > + public static final int lobby=0x7f030003; > + public static final int main=0x7f030004; > + public static final int map=0x7f030005; > + public static final int opening=0x7f030006; > + public static final int popup=0x7f030007; > + public static final int tweetlist=0x7f030008; > + } > + public static final class raw { > + public static final int bgm=0x7f050000; > + } > + public static final class string { > + public static final int app_name=0x7f070000; > + public static final int auth_progress_text=0x7f070008; > + public static final int auth_progress_title=0x7f070007; > + public static final int authenticate_button=0x7f070003; > + public static final int authenticated=0x7f070005; > + public static final int bad_value=0x7f070006; > + public static final int cancel=0x7f070019; > + public static final int chat_edit_hint=0x7f07000c; > + public static final int commander=0x7f07001c; > + public static final int compete=0x7f07001a; > + public static final int game_user=0x7f07001d; > + public static final int general=0x7f07001b; > + public static final int login_button=0x7f07000e; > + public static final int login_settings=0x7f07000d; > + public static final int menu_reset_userstate=0x7f07001f; > + public static final int menu_reset_userstate_comlplatemessage=0x7f070020; > + public static final int menu_reset_userstate_notregistered=0x7f070021; > + public static final int not_authenticated=0x7f070004; > + public static final int ok=0x7f070018; > + public static final int opening_message=0x7f070001; > + public static final int send=0x7f07000b; > + public static final int start_button=0x7f070002; > + public static final int title=0x7f070022; > + public static final int title_initialization=0x7f070009; > + public static final int title_start=0x7f07000a; > + public static final int tweet_error=0x7f07001e; > + public static final int tweet_progress_text=0x7f070017; > + public static final int tweet_progress_title=0x7f070016; > + public static final int twitter_id=0x7f070011; > + public static final int twitter_id_summary=0x7f070012; > + public static final int twitter_key_edit_hint=0x7f07000f; > + public static final int twitter_notauth_message=0x7f070015; > + public static final int twitter_password=0x7f070013; > + public static final int twitter_password_summary=0x7f070014; > + public static final int twitter_secret_edit_hint=0x7f070010; > + } > +} > > Modified: branches/OpenSangokushi_without_twitter/res/layout/battle.xml > =================================================================== > --- trunk/OpenSangokushi/res/layout/battle.xml 2011-02-01 14:56:41 UTC (rev 476) > +++ branches/OpenSangokushi_without_twitter/res/layout/battle.xml 2011-02-03 17:51:38 UTC (rev 477) > @@ -15,7 +15,7 @@ > > > > - > + > > > > > Modified: branches/OpenSangokushi_without_twitter/res/layout/opening.xml > =================================================================== > --- trunk/OpenSangokushi/res/layout/opening.xml 2011-02-01 14:56:41 UTC (rev 476) > +++ branches/OpenSangokushi_without_twitter/res/layout/opening.xml 2011-02-03 17:51:38 UTC (rev 477) > @@ -9,27 +9,11 @@ > android:id="@+id/start_button" > android:layout_width="wrap_content" > android:layout_height="wrap_content" > - android:textSize="30px" > + android:textSize="40px" > android:padding="5px" > android:layout_gravity="center_horizontal" > android:textColor="@color/solid_white" > - android:layout_marginTop="270dp" android:text="@string/start_button" android:background="#00000000"> > - > - > + android:layout_marginTop="330dp" android:text="@string/start_button" android:background="#00000000"> > > > > \ No newline at end of file > > Modified: branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Battle.java > =================================================================== > --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Battle.java 2011-02-01 14:56:41 UTC (rev 476) > +++ branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Battle.java 2011-02-03 17:51:38 UTC (rev 477) > @@ -214,7 +214,7 @@ > setContentView(R.layout.battle); > SangokushiPreferences pref = new SangokushiPreferences(this); > > - mChatview = (ChatView) findViewById(R.id.ChatView); > + //mChatview = (ChatView) findViewById(R.id.ChatView); > //userid,roomid > Intent intent = getIntent(); > String msg = (String)intent.getSerializableExtra("String"); > @@ -233,7 +233,7 @@ > httpclient.setHttpCommand(command); > > String result = (String) httpclient.execute(); > - Log.d("getRoomInfo","rsult="+result); > + Log.d("getRoomInfo","result="+result); > String[] param = result.split(">>"); > String[] value = param[1].split(","); > int maxTurn = Integer.valueOf(value[0]); > @@ -307,19 +307,19 @@ > map.setUserAndRoom(mUserID,mRoomID); > map.setContent(this); > > - mChatview.init(this, mRoomID, mPlayer.getCountryName()); > + //mChatview.init(this, mRoomID, mPlayer.getCountryName()); > > // initPopUp(); > - mTweetList = mChatview.getTweetList(); > - mTweetEditor = mChatview.getTweetEditor(); > + // mTweetList = mChatview.getTweetList(); > + //mTweetEditor = mChatview.getTweetEditor(); > //mTweetList = (ListView) mChatview.findViewById(R.id.TweetListView); > // mChatTweetLists.add(new TweetItem("AB1")); > // mChatTweetLists.add(new TweetItem("AB2")); > // mChatTweetLists.add(new TweetItem("AB3")); > // mChatTweetLists.add(new TweetItem("AB4")); > > - mTweetArrayAdapter = new TweetArrayAdapter(this, R.layout.tweetlist, mChatTweetLists); > - mTweetList.setAdapter(mTweetArrayAdapter); > + // mTweetArrayAdapter = new TweetArrayAdapter(this, R.layout.tweetlist, mChatTweetLists); > + //mTweetList.setAdapter(mTweetArrayAdapter); > //mTweetList.setSelection(0); > } > > > Modified: branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Opening.java > =================================================================== > --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java 2011-02-01 14:56:41 UTC (rev 476) > +++ branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Opening.java 2011-02-03 17:51:38 UTC (rev 477) > @@ -185,8 +185,12 @@ > //スタートボタンは認証終了まで非表示 > mStartButton = (Button)findViewById(R.id.start_button); > //mStartButton.setEnabled(false); > + > + //2011.2.3 > + //akifumi3 > + //一旦Twitter認証を外します。 > + /* > mTwitterButton = (Button)findViewById(R.id.twitter_button); > - > mLobbyButton = (Button)findViewById(R.id.lobby_button); > mLobbyButton.setOnClickListener(new OnClickListener() { > @Override > @@ -194,6 +198,7 @@ > startLobby(); > } > }); > + */ > > //保存している情報によって遷移を決定 > int startBtnTitle = R.string.title_start; > @@ -219,6 +224,10 @@ > Toast.makeText(this, "ようこそ" + mPlayer.getUserName() + "様", Toast.LENGTH_LONG).show(); > } > > + > + //2011.2.3 > + //akifumi3 > + /* > //Twitter認証チェック > //Opening画面表示中にTwitterの認証情報を確認させる > mOperator = new TwitterOperator(this); > @@ -232,6 +241,7 @@ > }else{ > mTwitterButton.setEnabled(false); > } > + */ > } > > @Override > > Modified: branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/view/MapView.java > =================================================================== > --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/view/MapView.java 2011-02-01 14:56:41 UTC (rev 476) > +++ branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/view/MapView.java 2011-02-03 17:51:38 UTC (rev 477) > @@ -112,24 +112,6 @@ > */ > public boolean onKeyDown(int keyCode, KeyEvent event) { > Log.d("MapView","onKeyDown code:"+keyCode); > - // if (keyCode == KeyEvent.KEYCODE_MENU) { > - // AlertDialog.Builder builder = new AlertDialog.Builder(activity); > - // builder.setMessage("Helpを表示しますか?") > - // .setCancelable(false) > - // .setPositiveButton("Yes", new DialogInterface.OnClickListener() { > - // public void onClick(DialogInterface dialog, int id) { > - > - // } > - // }) > - // .setNegativeButton("No", new DialogInterface.OnClickListener() { > - // public void onClick(DialogInterface dialog, int id) { > - // dialog.cancel(); > - // } > - // }); > - // AlertDialog alert = builder.create(); > - // alert.show(); > - // return true; > - // } > return false; > } > > > _______________________________________________ > Sangokushi-svn mailing list > Sangokushi-svn @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/sangokushi-svn From sangokushi-svn @ lists.sourceforge.jp Fri Feb 4 22:39:23 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Fri, 04 Feb 2011 22:39:23 +0900 Subject: [Sangokushi-svn] =?utf-8?q?=5BSVN=5FComitted=5D_=5B477=5D_Twitter?= =?utf-8?b?5qmf6IO944KS5aSW44GX44Gf57Ch5piT54mI44Gn44GZ44CC?= In-Reply-To: <4D4BFA59.9030607@gmail.com> References: <1296755498.913960.12974.nullmailer@users.sourceforge.jp> <4D4BFA59.9030607@gmail.com> Message-ID: <4D4C018B.20309@gmail.com> 裕之です。 akifumi3さんにコミットして頂いた[#477]をテスト中です。 Map上で移動先を指定したら、だいぶ違うところへ飛んでいってしまいました。 割と右下くらいの位置からスタートしましたが、 1ターンで一気に左端に。。 やっぱり単に取り去るだけではいけないのかもですね。 という事で、オープニングの修正だけ先行してリリースしようと思います。 Twitter非表示の方は、可能であればチャレンジして頂きたいと思いますが、 1.0版の開発に優先的にお願いしたいので、この件はクローズでもOKだと思って ます。 akifumi3さん。ありがとうございました。 (2011/02/04 22:08), Hiroyuki_S wrote: > akifumi3さん > > 裕之です。 > > 修正頂きありがとうございました。 > 早かったですね。 > > 暫く、環境を動かしてなかったので、 > 今アップデート中です。 > アップデート完了後に動かしてみて、 > 問題なさそうであればリリースします。 > > で、A3 Winterにもそれこそだめもとで、一応エントリーしときます。 > > > (2011/02/04 2:51), OpenSangokushi commit ML wrote: >> Revision: 477 >> http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=477 >> Author: akifumi3 >> Date: 2011-02-04 02:51:38 +0900 (Fri, 04 Feb 2011) >> >> Log Message: >> ----------- >> Twitter機能を外した簡易版です。 >> オープニングのTwitter認証、戦闘画面のメッセージ部分を削除しました。 >> >> Modified Paths: >> -------------- >> branches/OpenSangokushi_without_twitter/default.properties >> branches/OpenSangokushi_without_twitter/gen/jp/or/cute/sangokushi/R.java >> branches/OpenSangokushi_without_twitter/res/layout/battle.xml >> branches/OpenSangokushi_without_twitter/res/layout/opening.xml >> branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Battle.java >> >> branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Opening.java >> >> branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/view/MapView.java >> >> >> Added Paths: >> ----------- >> branches/OpenSangokushi_without_twitter/ >> branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs >> >> >> Removed Paths: >> ------------- >> branches/OpenSangokushi_without_twitter/bin/OpenSangokushi.apk >> branches/OpenSangokushi_without_twitter/bin/classes.dex >> branches/OpenSangokushi_without_twitter/bin/jp/ >> branches/OpenSangokushi_without_twitter/bin/resources.ap_ >> >> Added: >> branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs >> >> =================================================================== >> --- >> branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs >> (rev 0) >> +++ >> branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs >> 2011-02-03 17:51:38 UTC (rev 477) >> @@ -0,0 +1,3 @@ >> +#Fri Feb 04 01:39:07 JST 2011 >> +eclipse.preferences.version=1 >> +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false >> >> >> Deleted: branches/OpenSangokushi_without_twitter/bin/OpenSangokushi.apk >> =================================================================== >> (Binary files differ) >> >> Deleted: branches/OpenSangokushi_without_twitter/bin/classes.dex >> =================================================================== >> (Binary files differ) >> >> Deleted: branches/OpenSangokushi_without_twitter/bin/resources.ap_ >> =================================================================== >> (Binary files differ) >> >> Modified: branches/OpenSangokushi_without_twitter/default.properties >> =================================================================== >> --- trunk/OpenSangokushi/default.properties 2011-02-01 14:56:41 UTC >> (rev 476) >> +++ branches/OpenSangokushi_without_twitter/default.properties >> 2011-02-03 17:51:38 UTC (rev 477) >> @@ -10,4 +10,4 @@ >> # Indicates whether an apk should be generated for each density. >> split.density=false >> # Project target. >> -target=android-4 >> +target=android-7 >> >> Modified: >> branches/OpenSangokushi_without_twitter/gen/jp/or/cute/sangokushi/R.java >> =================================================================== >> --- trunk/OpenSangokushi/gen/jp/or/cute/sangokushi/R.java 2011-02-01 >> 14:56:41 UTC (rev 476) >> +++ >> branches/OpenSangokushi_without_twitter/gen/jp/or/cute/sangokushi/R.java >> 2011-02-03 17:51:38 UTC (rev 477) >> @@ -1,144 +1,141 @@ >> -/* AUTO-GENERATED FILE. DO NOT MODIFY. >> - * >> - * This class was automatically generated by the >> - * aapt tool from the resource data it found. It >> - * should not be modified by hand. >> - */ >> - >> -package jp.or.cute.sangokushi; >> - >> -public final class R { >> - public static final class anim { >> - public static final int logo_scale=0x7f040000; >> - } >> - public static final class attr { >> - } >> - public static final class color { >> - public static final int solid_blue=0x7f060001; >> - public static final int solid_green=0x7f060002; >> - public static final int solid_red=0x7f060000; >> - public static final int solid_white=0x7f060004; >> - public static final int solid_yellow=0x7f060003; >> - public static final int start_button=0x7f060005; >> - } >> - public static final class drawable { >> - public static final int castle=0x7f020000; >> - public static final int desert=0x7f020001; >> - public static final int dra=0x7f020002; >> - public static final int forest=0x7f020003; >> - public static final int gi=0x7f020004; >> - public static final int gi_bg=0x7f020005; >> - public static final int go=0x7f020006; >> - public static final int go_bg=0x7f020007; >> - public static final int grass=0x7f020008; >> - public static final int icon=0x7f020009; >> - public static final int king=0x7f02000a; >> - public static final int king_back=0x7f02000b; >> - public static final int loading=0x7f02000c; >> - public static final int logo=0x7f02000d; >> - public static final int map_draft=0x7f02000e; >> - public static final int mountain=0x7f02000f; >> - public static final int openingback=0x7f020010; >> - public static final int player=0x7f020011; >> - public static final int player_back=0x7f020012; >> - public static final int street=0x7f020013; >> - public static final int syoku=0x7f020014; >> - public static final int syoku_bg=0x7f020015; >> - public static final int tree=0x7f020016; >> - public static final int water=0x7f020017; >> - } >> - public static final class id { >> - public static final int Button01=0x7f080025; >> - public static final int ChatView=0x7f080007; >> - public static final int EditText01=0x7f080024; >> - public static final int LinearLayout01=0x7f080000; >> - public static final int LinearLayout02=0x7f080001; >> - public static final int LinearLayout03=0x7f08000a; >> - public static final int LinearLayout04=0x7f080002; >> - public static final int LinearLayout06=0x7f080014; >> - public static final int ListView01=0x7f080015; >> - public static final int MapView=0x7f080008; >> - public static final int ScrollView01=0x7f08001e; >> - public static final int StatusDetailView=0x7f080009; >> - public static final int StatusView=0x7f080005; >> - public static final int TableLayout01=0x7f080017; >> - public static final int TableRow01=0x7f080018; >> - public static final int TableRow02=0x7f080019; >> - public static final int TableRow03=0x7f08001b; >> - public static final int TextView01=0x7f08000b; >> - public static final int TextView02=0x7f080003; >> - public static final int TextView03=0x7f080004; >> - public static final int TextView04=0x7f08001a; >> - public static final int TextView05=0x7f08001c; >> - public static final int TextView06=0x7f08001d; >> - public static final int Title01=0x7f080012; >> - public static final int Title02=0x7f080013; >> - public static final int TweetListView=0x7f080026; >> - public static final int WholeMap=0x7f080006; >> - public static final int edittext_name=0x7f08000e; >> - public static final int lobby_button=0x7f080023; >> - public static final int loginBtn=0x7f080011; >> - public static final int logo=0x7f08001f; >> - public static final int map=0x7f080016; >> - public static final int name=0x7f08000d; >> - public static final int presetBtn=0x7f080010; >> - public static final int serif=0x7f08000f; >> - public static final int start_button=0x7f080021; >> - public static final int title=0x7f08000c; >> - public static final int tweet_name=0x7f080027; >> - public static final int tweet_tweet=0x7f080028; >> - public static final int twitter_button=0x7f080022; >> - public static final int twitter_image=0x7f080020; >> - } >> - public static final class layout { >> - public static final int battle=0x7f030000; >> - public static final int initialization=0x7f030001; >> - public static final int list=0x7f030002; >> - public static final int lobby=0x7f030003; >> - public static final int main=0x7f030004; >> - public static final int map=0x7f030005; >> - public static final int opening=0x7f030006; >> - public static final int popup=0x7f030007; >> - public static final int tweetlist=0x7f030008; >> - } >> - public static final class raw { >> - public static final int bgm=0x7f050000; >> - } >> - public static final class string { >> - public static final int app_name=0x7f070000; >> - public static final int auth_progress_text=0x7f070008; >> - public static final int auth_progress_title=0x7f070007; >> - public static final int authenticate_button=0x7f070003; >> - public static final int authenticated=0x7f070005; >> - public static final int bad_value=0x7f070006; >> - public static final int cancel=0x7f070019; >> - public static final int chat_edit_hint=0x7f07000c; >> - public static final int commander=0x7f07001c; >> - public static final int compete=0x7f07001a; >> - public static final int game_user=0x7f07001d; >> - public static final int general=0x7f07001b; >> - public static final int login_button=0x7f07000e; >> - public static final int login_settings=0x7f07000d; >> - public static final int menu_reset_userstate=0x7f07001f; >> - public static final int >> menu_reset_userstate_comlplatemessage=0x7f070020; >> - public static final int menu_reset_userstate_notregistered=0x7f070021; >> - public static final int not_authenticated=0x7f070004; >> - public static final int ok=0x7f070018; >> - public static final int opening_message=0x7f070001; >> - public static final int send=0x7f07000b; >> - public static final int start_button=0x7f070002; >> - public static final int title=0x7f070022; >> - public static final int title_initialization=0x7f070009; >> - public static final int title_start=0x7f07000a; >> - public static final int tweet_error=0x7f07001e; >> - public static final int tweet_progress_text=0x7f070017; >> - public static final int tweet_progress_title=0x7f070016; >> - public static final int twitter_id=0x7f070011; >> - public static final int twitter_id_summary=0x7f070012; >> - public static final int twitter_key_edit_hint=0x7f07000f; >> - public static final int twitter_notauth_message=0x7f070015; >> - public static final int twitter_password=0x7f070013; >> - public static final int twitter_password_summary=0x7f070014; >> - public static final int twitter_secret_edit_hint=0x7f070010; >> - } >> -} >> +/* AUTO-GENERATED FILE. DO NOT MODIFY. >> + * >> + * This class was automatically generated by the >> + * aapt tool from the resource data it found. It >> + * should not be modified by hand. >> + */ >> + >> +package jp.or.cute.sangokushi; >> + >> +public final class R { >> + public static final class anim { >> + public static final int logo_scale=0x7f040000; >> + } >> + public static final class attr { >> + } >> + public static final class color { >> + public static final int solid_blue=0x7f060001; >> + public static final int solid_green=0x7f060002; >> + public static final int solid_red=0x7f060000; >> + public static final int solid_white=0x7f060004; >> + public static final int solid_yellow=0x7f060003; >> + public static final int start_button=0x7f060005; >> + } >> + public static final class drawable { >> + public static final int castle=0x7f020000; >> + public static final int desert=0x7f020001; >> + public static final int dra=0x7f020002; >> + public static final int forest=0x7f020003; >> + public static final int gi=0x7f020004; >> + public static final int gi_bg=0x7f020005; >> + public static final int go=0x7f020006; >> + public static final int go_bg=0x7f020007; >> + public static final int grass=0x7f020008; >> + public static final int icon=0x7f020009; >> + public static final int king=0x7f02000a; >> + public static final int king_back=0x7f02000b; >> + public static final int loading=0x7f02000c; >> + public static final int logo=0x7f02000d; >> + public static final int map_draft=0x7f02000e; >> + public static final int mountain=0x7f02000f; >> + public static final int openingback=0x7f020010; >> + public static final int player=0x7f020011; >> + public static final int player_back=0x7f020012; >> + public static final int street=0x7f020013; >> + public static final int syoku=0x7f020014; >> + public static final int syoku_bg=0x7f020015; >> + public static final int tree=0x7f020016; >> + public static final int water=0x7f020017; >> + } >> + public static final class id { >> + public static final int Button01=0x7f080022; >> + public static final int EditText01=0x7f080021; >> + public static final int LinearLayout01=0x7f080000; >> + public static final int LinearLayout02=0x7f080001; >> + public static final int LinearLayout03=0x7f080009; >> + public static final int LinearLayout04=0x7f080002; >> + public static final int LinearLayout06=0x7f080013; >> + public static final int ListView01=0x7f080014; >> + public static final int MapView=0x7f080007; >> + public static final int ScrollView01=0x7f08001d; >> + public static final int StatusDetailView=0x7f080008; >> + public static final int StatusView=0x7f080005; >> + public static final int TableLayout01=0x7f080016; >> + public static final int TableRow01=0x7f080017; >> + public static final int TableRow02=0x7f080018; >> + public static final int TableRow03=0x7f08001a; >> + public static final int TextView01=0x7f08000a; >> + public static final int TextView02=0x7f080003; >> + public static final int TextView03=0x7f080004; >> + public static final int TextView04=0x7f080019; >> + public static final int TextView05=0x7f08001b; >> + public static final int TextView06=0x7f08001c; >> + public static final int Title01=0x7f080011; >> + public static final int Title02=0x7f080012; >> + public static final int TweetListView=0x7f080023; >> + public static final int WholeMap=0x7f080006; >> + public static final int edittext_name=0x7f08000d; >> + public static final int loginBtn=0x7f080010; >> + public static final int logo=0x7f08001e; >> + public static final int map=0x7f080015; >> + public static final int name=0x7f08000c; >> + public static final int presetBtn=0x7f08000f; >> + public static final int serif=0x7f08000e; >> + public static final int start_button=0x7f080020; >> + public static final int title=0x7f08000b; >> + public static final int tweet_name=0x7f080024; >> + public static final int tweet_tweet=0x7f080025; >> + public static final int twitter_image=0x7f08001f; >> + } >> + public static final class layout { >> + public static final int battle=0x7f030000; >> + public static final int initialization=0x7f030001; >> + public static final int list=0x7f030002; >> + public static final int lobby=0x7f030003; >> + public static final int main=0x7f030004; >> + public static final int map=0x7f030005; >> + public static final int opening=0x7f030006; >> + public static final int popup=0x7f030007; >> + public static final int tweetlist=0x7f030008; >> + } >> + public static final class raw { >> + public static final int bgm=0x7f050000; >> + } >> + public static final class string { >> + public static final int app_name=0x7f070000; >> + public static final int auth_progress_text=0x7f070008; >> + public static final int auth_progress_title=0x7f070007; >> + public static final int authenticate_button=0x7f070003; >> + public static final int authenticated=0x7f070005; >> + public static final int bad_value=0x7f070006; >> + public static final int cancel=0x7f070019; >> + public static final int chat_edit_hint=0x7f07000c; >> + public static final int commander=0x7f07001c; >> + public static final int compete=0x7f07001a; >> + public static final int game_user=0x7f07001d; >> + public static final int general=0x7f07001b; >> + public static final int login_button=0x7f07000e; >> + public static final int login_settings=0x7f07000d; >> + public static final int menu_reset_userstate=0x7f07001f; >> + public static final int >> menu_reset_userstate_comlplatemessage=0x7f070020; >> + public static final int menu_reset_userstate_notregistered=0x7f070021; >> + public static final int not_authenticated=0x7f070004; >> + public static final int ok=0x7f070018; >> + public static final int opening_message=0x7f070001; >> + public static final int send=0x7f07000b; >> + public static final int start_button=0x7f070002; >> + public static final int title=0x7f070022; >> + public static final int title_initialization=0x7f070009; >> + public static final int title_start=0x7f07000a; >> + public static final int tweet_error=0x7f07001e; >> + public static final int tweet_progress_text=0x7f070017; >> + public static final int tweet_progress_title=0x7f070016; >> + public static final int twitter_id=0x7f070011; >> + public static final int twitter_id_summary=0x7f070012; >> + public static final int twitter_key_edit_hint=0x7f07000f; >> + public static final int twitter_notauth_message=0x7f070015; >> + public static final int twitter_password=0x7f070013; >> + public static final int twitter_password_summary=0x7f070014; >> + public static final int twitter_secret_edit_hint=0x7f070010; >> + } >> +} >> >> Modified: branches/OpenSangokushi_without_twitter/res/layout/battle.xml >> =================================================================== >> --- trunk/OpenSangokushi/res/layout/battle.xml 2011-02-01 14:56:41 UTC >> (rev 476) >> +++ branches/OpenSangokushi_without_twitter/res/layout/battle.xml >> 2011-02-03 17:51:38 UTC (rev 477) >> @@ -15,7 +15,7 @@ >> > android:layout_width="80dip" android:background="@color/solid_red" >> android:id="@+id/WholeMap"> >> >> >> -> android:layout_width="fill_parent" android:layout_height="53dip" >> android:background="@color/solid_white" android:id="@+id/ChatView" >> android:text="曹操>>こんにちは!\n夏侯惇>>よろしく" >> android:clickable="true"> >> + >> > android:focusable="true" android:focusableInTouchMode="true" >> android:layout_height="320dip" android:layout_width="320dip" >> android:id="@+id/MapView"> >> > android:scrollbars="vertical" android:layout_height="48dip" >> android:id="@+id/StatusDetailView" android:text="選択地の詳細情報"> >> >> > android:layout_width="fill_parent" android:gravity="right" >> android:layout_height="fill_parent" >> android:background="@color/solid_white"> >> >> Modified: branches/OpenSangokushi_without_twitter/res/layout/opening.xml >> =================================================================== >> --- trunk/OpenSangokushi/res/layout/opening.xml 2011-02-01 14:56:41 >> UTC (rev 476) >> +++ branches/OpenSangokushi_without_twitter/res/layout/opening.xml >> 2011-02-03 17:51:38 UTC (rev 477) >> @@ -9,27 +9,11 @@ >> android:id="@+id/start_button" >> android:layout_width="wrap_content" >> android:layout_height="wrap_content" >> - android:textSize="30px" >> + android:textSize="40px" >> android:padding="5px" >> android:layout_gravity="center_horizontal" >> android:textColor="@color/solid_white" >> - android:layout_marginTop="270dp" android:text="@string/start_button" >> android:background="#00000000"> >> - >> - >> + android:layout_marginTop="330dp" android:text="@string/start_button" >> android:background="#00000000"> >> >> >> >> \ No newline at end of file >> >> Modified: >> branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Battle.java >> >> =================================================================== >> --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Battle.java >> 2011-02-01 14:56:41 UTC (rev 476) >> +++ >> branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Battle.java >> 2011-02-03 17:51:38 UTC (rev 477) >> @@ -214,7 +214,7 @@ >> setContentView(R.layout.battle); >> SangokushiPreferences pref = new SangokushiPreferences(this); >> >> - mChatview = (ChatView) findViewById(R.id.ChatView); >> + //mChatview = (ChatView) findViewById(R.id.ChatView); >> //userid,roomid >> Intent intent = getIntent(); >> String msg = (String)intent.getSerializableExtra("String"); >> @@ -233,7 +233,7 @@ >> httpclient.setHttpCommand(command); >> >> String result = (String) httpclient.execute(); >> - Log.d("getRoomInfo","rsult="+result); >> + Log.d("getRoomInfo","result="+result); >> String[] param = result.split(">>"); >> String[] value = param[1].split(","); >> int maxTurn = Integer.valueOf(value[0]); >> @@ -307,19 +307,19 @@ >> map.setUserAndRoom(mUserID,mRoomID); >> map.setContent(this); >> >> - mChatview.init(this, mRoomID, mPlayer.getCountryName()); >> + //mChatview.init(this, mRoomID, mPlayer.getCountryName()); >> >> // initPopUp(); >> - mTweetList = mChatview.getTweetList(); >> - mTweetEditor = mChatview.getTweetEditor(); >> + // mTweetList = mChatview.getTweetList(); >> + //mTweetEditor = mChatview.getTweetEditor(); >> //mTweetList = (ListView) mChatview.findViewById(R.id.TweetListView); >> // mChatTweetLists.add(new TweetItem("AB1")); >> // mChatTweetLists.add(new TweetItem("AB2")); >> // mChatTweetLists.add(new TweetItem("AB3")); >> // mChatTweetLists.add(new TweetItem("AB4")); >> >> - mTweetArrayAdapter = new TweetArrayAdapter(this, R.layout.tweetlist, >> mChatTweetLists); >> - mTweetList.setAdapter(mTweetArrayAdapter); >> + // mTweetArrayAdapter = new TweetArrayAdapter(this, >> R.layout.tweetlist, mChatTweetLists); >> + //mTweetList.setAdapter(mTweetArrayAdapter); >> //mTweetList.setSelection(0); >> } >> >> >> Modified: >> branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Opening.java >> >> =================================================================== >> --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java >> 2011-02-01 14:56:41 UTC (rev 476) >> +++ >> branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Opening.java >> 2011-02-03 17:51:38 UTC (rev 477) >> @@ -185,8 +185,12 @@ >> //スタートボタンは認証終了まで非表示 >> mStartButton = (Button)findViewById(R.id.start_button); >> //mStartButton.setEnabled(false); >> + >> + //2011.2.3 >> + //akifumi3 >> + //一旦Twitter認証を外します。 >> + /* >> mTwitterButton = (Button)findViewById(R.id.twitter_button); >> - >> mLobbyButton = (Button)findViewById(R.id.lobby_button); >> mLobbyButton.setOnClickListener(new OnClickListener() { >> @Override >> @@ -194,6 +198,7 @@ >> startLobby(); >> } >> }); >> + */ >> >> //保存している情報によって遷移を決定 >> int startBtnTitle = R.string.title_start; >> @@ -219,6 +224,10 @@ >> Toast.makeText(this, "ようこそ" + mPlayer.getUserName() + "様", >> Toast.LENGTH_LONG).show(); >> } >> >> + >> + //2011.2.3 >> + //akifumi3 >> + /* >> //Twitter認証チェック >> //Opening画面表示中にTwitterの認証情報を確認させる >> mOperator = new TwitterOperator(this); >> @@ -232,6 +241,7 @@ >> }else{ >> mTwitterButton.setEnabled(false); >> } >> + */ >> } >> >> @Override >> >> Modified: >> branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/view/MapView.java >> >> =================================================================== >> --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/view/MapView.java >> 2011-02-01 14:56:41 UTC (rev 476) >> +++ >> branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/view/MapView.java >> 2011-02-03 17:51:38 UTC (rev 477) >> @@ -112,24 +112,6 @@ >> */ >> public boolean onKeyDown(int keyCode, KeyEvent event) { >> Log.d("MapView","onKeyDown code:"+keyCode); >> - // if (keyCode == KeyEvent.KEYCODE_MENU) { >> - // AlertDialog.Builder builder = new AlertDialog.Builder(activity); >> - // builder.setMessage("Helpを表示しますか?") >> - // .setCancelable(false) >> - // .setPositiveButton("Yes", new DialogInterface.OnClickListener() { >> - // public void onClick(DialogInterface dialog, int id) { >> - >> - // } >> - // }) >> - // .setNegativeButton("No", new DialogInterface.OnClickListener() { >> - // public void onClick(DialogInterface dialog, int id) { >> - // dialog.cancel(); >> - // } >> - // }); >> - // AlertDialog alert = builder.create(); >> - // alert.show(); >> - // return true; >> - // } >> return false; >> } >> >> >> _______________________________________________ >> Sangokushi-svn mailing list >> Sangokushi-svn @ lists.sourceforge.jp >> http://lists.sourceforge.jp/mailman/listinfo/sangokushi-svn > From sangokushi-svn @ lists.sourceforge.jp Fri Feb 4 22:52:59 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Fri, 04 Feb 2011 22:52:59 +0900 Subject: [Sangokushi-svn] =?iso-2022-jp?b?W1NWTl9Db21pdHRlZF0gWzQ3N10gIFR3?= =?iso-2022-jp?b?aXR0ZXIbJEI1IUc9JHIzMCQ3JD80SjBXSEckRyQ5ISMbKEI=?= In-Reply-To: <1296755498.913960.12974.nullmailer@users.sourceforge.jp> References: <1296755498.913960.12974.nullmailer@users.sourceforge.jp> Message-ID: <4D4C04BB.9000002@gmail.com> 裕之です。 度々で済みませbん。 やっぱり問題なく移動しているように思います。 少なくても2ターン(6分)は、意図したところへ移動してます。 左端に飛んでしまったのは、もしかすると、 「一度戦場を抜けると、戦闘開始位置も再度やり直しになる」 という仕様によるものかもしれないので、もう少しテストします。 (2011/02/04 2:51), OpenSangokushi commit ML wrote: > Revision: 477 > http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=477 > Author: akifumi3 > Date: 2011-02-04 02:51:38 +0900 (Fri, 04 Feb 2011) > > Log Message: > ----------- > Twitter機能を外した簡易版です。 > オープニングのTwitter認証、戦闘画面のメッセージ部分を削除しました。 > > Modified Paths: > -------------- > branches/OpenSangokushi_without_twitter/default.properties > branches/OpenSangokushi_without_twitter/gen/jp/or/cute/sangokushi/R.java > branches/OpenSangokushi_without_twitter/res/layout/battle.xml > branches/OpenSangokushi_without_twitter/res/layout/opening.xml > branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Battle.java > branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Opening.java > branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/view/MapView.java > > Added Paths: > ----------- > branches/OpenSangokushi_without_twitter/ > branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs > > Removed Paths: > ------------- > branches/OpenSangokushi_without_twitter/bin/OpenSangokushi.apk > branches/OpenSangokushi_without_twitter/bin/classes.dex > branches/OpenSangokushi_without_twitter/bin/jp/ > branches/OpenSangokushi_without_twitter/bin/resources.ap_ > > Added: branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs > =================================================================== > --- branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs (rev 0) > +++ branches/OpenSangokushi_without_twitter/.settings/org.eclipse.ltk.core.refactoring.prefs 2011-02-03 17:51:38 UTC (rev 477) > @@ -0,0 +1,3 @@ > +#Fri Feb 04 01:39:07 JST 2011 > +eclipse.preferences.version=1 > +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false > > Deleted: branches/OpenSangokushi_without_twitter/bin/OpenSangokushi.apk > =================================================================== > (Binary files differ) > > Deleted: branches/OpenSangokushi_without_twitter/bin/classes.dex > =================================================================== > (Binary files differ) > > Deleted: branches/OpenSangokushi_without_twitter/bin/resources.ap_ > =================================================================== > (Binary files differ) > > Modified: branches/OpenSangokushi_without_twitter/default.properties > =================================================================== > --- trunk/OpenSangokushi/default.properties 2011-02-01 14:56:41 UTC (rev 476) > +++ branches/OpenSangokushi_without_twitter/default.properties 2011-02-03 17:51:38 UTC (rev 477) > @@ -10,4 +10,4 @@ > # Indicates whether an apk should be generated for each density. > split.density=false > # Project target. > -target=android-4 > +target=android-7 > > Modified: branches/OpenSangokushi_without_twitter/gen/jp/or/cute/sangokushi/R.java > =================================================================== > --- trunk/OpenSangokushi/gen/jp/or/cute/sangokushi/R.java 2011-02-01 14:56:41 UTC (rev 476) > +++ branches/OpenSangokushi_without_twitter/gen/jp/or/cute/sangokushi/R.java 2011-02-03 17:51:38 UTC (rev 477) > @@ -1,144 +1,141 @@ > -/* AUTO-GENERATED FILE. DO NOT MODIFY. > - * > - * This class was automatically generated by the > - * aapt tool from the resource data it found. It > - * should not be modified by hand. > - */ > - > -package jp.or.cute.sangokushi; > - > -public final class R { > - public static final class anim { > - public static final int logo_scale=0x7f040000; > - } > - public static final class attr { > - } > - public static final class color { > - public static final int solid_blue=0x7f060001; > - public static final int solid_green=0x7f060002; > - public static final int solid_red=0x7f060000; > - public static final int solid_white=0x7f060004; > - public static final int solid_yellow=0x7f060003; > - public static final int start_button=0x7f060005; > - } > - public static final class drawable { > - public static final int castle=0x7f020000; > - public static final int desert=0x7f020001; > - public static final int dra=0x7f020002; > - public static final int forest=0x7f020003; > - public static final int gi=0x7f020004; > - public static final int gi_bg=0x7f020005; > - public static final int go=0x7f020006; > - public static final int go_bg=0x7f020007; > - public static final int grass=0x7f020008; > - public static final int icon=0x7f020009; > - public static final int king=0x7f02000a; > - public static final int king_back=0x7f02000b; > - public static final int loading=0x7f02000c; > - public static final int logo=0x7f02000d; > - public static final int map_draft=0x7f02000e; > - public static final int mountain=0x7f02000f; > - public static final int openingback=0x7f020010; > - public static final int player=0x7f020011; > - public static final int player_back=0x7f020012; > - public static final int street=0x7f020013; > - public static final int syoku=0x7f020014; > - public static final int syoku_bg=0x7f020015; > - public static final int tree=0x7f020016; > - public static final int water=0x7f020017; > - } > - public static final class id { > - public static final int Button01=0x7f080025; > - public static final int ChatView=0x7f080007; > - public static final int EditText01=0x7f080024; > - public static final int LinearLayout01=0x7f080000; > - public static final int LinearLayout02=0x7f080001; > - public static final int LinearLayout03=0x7f08000a; > - public static final int LinearLayout04=0x7f080002; > - public static final int LinearLayout06=0x7f080014; > - public static final int ListView01=0x7f080015; > - public static final int MapView=0x7f080008; > - public static final int ScrollView01=0x7f08001e; > - public static final int StatusDetailView=0x7f080009; > - public static final int StatusView=0x7f080005; > - public static final int TableLayout01=0x7f080017; > - public static final int TableRow01=0x7f080018; > - public static final int TableRow02=0x7f080019; > - public static final int TableRow03=0x7f08001b; > - public static final int TextView01=0x7f08000b; > - public static final int TextView02=0x7f080003; > - public static final int TextView03=0x7f080004; > - public static final int TextView04=0x7f08001a; > - public static final int TextView05=0x7f08001c; > - public static final int TextView06=0x7f08001d; > - public static final int Title01=0x7f080012; > - public static final int Title02=0x7f080013; > - public static final int TweetListView=0x7f080026; > - public static final int WholeMap=0x7f080006; > - public static final int edittext_name=0x7f08000e; > - public static final int lobby_button=0x7f080023; > - public static final int loginBtn=0x7f080011; > - public static final int logo=0x7f08001f; > - public static final int map=0x7f080016; > - public static final int name=0x7f08000d; > - public static final int presetBtn=0x7f080010; > - public static final int serif=0x7f08000f; > - public static final int start_button=0x7f080021; > - public static final int title=0x7f08000c; > - public static final int tweet_name=0x7f080027; > - public static final int tweet_tweet=0x7f080028; > - public static final int twitter_button=0x7f080022; > - public static final int twitter_image=0x7f080020; > - } > - public static final class layout { > - public static final int battle=0x7f030000; > - public static final int initialization=0x7f030001; > - public static final int list=0x7f030002; > - public static final int lobby=0x7f030003; > - public static final int main=0x7f030004; > - public static final int map=0x7f030005; > - public static final int opening=0x7f030006; > - public static final int popup=0x7f030007; > - public static final int tweetlist=0x7f030008; > - } > - public static final class raw { > - public static final int bgm=0x7f050000; > - } > - public static final class string { > - public static final int app_name=0x7f070000; > - public static final int auth_progress_text=0x7f070008; > - public static final int auth_progress_title=0x7f070007; > - public static final int authenticate_button=0x7f070003; > - public static final int authenticated=0x7f070005; > - public static final int bad_value=0x7f070006; > - public static final int cancel=0x7f070019; > - public static final int chat_edit_hint=0x7f07000c; > - public static final int commander=0x7f07001c; > - public static final int compete=0x7f07001a; > - public static final int game_user=0x7f07001d; > - public static final int general=0x7f07001b; > - public static final int login_button=0x7f07000e; > - public static final int login_settings=0x7f07000d; > - public static final int menu_reset_userstate=0x7f07001f; > - public static final int menu_reset_userstate_comlplatemessage=0x7f070020; > - public static final int menu_reset_userstate_notregistered=0x7f070021; > - public static final int not_authenticated=0x7f070004; > - public static final int ok=0x7f070018; > - public static final int opening_message=0x7f070001; > - public static final int send=0x7f07000b; > - public static final int start_button=0x7f070002; > - public static final int title=0x7f070022; > - public static final int title_initialization=0x7f070009; > - public static final int title_start=0x7f07000a; > - public static final int tweet_error=0x7f07001e; > - public static final int tweet_progress_text=0x7f070017; > - public static final int tweet_progress_title=0x7f070016; > - public static final int twitter_id=0x7f070011; > - public static final int twitter_id_summary=0x7f070012; > - public static final int twitter_key_edit_hint=0x7f07000f; > - public static final int twitter_notauth_message=0x7f070015; > - public static final int twitter_password=0x7f070013; > - public static final int twitter_password_summary=0x7f070014; > - public static final int twitter_secret_edit_hint=0x7f070010; > - } > -} > +/* AUTO-GENERATED FILE. DO NOT MODIFY. > + * > + * This class was automatically generated by the > + * aapt tool from the resource data it found. It > + * should not be modified by hand. > + */ > + > +package jp.or.cute.sangokushi; > + > +public final class R { > + public static final class anim { > + public static final int logo_scale=0x7f040000; > + } > + public static final class attr { > + } > + public static final class color { > + public static final int solid_blue=0x7f060001; > + public static final int solid_green=0x7f060002; > + public static final int solid_red=0x7f060000; > + public static final int solid_white=0x7f060004; > + public static final int solid_yellow=0x7f060003; > + public static final int start_button=0x7f060005; > + } > + public static final class drawable { > + public static final int castle=0x7f020000; > + public static final int desert=0x7f020001; > + public static final int dra=0x7f020002; > + public static final int forest=0x7f020003; > + public static final int gi=0x7f020004; > + public static final int gi_bg=0x7f020005; > + public static final int go=0x7f020006; > + public static final int go_bg=0x7f020007; > + public static final int grass=0x7f020008; > + public static final int icon=0x7f020009; > + public static final int king=0x7f02000a; > + public static final int king_back=0x7f02000b; > + public static final int loading=0x7f02000c; > + public static final int logo=0x7f02000d; > + public static final int map_draft=0x7f02000e; > + public static final int mountain=0x7f02000f; > + public static final int openingback=0x7f020010; > + public static final int player=0x7f020011; > + public static final int player_back=0x7f020012; > + public static final int street=0x7f020013; > + public static final int syoku=0x7f020014; > + public static final int syoku_bg=0x7f020015; > + public static final int tree=0x7f020016; > + public static final int water=0x7f020017; > + } > + public static final class id { > + public static final int Button01=0x7f080022; > + public static final int EditText01=0x7f080021; > + public static final int LinearLayout01=0x7f080000; > + public static final int LinearLayout02=0x7f080001; > + public static final int LinearLayout03=0x7f080009; > + public static final int LinearLayout04=0x7f080002; > + public static final int LinearLayout06=0x7f080013; > + public static final int ListView01=0x7f080014; > + public static final int MapView=0x7f080007; > + public static final int ScrollView01=0x7f08001d; > + public static final int StatusDetailView=0x7f080008; > + public static final int StatusView=0x7f080005; > + public static final int TableLayout01=0x7f080016; > + public static final int TableRow01=0x7f080017; > + public static final int TableRow02=0x7f080018; > + public static final int TableRow03=0x7f08001a; > + public static final int TextView01=0x7f08000a; > + public static final int TextView02=0x7f080003; > + public static final int TextView03=0x7f080004; > + public static final int TextView04=0x7f080019; > + public static final int TextView05=0x7f08001b; > + public static final int TextView06=0x7f08001c; > + public static final int Title01=0x7f080011; > + public static final int Title02=0x7f080012; > + public static final int TweetListView=0x7f080023; > + public static final int WholeMap=0x7f080006; > + public static final int edittext_name=0x7f08000d; > + public static final int loginBtn=0x7f080010; > + public static final int logo=0x7f08001e; > + public static final int map=0x7f080015; > + public static final int name=0x7f08000c; > + public static final int presetBtn=0x7f08000f; > + public static final int serif=0x7f08000e; > + public static final int start_button=0x7f080020; > + public static final int title=0x7f08000b; > + public static final int tweet_name=0x7f080024; > + public static final int tweet_tweet=0x7f080025; > + public static final int twitter_image=0x7f08001f; > + } > + public static final class layout { > + public static final int battle=0x7f030000; > + public static final int initialization=0x7f030001; > + public static final int list=0x7f030002; > + public static final int lobby=0x7f030003; > + public static final int main=0x7f030004; > + public static final int map=0x7f030005; > + public static final int opening=0x7f030006; > + public static final int popup=0x7f030007; > + public static final int tweetlist=0x7f030008; > + } > + public static final class raw { > + public static final int bgm=0x7f050000; > + } > + public static final class string { > + public static final int app_name=0x7f070000; > + public static final int auth_progress_text=0x7f070008; > + public static final int auth_progress_title=0x7f070007; > + public static final int authenticate_button=0x7f070003; > + public static final int authenticated=0x7f070005; > + public static final int bad_value=0x7f070006; > + public static final int cancel=0x7f070019; > + public static final int chat_edit_hint=0x7f07000c; > + public static final int commander=0x7f07001c; > + public static final int compete=0x7f07001a; > + public static final int game_user=0x7f07001d; > + public static final int general=0x7f07001b; > + public static final int login_button=0x7f07000e; > + public static final int login_settings=0x7f07000d; > + public static final int menu_reset_userstate=0x7f07001f; > + public static final int menu_reset_userstate_comlplatemessage=0x7f070020; > + public static final int menu_reset_userstate_notregistered=0x7f070021; > + public static final int not_authenticated=0x7f070004; > + public static final int ok=0x7f070018; > + public static final int opening_message=0x7f070001; > + public static final int send=0x7f07000b; > + public static final int start_button=0x7f070002; > + public static final int title=0x7f070022; > + public static final int title_initialization=0x7f070009; > + public static final int title_start=0x7f07000a; > + public static final int tweet_error=0x7f07001e; > + public static final int tweet_progress_text=0x7f070017; > + public static final int tweet_progress_title=0x7f070016; > + public static final int twitter_id=0x7f070011; > + public static final int twitter_id_summary=0x7f070012; > + public static final int twitter_key_edit_hint=0x7f07000f; > + public static final int twitter_notauth_message=0x7f070015; > + public static final int twitter_password=0x7f070013; > + public static final int twitter_password_summary=0x7f070014; > + public static final int twitter_secret_edit_hint=0x7f070010; > + } > +} > > Modified: branches/OpenSangokushi_without_twitter/res/layout/battle.xml > =================================================================== > --- trunk/OpenSangokushi/res/layout/battle.xml 2011-02-01 14:56:41 UTC (rev 476) > +++ branches/OpenSangokushi_without_twitter/res/layout/battle.xml 2011-02-03 17:51:38 UTC (rev 477) > @@ -15,7 +15,7 @@ > > > > - > + > > > > > Modified: branches/OpenSangokushi_without_twitter/res/layout/opening.xml > =================================================================== > --- trunk/OpenSangokushi/res/layout/opening.xml 2011-02-01 14:56:41 UTC (rev 476) > +++ branches/OpenSangokushi_without_twitter/res/layout/opening.xml 2011-02-03 17:51:38 UTC (rev 477) > @@ -9,27 +9,11 @@ > android:id="@+id/start_button" > android:layout_width="wrap_content" > android:layout_height="wrap_content" > - android:textSize="30px" > + android:textSize="40px" > android:padding="5px" > android:layout_gravity="center_horizontal" > android:textColor="@color/solid_white" > - android:layout_marginTop="270dp" android:text="@string/start_button" android:background="#00000000"> > - > - > + android:layout_marginTop="330dp" android:text="@string/start_button" android:background="#00000000"> > > > > \ No newline at end of file > > Modified: branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Battle.java > =================================================================== > --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Battle.java 2011-02-01 14:56:41 UTC (rev 476) > +++ branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Battle.java 2011-02-03 17:51:38 UTC (rev 477) > @@ -214,7 +214,7 @@ > setContentView(R.layout.battle); > SangokushiPreferences pref = new SangokushiPreferences(this); > > - mChatview = (ChatView) findViewById(R.id.ChatView); > + //mChatview = (ChatView) findViewById(R.id.ChatView); > //userid,roomid > Intent intent = getIntent(); > String msg = (String)intent.getSerializableExtra("String"); > @@ -233,7 +233,7 @@ > httpclient.setHttpCommand(command); > > String result = (String) httpclient.execute(); > - Log.d("getRoomInfo","rsult="+result); > + Log.d("getRoomInfo","result="+result); > String[] param = result.split(">>"); > String[] value = param[1].split(","); > int maxTurn = Integer.valueOf(value[0]); > @@ -307,19 +307,19 @@ > map.setUserAndRoom(mUserID,mRoomID); > map.setContent(this); > > - mChatview.init(this, mRoomID, mPlayer.getCountryName()); > + //mChatview.init(this, mRoomID, mPlayer.getCountryName()); > > // initPopUp(); > - mTweetList = mChatview.getTweetList(); > - mTweetEditor = mChatview.getTweetEditor(); > + // mTweetList = mChatview.getTweetList(); > + //mTweetEditor = mChatview.getTweetEditor(); > //mTweetList = (ListView) mChatview.findViewById(R.id.TweetListView); > // mChatTweetLists.add(new TweetItem("AB1")); > // mChatTweetLists.add(new TweetItem("AB2")); > // mChatTweetLists.add(new TweetItem("AB3")); > // mChatTweetLists.add(new TweetItem("AB4")); > > - mTweetArrayAdapter = new TweetArrayAdapter(this, R.layout.tweetlist, mChatTweetLists); > - mTweetList.setAdapter(mTweetArrayAdapter); > + // mTweetArrayAdapter = new TweetArrayAdapter(this, R.layout.tweetlist, mChatTweetLists); > + //mTweetList.setAdapter(mTweetArrayAdapter); > //mTweetList.setSelection(0); > } > > > Modified: branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Opening.java > =================================================================== > --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java 2011-02-01 14:56:41 UTC (rev 476) > +++ branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Opening.java 2011-02-03 17:51:38 UTC (rev 477) > @@ -185,8 +185,12 @@ > //スタートボタンは認証終了まで非表示 > mStartButton = (Button)findViewById(R.id.start_button); > //mStartButton.setEnabled(false); > + > + //2011.2.3 > + //akifumi3 > + //一旦Twitter認証を外します。 > + /* > mTwitterButton = (Button)findViewById(R.id.twitter_button); > - > mLobbyButton = (Button)findViewById(R.id.lobby_button); > mLobbyButton.setOnClickListener(new OnClickListener() { > @Override > @@ -194,6 +198,7 @@ > startLobby(); > } > }); > + */ > > //保存している情報によって遷移を決定 > int startBtnTitle = R.string.title_start; > @@ -219,6 +224,10 @@ > Toast.makeText(this, "ようこそ" + mPlayer.getUserName() + "様", Toast.LENGTH_LONG).show(); > } > > + > + //2011.2.3 > + //akifumi3 > + /* > //Twitter認証チェック > //Opening画面表示中にTwitterの認証情報を確認させる > mOperator = new TwitterOperator(this); > @@ -232,6 +241,7 @@ > }else{ > mTwitterButton.setEnabled(false); > } > + */ > } > > @Override > > Modified: branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/view/MapView.java > =================================================================== > --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/view/MapView.java 2011-02-01 14:56:41 UTC (rev 476) > +++ branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/view/MapView.java 2011-02-03 17:51:38 UTC (rev 477) > @@ -112,24 +112,6 @@ > */ > public boolean onKeyDown(int keyCode, KeyEvent event) { > Log.d("MapView","onKeyDown code:"+keyCode); > - // if (keyCode == KeyEvent.KEYCODE_MENU) { > - // AlertDialog.Builder builder = new AlertDialog.Builder(activity); > - // builder.setMessage("Helpを表示しますか?") > - // .setCancelable(false) > - // .setPositiveButton("Yes", new DialogInterface.OnClickListener() { > - // public void onClick(DialogInterface dialog, int id) { > - > - // } > - // }) > - // .setNegativeButton("No", new DialogInterface.OnClickListener() { > - // public void onClick(DialogInterface dialog, int id) { > - // dialog.cancel(); > - // } > - // }); > - // AlertDialog alert = builder.create(); > - // alert.show(); > - // return true; > - // } > return false; > } > > > _______________________________________________ > Sangokushi-svn mailing list > Sangokushi-svn @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/sangokushi-svn From sangokushi-svn @ lists.sourceforge.jp Fri Feb 4 23:33:57 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Fri, 04 Feb 2011 23:33:57 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzQ3OV0gIOOCqg==?= =?utf-8?b?44O844OX44OL44Oz44Kw44Gu5L+u5q2j44KS772U772S772V772O772L44Gr?= =?utf-8?b?44Oe44O844K444GX44G+44GZ44CC?= Message-ID: <1296830037.556687.17668.nullmailer@users.sourceforge.jp> Revision: 479 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=479 Author: hryksbt Date: 2011-02-04 23:33:57 +0900 (Fri, 04 Feb 2011) Log Message: ----------- オープニングの修正をtrunkにマージします。 Twitter非表示の方は、半々くらいで位置が飛んでしまうので、マージは保留にしておこうと思います。 Modified Paths: -------------- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java Modified: trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java =================================================================== --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java 2011-02-04 12:58:16 UTC (rev 478) +++ trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java 2011-02-04 14:33:57 UTC (rev 479) @@ -185,8 +185,12 @@ //スタートボタンは認証終了まで非表示 mStartButton = (Button)findViewById(R.id.start_button); //mStartButton.setEnabled(false); + + //2011.2.3 + //akifumi3 + //一旦Twitter認証を外します。 + /* mTwitterButton = (Button)findViewById(R.id.twitter_button); - mLobbyButton = (Button)findViewById(R.id.lobby_button); mLobbyButton.setOnClickListener(new OnClickListener() { @Override @@ -194,6 +198,7 @@ startLobby(); } }); + */ //保存している情報によって遷移を決定 int startBtnTitle = R.string.title_start; @@ -219,6 +224,10 @@ Toast.makeText(this, "ようこそ" + mPlayer.getUserName() + "様", Toast.LENGTH_LONG).show(); } + + //2011.2.3 + //akifumi3 + /* //Twitter認証チェック //Opening画面表示中にTwitterの認証情報を確認させる mOperator = new TwitterOperator(this); @@ -232,6 +241,7 @@ }else{ mTwitterButton.setEnabled(false); } + */ } @Override From sangokushi-svn @ lists.sourceforge.jp Sat Feb 5 00:38:05 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Sat, 05 Feb 2011 00:38:05 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzQ4MF0gIOOBmQ==?= =?utf-8?b?44G/44G+44Gb44KT44CC?= Message-ID: <1296833885.051261.32345.nullmailer@users.sourceforge.jp> Revision: 480 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=480 Author: hryksbt Date: 2011-02-05 00:38:05 +0900 (Sat, 05 Feb 2011) Log Message: ----------- すみません。 一旦#478の状態に戻します。 Ticket Links: :----------- http://sourceforge.jp/projects/sangokushi/tracker/detail/478 Modified Paths: -------------- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java Modified: trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java =================================================================== --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java 2011-02-04 14:33:57 UTC (rev 479) +++ trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java 2011-02-04 15:38:05 UTC (rev 480) @@ -185,12 +185,8 @@ //スタートボタンは認証終了まで非表示 mStartButton = (Button)findViewById(R.id.start_button); //mStartButton.setEnabled(false); - - //2011.2.3 - //akifumi3 - //一旦Twitter認証を外します。 - /* mTwitterButton = (Button)findViewById(R.id.twitter_button); + mLobbyButton = (Button)findViewById(R.id.lobby_button); mLobbyButton.setOnClickListener(new OnClickListener() { @Override @@ -198,7 +194,6 @@ startLobby(); } }); - */ //保存している情報によって遷移を決定 int startBtnTitle = R.string.title_start; @@ -224,10 +219,6 @@ Toast.makeText(this, "ようこそ" + mPlayer.getUserName() + "様", Toast.LENGTH_LONG).show(); } - - //2011.2.3 - //akifumi3 - /* //Twitter認証チェック //Opening画面表示中にTwitterの認証情報を確認させる mOperator = new TwitterOperator(this); @@ -241,7 +232,6 @@ }else{ mTwitterButton.setEnabled(false); } - */ } @Override From sangokushi-svn @ lists.sourceforge.jp Sat Feb 5 02:29:00 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Sat, 05 Feb 2011 02:29:00 +0900 Subject: [Sangokushi-svn] [SVN_Comitted] [481] 20110204_Skype.txt Message-ID: <1296840540.695318.3953.nullmailer@users.sourceforge.jp> Revision: 481 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=481 Author: hryksbt Date: 2011-02-05 02:29:00 +0900 (Sat, 05 Feb 2011) Log Message: ----------- 20110204_Skype.txt Added Paths: ----------- trunk/IRC_ChatLog/20110204_Skype.txt Added: trunk/IRC_ChatLog/20110204_Skype.txt =================================================================== --- trunk/IRC_ChatLog/20110204_Skype.txt (rev 0) +++ trunk/IRC_ChatLog/20110204_Skype.txt 2011-02-04 17:29:00 UTC (rev 481) @@ -0,0 +1,396 @@ +?[2011/02/04 21:55:17] 裕之: こんばんはー +[2011/02/04 22:39:25] narunaru: こんばんわー +[2011/02/04 22:39:36] 裕之: ばんわです^^ +[2011/02/04 22:40:24] 裕之: 昨日深夜に、akifumi3さんが現行バージョンの修正をコミットして頂いたので、 +[2011/02/04 22:40:31] 裕之: テストしてました。 +[2011/02/04 22:41:18] narunaru: そうなんですねーいい感じに動作してましたか? +[2011/02/04 22:43:17] 裕之: 今MLにコメントを送ったのですが、今回の修正からなのかわかりませんが、 +[2011/02/04 22:43:49] 裕之: 移動で、一気に想定してないところへ飛んでいってしまいます。 +[2011/02/04 22:44:06] 裕之: なのでもう少し調べなければ。。。 +[2011/02/04 22:45:49] narunaru: そうなんですね。調査がんばってください^^自分は家事をしなくてはならないので、ちょっとりせきしますー。 +[2011/02/04 22:46:04] 裕之: はいー +[2011/02/04 23:25:35] 裕之: Anknownさん、 +[2011/02/04 23:25:41] 裕之: こっちは見えてますか??? +[2011/02/04 23:26:01] 裕之: おお +[2011/02/04 23:26:02] Anknown: 見えてますよ^^ +[2011/02/04 23:26:14] 裕之: せっかくなのでこっちが良いですね +[2011/02/04 23:26:44] Anknown: はい^^ +[2011/02/04 23:27:30] 裕之: 昨日の会話のログは見て頂きました??? +[2011/02/04 23:29:48] Anknown: 少しだけなら見ました +[2011/02/04 23:30:52] 裕之: なかなか熱い内容だと思ったので、是非目を通してみてください。 +[2011/02/04 23:31:05] 裕之: 因みにAnknownさんは、 +[2011/02/04 23:31:37] 裕之: 同じリアルタイムでも、前検討していた仕様の様に、半オートマチックな操作性がいいか、 +[2011/02/04 23:32:13] 裕之: 移動は1歩1歩、攻撃も1回1回命令を題していく操作性 +[2011/02/04 23:32:22] 裕之: どちらの方がいいと思いますか?? +[2011/02/04 23:36:34] Anknown: う?んちょっとそこらへんのことは悩みますね・・・・ +[2011/02/04 23:37:06] 裕之: 私は、ある程度考える時間が持てるので、半オートマチックが実現できるなら、 +[2011/02/04 23:37:14] 裕之: そっちの方がいいとは思ってますね +[2011/02/04 23:37:21] 裕之: でも、難しそうです +[2011/02/04 23:42:10] Anknown: それなら実現が簡単な方にしたほうがいいのかもしれませんね +[2011/02/04 23:42:40] 裕之: まずその前に出来るのかどうかというところですね +[2011/02/04 23:43:05] 裕之: いずれにしても、仕様を見て頂けるとわかると思いますが、 +[2011/02/04 23:43:11] 裕之: PHPだけではきつそうです +[2011/02/04 23:43:25] 裕之: 鯖側ですね +[2011/02/04 23:43:49] 裕之: AnknownさんのCの腕の見せ所ですよ +[2011/02/04 23:45:37] Anknown: う?ん・・・・そこまで期待できる腕ではないのですが・・・・まあ実際に鯖がCになったらできるだけ頑張ってみます +[2011/02/04 23:45:58] 裕之: もはや両方生ける口ですもんね +[2011/02/04 23:46:07] 裕之: 行けるクチ +[2011/02/04 23:46:38] narunaru: ひと段落しました。 +[2011/02/04 23:47:01] 裕之: お疲れ様ですー +[2011/02/04 23:47:15] 裕之: お二人は、初めてでしたっけ? +[2011/02/04 23:47:23] narunaru: 昨日の話の続きをしてるみたいですねー +[2011/02/04 23:47:31] 裕之: ですです +[2011/02/04 23:47:34] narunaru: はい、はじめてです。はじめましてanknownさん^^ +[2011/02/04 23:47:51] 裕之: どっち派か皆さんのご意見を聞きたいですからねー +[2011/02/04 23:48:09] Anknown: はじめまして^^よろしくお願いします +[2011/02/04 23:50:07] narunaru: こちらこそよろしくお願いいたします- +[2011/02/04 23:50:42] narunaru: 多分、本当のシュミレーション系のネットワークゲームは、半オートマチック +[2011/02/04 23:51:05] narunaru: だと思うんですが、実現するのはやはり難しいですよね。 +[2011/02/04 23:52:01] 裕之: シミュレーションでリアルタイム的なゲームがあるのかというのも良くわかってないんですけどね^^ +[2011/02/04 23:52:26] 裕之: しかも複数人数で、プレイヤー通しが対戦するという。。 +[2011/02/04 23:52:56] narunaru: 昔、漫画喫茶でやったことあるんですが、三国志はWarcraftみたいな +[2011/02/04 23:53:08] narunaru: 感じにしたいのかなと、最初は思ってました。 +[2011/02/04 23:53:52] narunaru: 上に書いたゲームは一応ネットワーク対戦が出来るシュミレーションゲーム?みたいな感じでした。 +[2011/02/04 23:54:12] 裕之: 1対1ですか? +[2011/02/04 23:54:35] 裕之: 実は、成り行き上構成が出来上がったという側面もありますが、 +[2011/02/04 23:54:46] 裕之: ある意味何も参考にしてないんですよね +[2011/02/04 23:55:30] narunaru: あ、一対一かもしれませんが、確か4チームくらい同時にできたような気がします。。。 +[2011/02/04 23:55:43] narunaru: そうなんですー独自で考え付いたのはすごいです +[2011/02/04 23:55:58] narunaru: すいません。。。洗濯もの干してきます。。。 +[2011/02/04 23:56:03] 裕之: はい^^; +[2011/02/04 23:56:34] 裕之: warcraftの画面を見てましたが、確かにこんな感じなのかもしれませんね +[2011/02/04 23:56:56] 裕之: 2Dで、闘ってるっぽいですね +[0:03:53] Anknown: 私もちょっと見てみましたがなかなかおもしろそうですね +[0:04:35] 裕之: 世界は異なれど、近いものがあるかもですね +[0:06:28] Anknown: ただこれはちょっと忙しそうな気がしますね +[0:07:27] 裕之: 複数のユニットを操作するゲームだと、すごい忙しそうですよね。 +[0:07:49] 裕之: でも三国志の方は、今のトコ1ユニットで考えてるので、 +[0:07:57] 裕之: そんなでもないと思いますよ +[0:11:19] narunaru: 洗濯完了です。一人暮らしはやっぱり大変ですねー;; +[0:11:40] 裕之: おお、そうですねえ +[0:11:56] Anknown: お疲れ様です +[0:12:23] 裕之: 自分も今1人暮らしやれって事になっても、出切るかどうか^^; +[0:12:51] narunaru: 平日残業三昧だと結構きついですよ^^; +[0:13:20] narunaru: 三国志は1ユニットしか動かさないから、 +[0:13:42] narunaru: 半オートマッチクもよく考えたら出来るかもしれませんね。 +[0:14:13] 裕之: doiサン的にはそんなに変わらないかもってお話でしたので、 +[0:14:32] 裕之: という事は、どっちの方が面白そうかって事ですね +[0:14:56] narunaru: そうですね。通信の感覚が短いか +[0:15:04] narunaru: 長いかだけですからねー +[0:15:44] narunaru: 感覚は実機で動作確認して電池の減りを見てから決めてもいいかもしれませんね。 +[0:15:49] narunaru: 間隔 +[0:15:57] 裕之: warcraftは完全なリアルでした? +[0:16:14] narunaru: うーん、10年近く前のことなんで、 +[0:16:26] 裕之: そんなに古いんですか^^; +[0:16:30] narunaru: あんまり詳しく覚えてないですが、結構はやかったと思います。 +[0:16:40] 裕之: ふむふむ +[0:16:51] narunaru: はい、かなり昔のゲームで、ADSLレベルの通信で +[0:17:02] narunaru: 実現できてたので、今なら、携帯でも +[0:17:07] narunaru: いけるのかもしれません。 +[0:17:16] 裕之: 10年前だとYahooBB全盛期ですかね +[0:17:28] 裕之: あとは人数ですよね +[0:17:42] narunaru: そうですねー +[0:18:06] narunaru: 四人くらいは入れるようにしないと楽しめなさそうですよね。 +[0:18:14] 裕之: 200人 +[0:18:18] narunaru: え? +[0:18:20] 裕之: 100対100 +[0:18:34] 裕之: ふふふ +[0:18:38] narunaru: そんなにマップにはいらないんじゃないですか^^; +[0:19:01] 裕之: マップは今60x60なので、3600マスです +[0:19:17] 裕之: ということは、200くらいは余裕ですよ +[0:19:17] narunaru: あ、そうでしたね^^; +[0:19:30] 裕之: それくらいはいないと寂しい。。。 +[0:19:38] 裕之: 戦争っぽくない。。。 +[0:19:53] 裕之: と、私個人としては考えてます +[0:20:03] 裕之: 1000でも良いくらいです +[0:20:11] 裕之: ふふふ… +[0:20:12] narunaru: 100対100ってサーバー耐えれるんですかね +[0:20:45] 裕之: サーバーは、コア数を並べまくって備えます。 +[0:21:16] narunaru: お、それは頼もしいです^^ +[0:21:38] 裕之: 中古のノートPCを想定してます。 +[0:22:05] narunaru: ノートPCのLANでいけるんですか?? +[0:22:41] 裕之: ノートの方が単純にコア数を稼ぐだけなら効率的じゃあないですか +[0:22:51] 裕之: Athlon64x2とか +[0:23:27] narunaru: 確かにそうですが、ノートPCのLANボードの信頼性がどんなものなのか不安です^^; +[0:23:59] 裕之: 壊れたら別のサーバーにつなぎなおしてもらいます +[0:24:41] 裕之: DBサーバはこの辺がお手ごろかなと +[0:24:42] 裕之: http://nttxstore.jp/_II_P813280396 +[0:25:16] narunaru: おぉ、激安ですね^^ +[0:25:20] 裕之: デュアルコア1発で、最大16GBのメモリを積めるんですよ +[0:26:24] 裕之: 大人のお小遣いくらいで、こんなごっつい環境が手に入る時代なんですよね +[0:26:51] narunaru: 確かに激安なのにスペック高いですね^^ +[0:27:05] narunaru: ノートPC買うより安いんじゃないですかね?^^ +[0:27:20] narunaru: ランニングコストはかかりそうですが^^;; +[0:28:34] 裕之: 電気代だけはかかるんですが、 +[0:28:56] 裕之: ノートなら1台1ヶ月回しても電気代は1000円行かないです +[0:29:29] narunaru: ノートそんなに安いんですね^^ +[0:29:37] narunaru: そろそろ英語なんでいったんりせきしますー +[0:29:52] 裕之: このNECのサーバだとつき5000円くらいですかねえ +[0:29:56] 裕之: お、いってらっしゃい +[0:38:49] 裕之: Skype英会話です +[0:38:56] 裕之: 勉強熱心ですねー +[0:39:23] Anknown: ですね^^ +[0:40:24] 裕之: Anknownさんは、近々愛知県の方に赴くことなんてあったりしますか??? +[0:40:40] 裕之: ないですよねええ。。。 +[0:40:57] 裕之: あ、それと、この前の会議のログは見て頂きました? +[0:41:40] Anknown: すいません、ちょっとまだみてないです +[0:41:58] 裕之: では是非見といてください +[0:41:58] doi: こんばんは +[0:42:08] Anknown: こんばんは^^ +[0:42:14] 裕之: お、 +[0:42:20] 裕之: 戻られましたね^^ +[0:44:57] 裕之: あ、今日はdoiさんは初登場でしたね^^; +[0:46:37] 裕之: いきなりですけど、 +[0:47:09] 裕之: 移動中に基地局が変わっても、実はIPは変わらないなんてオチだったりしませんかねえ?? +[0:58:30] doi: ひょっとするとそうかもですねぇ。少なくともサーバ側からみたら。 +[0:58:35] doi: http://ja.wikipedia.org/wiki/Mobile_IP +[0:58:48] doi: というか、簡単なサンプルアプリ作っちゃった方が早そうですね。 +[0:59:25] 裕之: おお +[0:59:45] 裕之: 同じIPだって、ちゃんと書いてありますね絵 +[1:00:28] narunaru: 終わりましたー +[1:00:56] doi: ただ、これにより基地局が変わったのには対応できても、切断には対応できないでしょうから、やはりIP変わる前提で作る必要はあるのかなぁと思ったりしてますが、どうなんでしょう。 +[1:01:00] doi: お疲れ様です? +[1:01:12] 裕之: お疲れ様でしたー +[1:01:17] narunaru: こんばんわdoiさん^^ +[1:01:30] doi: こんばんは +[1:01:36] doi: 挨拶がまだでしたね。 +[1:01:53] narunaru: はい、はじめましてnarunaruと申します。 +[1:01:59] narunaru: よろしくお願いします^^ +[1:02:10] doi: はじめましてでしたっけ? +[1:02:16] doi: doiと申します。 +[1:02:17] doi: こちらこそ、よろしくお願いします。 +[1:02:39] 裕之: 始めましてではないような^^; +[1:02:56] narunaru: あ、そうでしたっけ?正式に挨拶するのははじめてな気がしてました^^; +[1:03:05] 裕之: この前の会議で一緒だったかとおもいますよ^^ +[1:03:20] narunaru: はい、昨日は一緒でしたね^^ +[1:03:39] 裕之: 少なくとも3回目くらい??? +[1:04:32] narunaru: お、そんなに会ってましたか。。。名前は知ってましたが挨拶してないと思ってました。。。 +[1:04:47] doi: そういえば、ごあいさつは初めてかもですね。 +[1:05:00] doi: よく名前をお見かけするので、何度かお会いしていたような気はしてたんですが。 +[1:05:05] 裕之: 今日の挨拶も初めてですねw +[1:05:43] narunaru: そうですね^^そういえば、doiさんが提供してくれたwikiページみました。 +[1:06:00] narunaru: どうやらサーバからはIPが変わったことを意識しなくてもよさそうですね^^ +[1:07:04] 裕之: サンプルアプリ作るまで行かなくても、動き回って自分の端末のIPを確認できるアプリとか入れてみると行けそうですね +[1:07:30] 裕之: doiさんクラスだと、それすらも作った方が早いという事になるかもですが +[1:07:31] narunaru: 自分のIPは変わってしまうんじゃないんですかね?? +[1:07:39] 裕之: http://jp.androlib.com/android.application.com-fasteque-ifconfig-jpEit.aspx +[1:07:45] 裕之: こんなのもあるし +[1:09:30] 裕之: ふむふむ、 +[1:09:57] 裕之: クライアント側では変わっるっぽいですね +[1:10:14] 裕之: ということは作る必要があるか。。 +[1:10:34] 裕之: いずれにしても、IPが変わることを気にする必要はなさそうですね +[1:10:42] narunaru: そうですね^^ +[1:11:16] 裕之: おこたねこさんの実証プログラムでそれも自動的に判明しそうですね +[1:11:48] narunaru: たしかにそうですねー、おこたさんの結果報告に期待しましょう +[1:12:26] 裕之: 今週末あたり、猛烈に作って頂けるような気がします +[1:13:06] narunaru: 自分も今週末は久しぶりの二連休です^^なので、仕様書見直しやりますね +[1:13:19] 裕之: お願いしますー +[1:14:05] 裕之: 仕様書の件もあるのですが、 +[1:14:25] Anknown: 会議のログ読んできました +[1:14:42] 裕之: おつかれさまでした^^ +[1:14:42] narunaru: お、お疲れ様でした^^ +[1:15:06] 裕之: ML使ってこう!って事ですので、おねがいしますね^^ +[1:15:22] Anknown: 了解です^^ +[1:15:33] 裕之: sangokushi-dev-request @ lists.sourceforge.jp +[1:15:34] narunaru: 了解ですー +[1:15:37] 裕之: ですからねー +[1:15:43] 裕之: ででで、 +[1:16:18] 裕之: 今検討している移動方法を試すプログラムも必要なのかなと感じてるわけなんですが、 +[1:16:37] 裕之: 結構ごっついプログラムになりますかねえ +[1:17:04] doi: ちょっと席をはずします。 +[1:17:05] 裕之: 半オートマと、完全リアル方式の2パターンで +[1:17:07] 裕之: はいー +[1:17:12] narunaru: はい^^ +[1:17:19] Anknown: はい^^ +[1:17:36] narunaru: そうですねー。自分がやると結構時間かかりそうですね^^; +[1:18:06] 裕之: おおお。 +[1:18:12] 裕之: akifumiさんも来ましたね! +[1:19:07] narunaru: JAVAでマルチスレッドでソケットを使うプログラムを書かないとできないと思うので。。。 +[1:19:19] Anknown: こんばんは?^^ +[1:19:29] akifumi3: こんばんはー +[1:19:30] narunaru: ある程度JAVAに精通した人がやったほうが早いかもしれません。 +[1:19:33] narunaru: こんばんわー +[1:19:39] akifumi3: ご無沙汰してます +[1:19:53] narunaru: お久しぶりです +[1:20:25] 裕之: 今日の集まりぶりをみると、PJ復活の兆しを感じますね +[1:20:45] 裕之: 10日は、PJ開始1周年なんですよ +[1:20:58] narunaru: お、そうなんです^^ +[1:21:08] akifumi3: もう1年になるんですね +[1:21:13] akifumi3: はやいもんです。 +[1:21:23] 裕之: 早いような長いような +[1:21:32] 裕之: 内容は濃かったですからねー +[1:21:42] 裕之: 初めてのことばかりで^^; +[1:22:32] 裕之: あらためて、akifumi3さん、修正の件ありがとうございました。 +[1:22:48] 裕之: 深夜まで^^; +[1:22:56] akifumi3: そういえば、なんだか動きがおかしかったようですね +[1:23:08] 裕之: 不思議な動きがしてました +[1:23:21] 裕之: 再現条件がわからず、ちょっと保留にしてます +[1:23:34] akifumi3: といっても、その辺には触れていないのでなんともよくわからないです。 +[1:23:43] 裕之: ですよね +[1:23:52] 裕之: 謎ですね +[1:24:02] akifumi3: 移動先の情報とかもサーバーから受け取ったデータに従うはずなんで。 +[1:24:21] 裕之: ですね +[1:24:42] 裕之: サーバは、全く変えてないので、 +[1:24:53] akifumi3: こちらではエミュレータもN1も同じよう普通に移動してましたよ。 +[1:25:15] 裕之: 普通の動きをすることの方が多いんですけど、 +[1:25:36] 裕之: たまに左に30マスくらいぶっ飛ぶんです +[1:25:57] 裕之: なので再現条件を色々当たってみたんですけど +[1:25:57] akifumi3: なんでだろ・・? +[1:26:08] 裕之: わかりませんねえ^^; +[1:26:43] akifumi3: 昨日も動作確認してて思ったのですが、1ターンが3分はちょっと辛いです。。 +[1:26:54] 裕之: これはもう、 +[1:27:16] 裕之: 次期バージョンで心機一転しましょう +[1:27:26] 裕之: そのために今必要なのは、 +[1:27:51] 裕之: 移動方式どうしましょ?が、今一番熱い話題です +[1:29:28] akifumi3: 次期バージョンの前に、一旦でも時間を短くできないですかね?? +[1:29:46] 裕之: 多分ですけど、DBの +[1:30:11] 裕之: Timerのところを変えればすぐっぽいかとは思います +[1:30:41] 裕之: insert into t_turnTimer values (1,now(),180,300,0); +[1:30:47] 裕之: こんな感じなので、 +[1:31:22] 裕之: でも、短くすると、クライアントのポーリング間隔の方もそれに合わせて短くしないといけませんね +[1:31:41] akifumi3: クライアントは昨日知ったのですが、10秒ごとに問い合せていました。 +[1:31:59] 裕之: てことは15秒くらいでも良いかもですね^^; +[1:32:01] akifumi3: なので、縮めてもらっても問題ないです +[1:32:06] akifumi3: たぶんそうだと思います。 +[1:32:15] 裕之: テスト機を変更しましょうか。 +[1:32:17] akifumi3: あまり細かすぎるとバッテリーが減るので +[1:32:23] narunaru: もしかしてクライアントの感覚を短くすると +[1:32:24] akifumi3: 調整したいなーとは思います。 +[1:32:31] narunaru: バッテリーの試験できたりしませんかね? +[1:33:01] 裕之: そうそう、なので皆さんが何の端末を持ってるかとかを前に聞いてみたんですよねー +[1:33:07] 裕之: スペックも気になるし +[1:33:14] narunaru: なるほどー +[1:33:35] akifumi3: またあらためてWikiの更新もしてもらいましょうよ +[1:33:59] 裕之: でも、満タンから電池なくなるまでテストするのはなかなかの地獄モードでスよ +[1:34:13] narunaru: あ、確かにそうですね。。。 +[1:34:22] 裕之: テストプログラムは必須ですね +[1:34:36] 裕之: プログラム回して、後は放置的な。。 +[1:35:10] 裕之: ということで、Wiki更新はゲームとテストプログラムが出来そうな段階で改めて聞くのが良いですね +[1:35:19] narunaru: そうですね。サーバ側も簡単なプログラムを作ってある定量のデータ通信をやれば、よりリアルな結果がえられるかもしれませんね。 +[1:36:17] 裕之: 一番電池が減るorもつのはどの端末か?というデータ自体も取れますしね +[1:36:22] 裕之: 興味どころです +[1:36:35] 裕之: akifumi3さん +[1:36:52] 裕之: NexsusOneが一番もたなかったらどうします??? +[1:37:08] 裕之: 悲しいですねえ^^; +[1:37:28] akifumi3: たしか元々がそんなに電池もちが良くないので +[1:37:35] akifumi3: まっさきに脱落かもしれません。。 +[1:37:55] 裕之: IS01もすぐ減りますよー +[1:38:04] akifumi3: 後発の端末だと日本の消費者にあわせて多少は改善してるとは思いますよ。 +[1:38:05] 裕之: Wifiと3Gでも違いますよね +[1:39:00] narunaru: どっちが減りが早いんですかね。間隔的には3Gのほうがへりそうですが。。。 +[1:39:03] narunaru: 感覚 +[1:39:12] akifumi3: 3Gの減りかたはかなり早いですよ ;( +[1:39:25] 裕之: 安定して繋がってるかどうかにもよるんですよね? +[1:39:41] narunaru: やっぱりそうなんですねー。3Gは隣接セルの検索とかもやってるはずなんで +[1:39:54] narunaru: 電力消費は激しいとおもっていたんですよ。 +[1:39:57] 裕之: で、繋がっていることを条件にすると、3Gの方が減りが早いって情報は見たことある気がします。 +[1:40:29] akifumi3: 日本のガラケーの3Gはバッテリーの消費を抑える工夫が非常に良く出来ているのですが +[1:40:59] 裕之: アメ車の燃費がそれを物語ってるかもですね +[1:40:59] akifumi3: クアルコムのチップは日本のと比較するとかなり電池を消費します。 +[1:41:39] narunaru: そうなんですねー。 +[1:41:42] 裕之: エネルギー効率は日本に勝るものなしなんじゃないでしょうかねえ +[1:42:07] 裕之: もったいない精神の国ですし +[1:42:08] narunaru: 省エネブームですしね(笑) +[1:42:15] 裕之: 日本最高!! +[1:43:03] 裕之: 話がだいぶそれました(それさせたのはわたしですが)が +[1:43:15] 裕之: IPアドレスの件、 +[1:43:25] 裕之: 確認君で見れるのかなと +[1:44:43] 裕之: おおお、 +[1:44:45] 裕之: 見れますね +[1:45:05] narunaru: がらけーで試してみましたが見えました^^ガラケーも仕組みは +[1:45:16] 裕之: 外から何のIP宛になってるかがわかれば良いですよね??? +[1:45:25] narunaru: 同じだとおもので、JR乗った時にためしてみます^^ +[1:45:31] 裕之: ですね +[1:45:40] 裕之: 電車とかバスでも試してみます +[1:47:09] 裕之: あと移動方法検証プログラムですけど、 +[1:47:29] 裕之: まずはクライアントだけで簡潔するものでもいいのかなと思いますが +[1:48:10] 裕之: どちらかというとマップの機能も作ったり」しなきゃいけないところが +[1:48:30] 裕之: 結構大掛かりなのかなと思ったりしたとこです +[1:48:50] 裕之: 現行のソースも使いまわせるとは思いますけどねー +[1:48:52] narunaru: すいません、マップ機能とはどんな機能ですか? +[1:49:07] narunaru: マップを作る機能? +[1:49:17] 裕之: 移動のテストなので、 +[1:49:26] 裕之: まっぷがあって +[1:49:31] 裕之: その上を移動する +[1:49:36] 裕之: ためのマップ +[1:49:47] 裕之: すみません +[1:49:52] 裕之: わかります??? +[1:50:13] narunaru: そこまで作る込む予定だったんですね^^;; +[1:50:38] 裕之: 今のゲームも、はじめiSTさんがマップ&その上で移動の部分だけ作ってました +[1:51:13] 裕之: そこまでないと、移動してるのかわからないかなと思ってですね +[1:51:20] narunaru: JAVAだとそうなんですね^^;自分はコンソールレベルを考えてました。。 +[1:51:33] 裕之: あ、そうゆうのでもいいと思いますよ +[1:51:57] 裕之: コンソールだと、そうですね +[1:52:19] 裕之: 他のプレイヤーもいて、座標がぶつかったら、とかを検証する感じですよね +[1:52:46] 裕之: ま、Javaというよりも、 +[1:53:02] 裕之: そのときも同じように移動方式を検討してて、 +[1:53:29] 裕之: GoogleMapみたいな操作性か、カーナビみたいな操作性、どっちがいい的なかんじで +[1:53:53] narunaru: あ、使いやすさとかを検証するほうですか? +[1:54:03] 裕之: iSTさんに試してみたところ、GoogleMap方式はパフォーマンスがかなりきつかった歩かったんです +[1:54:15] 裕之: 出来れば両方です^^; +[1:55:04] narunaru: それはある意味本番用に近い感じですね^^; +[1:55:37] 裕之: でも、完全リアルであれば、既存の仕様がそのまま生かせますね +[1:56:15] 裕之: 移動範囲があるので、それを隣のますに限定する修正は必要ですけどね +[1:57:28] 裕之: そうゆう意味では、コンソールレベルの、敵味方でのイベントをちゃんと処理できるかどうか +[1:57:45] 裕之: これが一番検証しないといけない箇所になりますね +[1:58:13] 裕之: んでもって、 +[1:58:31] 裕之: 移動範囲をそのまま残せば、半オートに近いですね +[1:58:36] narunaru: 半オートにしてもクライアントの方にあたり判定とかを任せる感じですか? +[1:59:00] 裕之: それはもう、自然の流れに身を任せます +[1:59:18] 裕之: どちらか都合のよさそうな方に。。。 +[1:59:41] narunaru: うーん、半オートの場合、サーバ側でやらないとシステム的に破綻しそうな気がします。 +[2:00:08] 裕之: 多少ずれたりするのは全然構わないと思うんですけど、 +[2:00:36] 裕之: できるだけ、パフォーマンスが出やすくて、電池が減りにくい方法で検討するべきなのかなあと思います +[2:00:58] narunaru: 確かにそうですね +[2:01:08] narunaru: どっちがいいんだろう +[2:01:57] 裕之: 完全と不完全(半オート)のいずれも数パターン試してみる価値はありそうですね +[2:02:08] narunaru: そうですね +[2:02:27] 裕之: 何でもサーバ 中間 何でもクライアント +[2:03:44] 裕之: でも中間になるだろうから、中間で2パターン程って感じですかねえ +[2:05:08] narunaru: うーん、どうなんでしょう。。。どっちが良いのかわからなくなってきました。 +[2:05:30] 裕之: そこで検証ですねえ +[2:05:55] narunaru: はい、検証してみないとですね +[2:06:01] 裕之: 検証に参加して頂ける方募集ですね +[2:06:38] narunaru: はい、プログラムは組めるかどうか検討してみます。 +[2:07:08] narunaru: とりあえず、クライアント側ですが +[2:07:57] 裕之: クライアント2台必要とかかもしれないですね +[2:08:17] narunaru: シミュレータ二台でいけないですかね? +[2:08:37] narunaru: あ、ノートだと二台も立ち上がらないのかな。。。 +[2:08:38] 裕之: まああれはパフォーマンスばっかりはテストできないですからねえ +[2:08:58] narunaru: あ、動作確認用です。 +[2:09:18] 裕之: メモリ4GBつんで、64なら行けるんじゃないでしょうか?? +[2:10:20] narunaru: メモリ2Gの32なので、いけるかわかりませんが、組めたらやってみます。 +[2:10:49] 裕之: はい是非お願いします! +[2:11:06] 裕之: 仕様を決めるための検証なので、 +[2:11:47] 裕之: 仕様書の確認よりも優先しないといけないですよね +[2:12:24] 裕之: Anknown +[2:12:26] 裕之: さんは +[2:12:28] narunaru: そうですね。出来れば、ほかの人にも頼んでみて下さい。今の自分のスキルでいけるかわからないので、^^; +[2:12:34] 裕之: いますかねえ +[2:12:48] 裕之: ですです +[2:12:55] 裕之: 色々超えかけてみます +[2:13:00] 裕之: 声 +[2:13:10] 裕之: akifumi3さんもいますかねえ +[2:13:15] 裕之: お、 +[2:13:34] Anknown: 一応いますが +[2:13:44] 裕之: Anknownさん、検証で鯖プログラムが必要になったときお願いできますか?? +[2:13:51] 裕之: 一応^^ +[2:14:01] 裕之: お、 +[2:14:03] akifumi3: すいません、朝生みてました +[2:14:14] 裕之: ww +[2:14:29] narunaru: サーバー側もVCとかで適当に作ったものでやってみます +[2:14:49] 裕之: akifumi3さんも行けるのであればお願いしたいです +[2:14:55] narunaru: よく考えたらクライアント側だけじゃ動作確認できないので。。。 +[2:15:00] 裕之: そうです。言語は何でも良いですよ +[2:15:45] 裕之: doiさんにもお願いしたいですねー +[2:15:58] 裕之: そしてこのログを見て頂いた方全員にも +[2:17:20] narunaru: はい、お願いしますーそして、そろそろzzzなので落ちます^^; +[2:17:29] 裕之: ですねえ +[2:17:35] narunaru: ではみなさん、おやすみなさい☆ +[2:17:36] 裕之: 夜もふけてまいりました +[2:18:10] 裕之: 平日はこの時間帯は危険ですのでもう少し早くお休みすることにしましょうね^^ +[2:18:35] Anknown: 私もちょっと限界なので寝ますね +[2:18:44] 裕之: はい。ありがとうございましたー +[2:18:48] 裕之: またお待ちしてます +[2:18:59] Anknown: おやすみなさい^^ +[2:19:04] 裕之: おやすみです^^ \ No newline at end of file From sangokushi-svn @ lists.sourceforge.jp Sat Feb 5 03:20:43 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Sat, 05 Feb 2011 03:20:43 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzQ4Ml0gIOOCqg==?= =?utf-8?b?44O844OX44OL44Oz44Kw5pmC44GuVHdpdHRlcuiqjeiovOOBruOBv+Wklg==?= =?utf-8?b?44GX44Gf44KC44Gu44KSVHJ1bmvjgavlj43mmKDjgII=?= Message-ID: <1296843643.252217.31079.nullmailer@users.sourceforge.jp> Revision: 482 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=482 Author: akifumi3 Date: 2011-02-05 03:20:43 +0900 (Sat, 05 Feb 2011) Log Message: ----------- オープニング時のTwitter認証のみ外したものをTrunkに反映。 戦闘画面のTwitterエリアは残しています。 Modified Paths: -------------- branches/OpenSangokushi_without_twitter/res/layout/opening.xml trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java Property Changed: ---------------- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java Modified: branches/OpenSangokushi_without_twitter/res/layout/opening.xml =================================================================== --- branches/OpenSangokushi_without_twitter/res/layout/opening.xml 2011-02-04 17:29:00 UTC (rev 481) +++ branches/OpenSangokushi_without_twitter/res/layout/opening.xml 2011-02-04 18:20:43 UTC (rev 482) @@ -15,5 +15,4 @@ android:textColor="@color/solid_white" android:layout_marginTop="330dp" android:text="@string/start_button" android:background="#00000000"> - \ No newline at end of file Modified: trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java =================================================================== --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java 2011-02-04 17:29:00 UTC (rev 481) +++ trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java 2011-02-04 18:20:43 UTC (rev 482) @@ -185,8 +185,12 @@ //スタートボタンは認証終了まで非表示 mStartButton = (Button)findViewById(R.id.start_button); //mStartButton.setEnabled(false); + + //2011.2.3 + //akifumi3 + //一旦Twitter認証を外します。 + /* mTwitterButton = (Button)findViewById(R.id.twitter_button); - mLobbyButton = (Button)findViewById(R.id.lobby_button); mLobbyButton.setOnClickListener(new OnClickListener() { @Override @@ -194,6 +198,7 @@ startLobby(); } }); + */ //保存している情報によって遷移を決定 int startBtnTitle = R.string.title_start; @@ -219,6 +224,10 @@ Toast.makeText(this, "ようこそ" + mPlayer.getUserName() + "様", Toast.LENGTH_LONG).show(); } + + //2011.2.3 + //akifumi3 + /* //Twitter認証チェック //Opening画面表示中にTwitterの認証情報を確認させる mOperator = new TwitterOperator(this); @@ -232,6 +241,7 @@ }else{ mTwitterButton.setEnabled(false); } + */ } @Override Property changes on: trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Opening.java ___________________________________________________________________ Added: svn:mergeinfo + /branches/OpenSangokushi_without_twitter/src/jp/or/cute/sangokushi/Opening.java:477-481 From sangokushi-svn @ lists.sourceforge.jp Sat Feb 5 03:29:57 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Sat, 05 Feb 2011 03:29:57 +0900 Subject: [Sangokushi-svn] [SVN_Comitted] [483] Message-ID: <1296844197.004712.8083.nullmailer@users.sourceforge.jp> Revision: 483 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=483 Author: akifumi3 Date: 2011-02-05 03:29:56 +0900 (Sat, 05 Feb 2011) Log Message: ----------- Modified Paths: -------------- trunk/OpenSangokushi/gen/jp/or/cute/sangokushi/R.java trunk/OpenSangokushi/res/layout/opening.xml Removed Paths: ------------- trunk/OpenSangokushi/bin/OpenSangokushi.apk trunk/OpenSangokushi/bin/classes.dex trunk/OpenSangokushi/bin/jp/ trunk/OpenSangokushi/bin/resources.ap_ Property Changed: ---------------- trunk/OpenSangokushi/res/layout/opening.xml Deleted: trunk/OpenSangokushi/bin/OpenSangokushi.apk =================================================================== (Binary files differ) Deleted: trunk/OpenSangokushi/bin/classes.dex =================================================================== (Binary files differ) Deleted: trunk/OpenSangokushi/bin/resources.ap_ =================================================================== (Binary files differ) Modified: trunk/OpenSangokushi/gen/jp/or/cute/sangokushi/R.java =================================================================== --- trunk/OpenSangokushi/gen/jp/or/cute/sangokushi/R.java 2011-02-04 18:20:43 UTC (rev 482) +++ trunk/OpenSangokushi/gen/jp/or/cute/sangokushi/R.java 2011-02-04 18:29:56 UTC (rev 483) @@ -1,144 +1,142 @@ -/* AUTO-GENERATED FILE. DO NOT MODIFY. - * - * This class was automatically generated by the - * aapt tool from the resource data it found. It - * should not be modified by hand. - */ - -package jp.or.cute.sangokushi; - -public final class R { - public static final class anim { - public static final int logo_scale=0x7f040000; - } - public static final class attr { - } - public static final class color { - public static final int solid_blue=0x7f060001; - public static final int solid_green=0x7f060002; - public static final int solid_red=0x7f060000; - public static final int solid_white=0x7f060004; - public static final int solid_yellow=0x7f060003; - public static final int start_button=0x7f060005; - } - public static final class drawable { - public static final int castle=0x7f020000; - public static final int desert=0x7f020001; - public static final int dra=0x7f020002; - public static final int forest=0x7f020003; - public static final int gi=0x7f020004; - public static final int gi_bg=0x7f020005; - public static final int go=0x7f020006; - public static final int go_bg=0x7f020007; - public static final int grass=0x7f020008; - public static final int icon=0x7f020009; - public static final int king=0x7f02000a; - public static final int king_back=0x7f02000b; - public static final int loading=0x7f02000c; - public static final int logo=0x7f02000d; - public static final int map_draft=0x7f02000e; - public static final int mountain=0x7f02000f; - public static final int openingback=0x7f020010; - public static final int player=0x7f020011; - public static final int player_back=0x7f020012; - public static final int street=0x7f020013; - public static final int syoku=0x7f020014; - public static final int syoku_bg=0x7f020015; - public static final int tree=0x7f020016; - public static final int water=0x7f020017; - } - public static final class id { - public static final int Button01=0x7f080025; - public static final int ChatView=0x7f080007; - public static final int EditText01=0x7f080024; - public static final int LinearLayout01=0x7f080000; - public static final int LinearLayout02=0x7f080001; - public static final int LinearLayout03=0x7f08000a; - public static final int LinearLayout04=0x7f080002; - public static final int LinearLayout06=0x7f080014; - public static final int ListView01=0x7f080015; - public static final int MapView=0x7f080008; - public static final int ScrollView01=0x7f08001e; - public static final int StatusDetailView=0x7f080009; - public static final int StatusView=0x7f080005; - public static final int TableLayout01=0x7f080017; - public static final int TableRow01=0x7f080018; - public static final int TableRow02=0x7f080019; - public static final int TableRow03=0x7f08001b; - public static final int TextView01=0x7f08000b; - public static final int TextView02=0x7f080003; - public static final int TextView03=0x7f080004; - public static final int TextView04=0x7f08001a; - public static final int TextView05=0x7f08001c; - public static final int TextView06=0x7f08001d; - public static final int Title01=0x7f080012; - public static final int Title02=0x7f080013; - public static final int TweetListView=0x7f080026; - public static final int WholeMap=0x7f080006; - public static final int edittext_name=0x7f08000e; - public static final int lobby_button=0x7f080023; - public static final int loginBtn=0x7f080011; - public static final int logo=0x7f08001f; - public static final int map=0x7f080016; - public static final int name=0x7f08000d; - public static final int presetBtn=0x7f080010; - public static final int serif=0x7f08000f; - public static final int start_button=0x7f080021; - public static final int title=0x7f08000c; - public static final int tweet_name=0x7f080027; - public static final int tweet_tweet=0x7f080028; - public static final int twitter_button=0x7f080022; - public static final int twitter_image=0x7f080020; - } - public static final class layout { - public static final int battle=0x7f030000; - public static final int initialization=0x7f030001; - public static final int list=0x7f030002; - public static final int lobby=0x7f030003; - public static final int main=0x7f030004; - public static final int map=0x7f030005; - public static final int opening=0x7f030006; - public static final int popup=0x7f030007; - public static final int tweetlist=0x7f030008; - } - public static final class raw { - public static final int bgm=0x7f050000; - } - public static final class string { - public static final int app_name=0x7f070000; - public static final int auth_progress_text=0x7f070008; - public static final int auth_progress_title=0x7f070007; - public static final int authenticate_button=0x7f070003; - public static final int authenticated=0x7f070005; - public static final int bad_value=0x7f070006; - public static final int cancel=0x7f070019; - public static final int chat_edit_hint=0x7f07000c; - public static final int commander=0x7f07001c; - public static final int compete=0x7f07001a; - public static final int game_user=0x7f07001d; - public static final int general=0x7f07001b; - public static final int login_button=0x7f07000e; - public static final int login_settings=0x7f07000d; - public static final int menu_reset_userstate=0x7f07001f; - public static final int menu_reset_userstate_comlplatemessage=0x7f070020; - public static final int menu_reset_userstate_notregistered=0x7f070021; - public static final int not_authenticated=0x7f070004; - public static final int ok=0x7f070018; - public static final int opening_message=0x7f070001; - public static final int send=0x7f07000b; - public static final int start_button=0x7f070002; - public static final int title=0x7f070022; - public static final int title_initialization=0x7f070009; - public static final int title_start=0x7f07000a; - public static final int tweet_error=0x7f07001e; - public static final int tweet_progress_text=0x7f070017; - public static final int tweet_progress_title=0x7f070016; - public static final int twitter_id=0x7f070011; - public static final int twitter_id_summary=0x7f070012; - public static final int twitter_key_edit_hint=0x7f07000f; - public static final int twitter_notauth_message=0x7f070015; - public static final int twitter_password=0x7f070013; - public static final int twitter_password_summary=0x7f070014; - public static final int twitter_secret_edit_hint=0x7f070010; - } -} +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package jp.or.cute.sangokushi; + +public final class R { + public static final class anim { + public static final int logo_scale=0x7f040000; + } + public static final class attr { + } + public static final class color { + public static final int solid_blue=0x7f060001; + public static final int solid_green=0x7f060002; + public static final int solid_red=0x7f060000; + public static final int solid_white=0x7f060004; + public static final int solid_yellow=0x7f060003; + public static final int start_button=0x7f060005; + } + public static final class drawable { + public static final int castle=0x7f020000; + public static final int desert=0x7f020001; + public static final int dra=0x7f020002; + public static final int forest=0x7f020003; + public static final int gi=0x7f020004; + public static final int gi_bg=0x7f020005; + public static final int go=0x7f020006; + public static final int go_bg=0x7f020007; + public static final int grass=0x7f020008; + public static final int icon=0x7f020009; + public static final int king=0x7f02000a; + public static final int king_back=0x7f02000b; + public static final int loading=0x7f02000c; + public static final int logo=0x7f02000d; + public static final int map_draft=0x7f02000e; + public static final int mountain=0x7f02000f; + public static final int openingback=0x7f020010; + public static final int player=0x7f020011; + public static final int player_back=0x7f020012; + public static final int street=0x7f020013; + public static final int syoku=0x7f020014; + public static final int syoku_bg=0x7f020015; + public static final int tree=0x7f020016; + public static final int water=0x7f020017; + } + public static final class id { + public static final int Button01=0x7f080023; + public static final int ChatView=0x7f080007; + public static final int EditText01=0x7f080022; + public static final int LinearLayout01=0x7f080000; + public static final int LinearLayout02=0x7f080001; + public static final int LinearLayout03=0x7f08000a; + public static final int LinearLayout04=0x7f080002; + public static final int LinearLayout06=0x7f080014; + public static final int ListView01=0x7f080015; + public static final int MapView=0x7f080008; + public static final int ScrollView01=0x7f08001e; + public static final int StatusDetailView=0x7f080009; + public static final int StatusView=0x7f080005; + public static final int TableLayout01=0x7f080017; + public static final int TableRow01=0x7f080018; + public static final int TableRow02=0x7f080019; + public static final int TableRow03=0x7f08001b; + public static final int TextView01=0x7f08000b; + public static final int TextView02=0x7f080003; + public static final int TextView03=0x7f080004; + public static final int TextView04=0x7f08001a; + public static final int TextView05=0x7f08001c; + public static final int TextView06=0x7f08001d; + public static final int Title01=0x7f080012; + public static final int Title02=0x7f080013; + public static final int TweetListView=0x7f080024; + public static final int WholeMap=0x7f080006; + public static final int edittext_name=0x7f08000e; + public static final int loginBtn=0x7f080011; + public static final int logo=0x7f08001f; + public static final int map=0x7f080016; + public static final int name=0x7f08000d; + public static final int presetBtn=0x7f080010; + public static final int serif=0x7f08000f; + public static final int start_button=0x7f080021; + public static final int title=0x7f08000c; + public static final int tweet_name=0x7f080025; + public static final int tweet_tweet=0x7f080026; + public static final int twitter_image=0x7f080020; + } + public static final class layout { + public static final int battle=0x7f030000; + public static final int initialization=0x7f030001; + public static final int list=0x7f030002; + public static final int lobby=0x7f030003; + public static final int main=0x7f030004; + public static final int map=0x7f030005; + public static final int opening=0x7f030006; + public static final int popup=0x7f030007; + public static final int tweetlist=0x7f030008; + } + public static final class raw { + public static final int bgm=0x7f050000; + } + public static final class string { + public static final int app_name=0x7f070000; + public static final int auth_progress_text=0x7f070008; + public static final int auth_progress_title=0x7f070007; + public static final int authenticate_button=0x7f070003; + public static final int authenticated=0x7f070005; + public static final int bad_value=0x7f070006; + public static final int cancel=0x7f070019; + public static final int chat_edit_hint=0x7f07000c; + public static final int commander=0x7f07001c; + public static final int compete=0x7f07001a; + public static final int game_user=0x7f07001d; + public static final int general=0x7f07001b; + public static final int login_button=0x7f07000e; + public static final int login_settings=0x7f07000d; + public static final int menu_reset_userstate=0x7f07001f; + public static final int menu_reset_userstate_comlplatemessage=0x7f070020; + public static final int menu_reset_userstate_notregistered=0x7f070021; + public static final int not_authenticated=0x7f070004; + public static final int ok=0x7f070018; + public static final int opening_message=0x7f070001; + public static final int send=0x7f07000b; + public static final int start_button=0x7f070002; + public static final int title=0x7f070022; + public static final int title_initialization=0x7f070009; + public static final int title_start=0x7f07000a; + public static final int tweet_error=0x7f07001e; + public static final int tweet_progress_text=0x7f070017; + public static final int tweet_progress_title=0x7f070016; + public static final int twitter_id=0x7f070011; + public static final int twitter_id_summary=0x7f070012; + public static final int twitter_key_edit_hint=0x7f07000f; + public static final int twitter_notauth_message=0x7f070015; + public static final int twitter_password=0x7f070013; + public static final int twitter_password_summary=0x7f070014; + public static final int twitter_secret_edit_hint=0x7f070010; + } +} Modified: trunk/OpenSangokushi/res/layout/opening.xml =================================================================== --- trunk/OpenSangokushi/res/layout/opening.xml 2011-02-04 18:20:43 UTC (rev 482) +++ trunk/OpenSangokushi/res/layout/opening.xml 2011-02-04 18:29:56 UTC (rev 483) @@ -9,27 +9,10 @@ android:id="@+id/start_button" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textSize="30px" + android:textSize="40px" android:padding="5px" android:layout_gravity="center_horizontal" android:textColor="@color/solid_white" - android:layout_marginTop="270dp" android:text="@string/start_button" android:background="#00000000"> - - + android:layout_marginTop="330dp" android:text="@string/start_button" android:background="#00000000"> - \ No newline at end of file Property changes on: trunk/OpenSangokushi/res/layout/opening.xml ___________________________________________________________________ Added: svn:mergeinfo + /branches/OpenSangokushi_without_twitter/res/layout/opening.xml:477-482 From sangokushi-svn @ lists.sourceforge.jp Sun Feb 6 00:42:02 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Sun, 06 Feb 2011 00:42:02 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzQ4NF0gIOS7ig==?= =?utf-8?b?5pel44CB44KC44Go44Gu54q25oWL44Gn44OG44K544OI44GX44Gm44GE44G+?= =?utf-8?b?44GX44Gf44GM44CBYWtpZnVtaTPjgZXjgpPjgavooYzjgaPjgabpoILjgYQ=?= =?utf-8?b?44Gf5L+u5q2j44Go44CB44OX44Os44Kk44Ok44O844Gu5L2N572u44GM6aOb?= =?utf-8?b?44KT44Gn44GX44G+44GG44Gu44Gv44CB54Sh6Zai5L+C44Gn44GX44Gf44CC?= Message-ID: <1296920522.005498.8801.nullmailer@users.sourceforge.jp> Revision: 484 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=484 Author: hryksbt Date: 2011-02-06 00:42:01 +0900 (Sun, 06 Feb 2011) Log Message: ----------- 今日、もとの状態でテストしていましたが、akifumi3さんに行って頂いた修正と、プレイヤーの位置が飛んでしまうのは、無関係でした。 なので、位置の飛ぶバグは残っている状態ですが、再度trunkにマージします。 Modified Paths: -------------- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Battle.java trunk/OpenSangokushi/src/jp/or/cute/sangokushi/view/MapView.java Modified: trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Battle.java =================================================================== --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Battle.java 2011-02-04 18:29:56 UTC (rev 483) +++ trunk/OpenSangokushi/src/jp/or/cute/sangokushi/Battle.java 2011-02-05 15:42:01 UTC (rev 484) @@ -214,7 +214,7 @@ setContentView(R.layout.battle); SangokushiPreferences pref = new SangokushiPreferences(this); - mChatview = (ChatView) findViewById(R.id.ChatView); + //mChatview = (ChatView) findViewById(R.id.ChatView); //userid,roomid Intent intent = getIntent(); String msg = (String)intent.getSerializableExtra("String"); @@ -233,7 +233,7 @@ httpclient.setHttpCommand(command); String result = (String) httpclient.execute(); - Log.d("getRoomInfo","rsult="+result); + Log.d("getRoomInfo","result="+result); String[] param = result.split(">>"); String[] value = param[1].split(","); int maxTurn = Integer.valueOf(value[0]); @@ -307,19 +307,19 @@ map.setUserAndRoom(mUserID,mRoomID); map.setContent(this); - mChatview.init(this, mRoomID, mPlayer.getCountryName()); + //mChatview.init(this, mRoomID, mPlayer.getCountryName()); // initPopUp(); - mTweetList = mChatview.getTweetList(); - mTweetEditor = mChatview.getTweetEditor(); + // mTweetList = mChatview.getTweetList(); + //mTweetEditor = mChatview.getTweetEditor(); //mTweetList = (ListView) mChatview.findViewById(R.id.TweetListView); // mChatTweetLists.add(new TweetItem("AB1")); // mChatTweetLists.add(new TweetItem("AB2")); // mChatTweetLists.add(new TweetItem("AB3")); // mChatTweetLists.add(new TweetItem("AB4")); - mTweetArrayAdapter = new TweetArrayAdapter(this, R.layout.tweetlist, mChatTweetLists); - mTweetList.setAdapter(mTweetArrayAdapter); + // mTweetArrayAdapter = new TweetArrayAdapter(this, R.layout.tweetlist, mChatTweetLists); + //mTweetList.setAdapter(mTweetArrayAdapter); //mTweetList.setSelection(0); } Modified: trunk/OpenSangokushi/src/jp/or/cute/sangokushi/view/MapView.java =================================================================== --- trunk/OpenSangokushi/src/jp/or/cute/sangokushi/view/MapView.java 2011-02-04 18:29:56 UTC (rev 483) +++ trunk/OpenSangokushi/src/jp/or/cute/sangokushi/view/MapView.java 2011-02-05 15:42:01 UTC (rev 484) @@ -112,24 +112,6 @@ */ public boolean onKeyDown(int keyCode, KeyEvent event) { Log.d("MapView","onKeyDown code:"+keyCode); - // if (keyCode == KeyEvent.KEYCODE_MENU) { - // AlertDialog.Builder builder = new AlertDialog.Builder(activity); - // builder.setMessage("Helpを表示しますか?") - // .setCancelable(false) - // .setPositiveButton("Yes", new DialogInterface.OnClickListener() { - // public void onClick(DialogInterface dialog, int id) { - - // } - // }) - // .setNegativeButton("No", new DialogInterface.OnClickListener() { - // public void onClick(DialogInterface dialog, int id) { - // dialog.cancel(); - // } - // }); - // AlertDialog alert = builder.create(); - // alert.show(); - // return true; - // } return false; } From sangokushi-svn @ lists.sourceforge.jp Sun Feb 6 00:46:57 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Sun, 06 Feb 2011 00:46:57 +0900 Subject: [Sangokushi-svn] [SVN_Comitted] [485] Message-ID: <1296920817.466208.14314.nullmailer@users.sourceforge.jp> Revision: 485 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=485 Author: hryksbt Date: 2011-02-06 00:46:57 +0900 (Sun, 06 Feb 2011) Log Message: ----------- Removed Paths: ------------- OpenSangokushi/ From sangokushi-svn @ lists.sourceforge.jp Sun Feb 6 00:54:41 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Sun, 06 Feb 2011 00:54:41 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzQ4Nl0gIOODkA==?= =?utf-8?b?44Kk44OK44Oq44KC44Kz44Of44OD44OI44GX44Gm44GK44GN44G+44GZ44CC?= Message-ID: <1296921281.379484.24518.nullmailer@users.sourceforge.jp> Revision: 486 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=486 Author: hryksbt Date: 2011-02-06 00:54:41 +0900 (Sun, 06 Feb 2011) Log Message: ----------- バイナリもコミットしておきます。 \trunk\OpenSangokushi\bin\OpenSangoksuhi.apk Modified Paths: -------------- trunk/OpenSangokushi/.classpath trunk/OpenSangokushi/default.properties trunk/OpenSangokushi/gen/jp/or/cute/sangokushi/R.java Added Paths: ----------- trunk/OpenSangokushi/bin/OpenSangoksuhi.apk trunk/OpenSangokushi/bin/classes.dex trunk/OpenSangokushi/bin/jp/ trunk/OpenSangokushi/bin/jp/or/ trunk/OpenSangokushi/bin/jp/or/cute/ trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/ trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$1.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$2.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$3.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$GetHashTagTimelineTask.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$HashTagSelector.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$PostTask.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Initialization$1.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Initialization$2.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Initialization.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter$1.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter$2.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby$battle_Status.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening$1.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening$2.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening$3.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening$DownloadImageTask.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$anim.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$attr.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$color.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$drawable.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$id.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$layout.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$raw.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$string.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/SangokushiPreferences.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/dummy/ trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/dummy/DummyMapData.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/ trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/AuthenticateCommand.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/BattleCommand.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/BattleResultCommand.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/CountryStateCommand.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/EnteringLobbyCommand.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/HttpClient.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/HttpCommand.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/HttpRunnable.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/InitializeCommand.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/LeavingLobbyCommand.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/LobbyInfoCommand.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/LobbyStatusCommand.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/LoginCommand.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/ResponceHandler.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/RoomInfoCommand.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/UserStatusCommand.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/model/ trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/model/Player.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/ trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TweetArrayAdapter$ViewHolder.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TweetArrayAdapter.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TweetItem.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterCredentialRunnable.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterJSON.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterOAuth.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterOperator.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterRunnable.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterUserStatusRunnable.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatPopupWindow.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView$1.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView$2.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView$3.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView$4.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapStaticView.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapView$1$1.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapView$1.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapView$2.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapView.class trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/WholeMapView.class trunk/OpenSangokushi/bin/resources.ap_ Modified: trunk/OpenSangokushi/.classpath =================================================================== --- trunk/OpenSangokushi/.classpath 2011-02-05 15:46:57 UTC (rev 485) +++ trunk/OpenSangokushi/.classpath 2011-02-05 15:54:41 UTC (rev 486) @@ -1,9 +1,9 @@ - - + + Added: trunk/OpenSangokushi/bin/OpenSangoksuhi.apk =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/OpenSangoksuhi.apk ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/classes.dex =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/classes.dex ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$1.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$1.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$2.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$2.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$3.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$3.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$GetHashTagTimelineTask.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$GetHashTagTimelineTask.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$HashTagSelector.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$HashTagSelector.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$PostTask.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle$PostTask.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Battle.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Initialization$1.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Initialization$1.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Initialization$2.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Initialization$2.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Initialization.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Initialization.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter$1.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter$1.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter$2.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter$2.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby$battle_Status.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby$battle_Status.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Lobby.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening$1.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening$1.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening$2.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening$2.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening$3.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening$3.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening$DownloadImageTask.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening$DownloadImageTask.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/Opening.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$anim.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$anim.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$attr.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$attr.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$color.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$color.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$drawable.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$drawable.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$id.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$id.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$layout.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$layout.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$raw.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$raw.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$string.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R$string.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/R.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/SangokushiPreferences.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/SangokushiPreferences.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/dummy/DummyMapData.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/dummy/DummyMapData.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/AuthenticateCommand.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/AuthenticateCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/BattleCommand.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/BattleCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/BattleResultCommand.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/BattleResultCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/CountryStateCommand.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/CountryStateCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/EnteringLobbyCommand.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/EnteringLobbyCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/HttpClient.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/HttpClient.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/HttpCommand.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/HttpCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/HttpRunnable.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/HttpRunnable.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/InitializeCommand.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/InitializeCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/LeavingLobbyCommand.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/LeavingLobbyCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/LobbyInfoCommand.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/LobbyInfoCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/LobbyStatusCommand.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/LobbyStatusCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/LoginCommand.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/LoginCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/ResponceHandler.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/ResponceHandler.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/RoomInfoCommand.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/RoomInfoCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/UserStatusCommand.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/httpclient/UserStatusCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/model/Player.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/model/Player.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TweetArrayAdapter$ViewHolder.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TweetArrayAdapter$ViewHolder.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TweetArrayAdapter.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TweetArrayAdapter.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TweetItem.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TweetItem.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterCredentialRunnable.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterCredentialRunnable.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterJSON.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterJSON.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterOAuth.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterOAuth.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterOperator.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterOperator.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterRunnable.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterRunnable.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterUserStatusRunnable.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/twitter/TwitterUserStatusRunnable.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatPopupWindow.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatPopupWindow.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView$1.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView$1.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView$2.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView$2.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView$3.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView$3.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView$4.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView$4.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/ChatView.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapStaticView.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapStaticView.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapView$1$1.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapView$1$1.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapView$1.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapView$1.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapView$2.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapView$2.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapView.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/MapView.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/WholeMapView.class =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/jp/or/cute/sangokushi/view/WholeMapView.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/OpenSangokushi/bin/resources.ap_ =================================================================== (Binary files differ) Property changes on: trunk/OpenSangokushi/bin/resources.ap_ ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/OpenSangokushi/default.properties =================================================================== --- trunk/OpenSangokushi/default.properties 2011-02-05 15:46:57 UTC (rev 485) +++ trunk/OpenSangokushi/default.properties 2011-02-05 15:54:41 UTC (rev 486) @@ -10,4 +10,4 @@ # Indicates whether an apk should be generated for each density. split.density=false # Project target. -target=android-4 +target=Google Inc.:Google APIs:4 Modified: trunk/OpenSangokushi/gen/jp/or/cute/sangokushi/R.java =================================================================== --- trunk/OpenSangokushi/gen/jp/or/cute/sangokushi/R.java 2011-02-05 15:46:57 UTC (rev 485) +++ trunk/OpenSangokushi/gen/jp/or/cute/sangokushi/R.java 2011-02-05 15:54:41 UTC (rev 486) @@ -1,142 +1,142 @@ -/* AUTO-GENERATED FILE. DO NOT MODIFY. - * - * This class was automatically generated by the - * aapt tool from the resource data it found. It - * should not be modified by hand. - */ - -package jp.or.cute.sangokushi; - -public final class R { - public static final class anim { - public static final int logo_scale=0x7f040000; - } - public static final class attr { - } - public static final class color { - public static final int solid_blue=0x7f060001; - public static final int solid_green=0x7f060002; - public static final int solid_red=0x7f060000; - public static final int solid_white=0x7f060004; - public static final int solid_yellow=0x7f060003; - public static final int start_button=0x7f060005; - } - public static final class drawable { - public static final int castle=0x7f020000; - public static final int desert=0x7f020001; - public static final int dra=0x7f020002; - public static final int forest=0x7f020003; - public static final int gi=0x7f020004; - public static final int gi_bg=0x7f020005; - public static final int go=0x7f020006; - public static final int go_bg=0x7f020007; - public static final int grass=0x7f020008; - public static final int icon=0x7f020009; - public static final int king=0x7f02000a; - public static final int king_back=0x7f02000b; - public static final int loading=0x7f02000c; - public static final int logo=0x7f02000d; - public static final int map_draft=0x7f02000e; - public static final int mountain=0x7f02000f; - public static final int openingback=0x7f020010; - public static final int player=0x7f020011; - public static final int player_back=0x7f020012; - public static final int street=0x7f020013; - public static final int syoku=0x7f020014; - public static final int syoku_bg=0x7f020015; - public static final int tree=0x7f020016; - public static final int water=0x7f020017; - } - public static final class id { - public static final int Button01=0x7f080023; - public static final int ChatView=0x7f080007; - public static final int EditText01=0x7f080022; - public static final int LinearLayout01=0x7f080000; - public static final int LinearLayout02=0x7f080001; - public static final int LinearLayout03=0x7f08000a; - public static final int LinearLayout04=0x7f080002; - public static final int LinearLayout06=0x7f080014; - public static final int ListView01=0x7f080015; - public static final int MapView=0x7f080008; - public static final int ScrollView01=0x7f08001e; - public static final int StatusDetailView=0x7f080009; - public static final int StatusView=0x7f080005; - public static final int TableLayout01=0x7f080017; - public static final int TableRow01=0x7f080018; - public static final int TableRow02=0x7f080019; - public static final int TableRow03=0x7f08001b; - public static final int TextView01=0x7f08000b; - public static final int TextView02=0x7f080003; - public static final int TextView03=0x7f080004; - public static final int TextView04=0x7f08001a; - public static final int TextView05=0x7f08001c; - public static final int TextView06=0x7f08001d; - public static final int Title01=0x7f080012; - public static final int Title02=0x7f080013; - public static final int TweetListView=0x7f080024; - public static final int WholeMap=0x7f080006; - public static final int edittext_name=0x7f08000e; - public static final int loginBtn=0x7f080011; - public static final int logo=0x7f08001f; - public static final int map=0x7f080016; - public static final int name=0x7f08000d; - public static final int presetBtn=0x7f080010; - public static final int serif=0x7f08000f; - public static final int start_button=0x7f080021; - public static final int title=0x7f08000c; - public static final int tweet_name=0x7f080025; - public static final int tweet_tweet=0x7f080026; - public static final int twitter_image=0x7f080020; - } - public static final class layout { - public static final int battle=0x7f030000; - public static final int initialization=0x7f030001; - public static final int list=0x7f030002; - public static final int lobby=0x7f030003; - public static final int main=0x7f030004; - public static final int map=0x7f030005; - public static final int opening=0x7f030006; - public static final int popup=0x7f030007; - public static final int tweetlist=0x7f030008; - } - public static final class raw { - public static final int bgm=0x7f050000; - } - public static final class string { - public static final int app_name=0x7f070000; - public static final int auth_progress_text=0x7f070008; - public static final int auth_progress_title=0x7f070007; - public static final int authenticate_button=0x7f070003; - public static final int authenticated=0x7f070005; - public static final int bad_value=0x7f070006; - public static final int cancel=0x7f070019; - public static final int chat_edit_hint=0x7f07000c; - public static final int commander=0x7f07001c; - public static final int compete=0x7f07001a; - public static final int game_user=0x7f07001d; - public static final int general=0x7f07001b; - public static final int login_button=0x7f07000e; - public static final int login_settings=0x7f07000d; - public static final int menu_reset_userstate=0x7f07001f; - public static final int menu_reset_userstate_comlplatemessage=0x7f070020; - public static final int menu_reset_userstate_notregistered=0x7f070021; - public static final int not_authenticated=0x7f070004; - public static final int ok=0x7f070018; - public static final int opening_message=0x7f070001; - public static final int send=0x7f07000b; - public static final int start_button=0x7f070002; - public static final int title=0x7f070022; - public static final int title_initialization=0x7f070009; - public static final int title_start=0x7f07000a; - public static final int tweet_error=0x7f07001e; - public static final int tweet_progress_text=0x7f070017; - public static final int tweet_progress_title=0x7f070016; - public static final int twitter_id=0x7f070011; - public static final int twitter_id_summary=0x7f070012; - public static final int twitter_key_edit_hint=0x7f07000f; - public static final int twitter_notauth_message=0x7f070015; - public static final int twitter_password=0x7f070013; - public static final int twitter_password_summary=0x7f070014; - public static final int twitter_secret_edit_hint=0x7f070010; - } -} +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package jp.or.cute.sangokushi; + +public final class R { + public static final class anim { + public static final int logo_scale=0x7f040000; + } + public static final class attr { + } + public static final class color { + public static final int solid_blue=0x7f060001; + public static final int solid_green=0x7f060002; + public static final int solid_red=0x7f060000; + public static final int solid_white=0x7f060004; + public static final int solid_yellow=0x7f060003; + public static final int start_button=0x7f060005; + } + public static final class drawable { + public static final int castle=0x7f020000; + public static final int desert=0x7f020001; + public static final int dra=0x7f020002; + public static final int forest=0x7f020003; + public static final int gi=0x7f020004; + public static final int gi_bg=0x7f020005; + public static final int go=0x7f020006; + public static final int go_bg=0x7f020007; + public static final int grass=0x7f020008; + public static final int icon=0x7f020009; + public static final int king=0x7f02000a; + public static final int king_back=0x7f02000b; + public static final int loading=0x7f02000c; + public static final int logo=0x7f02000d; + public static final int map_draft=0x7f02000e; + public static final int mountain=0x7f02000f; + public static final int openingback=0x7f020010; + public static final int player=0x7f020011; + public static final int player_back=0x7f020012; + public static final int street=0x7f020013; + public static final int syoku=0x7f020014; + public static final int syoku_bg=0x7f020015; + public static final int tree=0x7f020016; + public static final int water=0x7f020017; + } + public static final class id { + public static final int Button01=0x7f080023; + public static final int ChatView=0x7f080007; + public static final int EditText01=0x7f080022; + public static final int LinearLayout01=0x7f080000; + public static final int LinearLayout02=0x7f080001; + public static final int LinearLayout03=0x7f08000a; + public static final int LinearLayout04=0x7f080002; + public static final int LinearLayout06=0x7f080014; + public static final int ListView01=0x7f080015; + public static final int MapView=0x7f080008; + public static final int ScrollView01=0x7f08001e; + public static final int StatusDetailView=0x7f080009; + public static final int StatusView=0x7f080005; + public static final int TableLayout01=0x7f080017; + public static final int TableRow01=0x7f080018; + public static final int TableRow02=0x7f080019; + public static final int TableRow03=0x7f08001b; + public static final int TextView01=0x7f08000b; + public static final int TextView02=0x7f080003; + public static final int TextView03=0x7f080004; + public static final int TextView04=0x7f08001a; + public static final int TextView05=0x7f08001c; + public static final int TextView06=0x7f08001d; + public static final int Title01=0x7f080012; + public static final int Title02=0x7f080013; + public static final int TweetListView=0x7f080024; + public static final int WholeMap=0x7f080006; + public static final int edittext_name=0x7f08000e; + public static final int loginBtn=0x7f080011; + public static final int logo=0x7f08001f; + public static final int map=0x7f080016; + public static final int name=0x7f08000d; + public static final int presetBtn=0x7f080010; + public static final int serif=0x7f08000f; + public static final int start_button=0x7f080021; + public static final int title=0x7f08000c; + public static final int tweet_name=0x7f080025; + public static final int tweet_tweet=0x7f080026; + public static final int twitter_image=0x7f080020; + } + public static final class layout { + public static final int battle=0x7f030000; + public static final int initialization=0x7f030001; + public static final int list=0x7f030002; + public static final int lobby=0x7f030003; + public static final int main=0x7f030004; + public static final int map=0x7f030005; + public static final int opening=0x7f030006; + public static final int popup=0x7f030007; + public static final int tweetlist=0x7f030008; + } + public static final class raw { + public static final int bgm=0x7f050000; + } + public static final class string { + public static final int app_name=0x7f070000; + public static final int auth_progress_text=0x7f070008; + public static final int auth_progress_title=0x7f070007; + public static final int authenticate_button=0x7f070003; + public static final int authenticated=0x7f070005; + public static final int bad_value=0x7f070006; + public static final int cancel=0x7f070019; + public static final int chat_edit_hint=0x7f07000c; + public static final int commander=0x7f07001c; + public static final int compete=0x7f07001a; + public static final int game_user=0x7f07001d; + public static final int general=0x7f07001b; + public static final int login_button=0x7f07000e; + public static final int login_settings=0x7f07000d; + public static final int menu_reset_userstate=0x7f07001f; + public static final int menu_reset_userstate_comlplatemessage=0x7f070020; + public static final int menu_reset_userstate_notregistered=0x7f070021; + public static final int not_authenticated=0x7f070004; + public static final int ok=0x7f070018; + public static final int opening_message=0x7f070001; + public static final int send=0x7f07000b; + public static final int start_button=0x7f070002; + public static final int title=0x7f070022; + public static final int title_initialization=0x7f070009; + public static final int title_start=0x7f07000a; + public static final int tweet_error=0x7f07001e; + public static final int tweet_progress_text=0x7f070017; + public static final int tweet_progress_title=0x7f070016; + public static final int twitter_id=0x7f070011; + public static final int twitter_id_summary=0x7f070012; + public static final int twitter_key_edit_hint=0x7f07000f; + public static final int twitter_notauth_message=0x7f070015; + public static final int twitter_password=0x7f070013; + public static final int twitter_password_summary=0x7f070014; + public static final int twitter_secret_edit_hint=0x7f070010; + } +} From sangokushi-svn @ lists.sourceforge.jp Sun Feb 6 01:05:38 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Sun, 06 Feb 2011 01:05:38 +0900 Subject: [Sangokushi-svn] =?utf-8?q?=5BSVN=5FComitted=5D_=5B487=5D_Version?= =?utf-8?b?MS4gNuOBrnRhZ3Pjgbjjga7jgrPjg5/jg4Pjg4jjgafjgZnjgII=?= Message-ID: <1296921938.890497.5144.nullmailer@users.sourceforge.jp> Revision: 487 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=487 Author: hryksbt Date: 2011-02-06 01:05:38 +0900 (Sun, 06 Feb 2011) Log Message: ----------- Version1.6のtagsへのコミットです。 Added Paths: ----------- tags/Ver.0.1.6/ tags/Ver.0.1.6/.classpath tags/Ver.0.1.6/.project tags/Ver.0.1.6/.settings/ tags/Ver.0.1.6/AndroidManifest.xml tags/Ver.0.1.6/assets/ tags/Ver.0.1.6/bin/ tags/Ver.0.1.6/bin/OpenSangoksuhi.apk tags/Ver.0.1.6/bin/classes.dex tags/Ver.0.1.6/bin/jp/ tags/Ver.0.1.6/bin/jp/or/ tags/Ver.0.1.6/bin/jp/or/cute/ tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/ tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$1.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$2.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$3.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$GetHashTagTimelineTask.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$HashTagSelector.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$PostTask.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Initialization$1.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Initialization$2.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Initialization.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter$1.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter$2.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby$battle_Status.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening$1.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening$2.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening$3.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening$DownloadImageTask.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$anim.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$attr.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$color.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$drawable.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$id.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$layout.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$raw.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$string.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/SangokushiPreferences.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/dummy/ tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/dummy/DummyMapData.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/ tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/AuthenticateCommand.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/BattleCommand.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/BattleResultCommand.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/CountryStateCommand.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/EnteringLobbyCommand.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/HttpClient.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/HttpCommand.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/HttpRunnable.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/InitializeCommand.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/LeavingLobbyCommand.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/LobbyInfoCommand.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/LobbyStatusCommand.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/LoginCommand.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/ResponceHandler.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/RoomInfoCommand.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/UserStatusCommand.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/model/ tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/model/Player.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/ tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TweetArrayAdapter$ViewHolder.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TweetArrayAdapter.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TweetItem.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterCredentialRunnable.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterJSON.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterOAuth.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterOperator.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterRunnable.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterUserStatusRunnable.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatPopupWindow.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView$1.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView$2.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView$3.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView$4.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapStaticView.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapView$1$1.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapView$1.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapView$2.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapView.class tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/WholeMapView.class tags/Ver.0.1.6/bin/resources.ap_ tags/Ver.0.1.6/default.properties tags/Ver.0.1.6/gen/ tags/Ver.0.1.6/gen/jp/ tags/Ver.0.1.6/gen/jp/or/ tags/Ver.0.1.6/gen/jp/or/cute/ tags/Ver.0.1.6/gen/jp/or/cute/sangokushi/ tags/Ver.0.1.6/gen/jp/or/cute/sangokushi/R.java tags/Ver.0.1.6/libs/ tags/Ver.0.1.6/libs/signpost-commonshttp4-1.2.jar tags/Ver.0.1.6/libs/signpost-core-1.2.jar tags/Ver.0.1.6/res/ tags/Ver.0.1.6/res/anim/ tags/Ver.0.1.6/res/anim/logo_scale.xml tags/Ver.0.1.6/res/drawable/ tags/Ver.0.1.6/res/drawable/castle.png tags/Ver.0.1.6/res/drawable/desert.png tags/Ver.0.1.6/res/drawable/forest.png tags/Ver.0.1.6/res/drawable/gi.PNG tags/Ver.0.1.6/res/drawable/gi_bg.png tags/Ver.0.1.6/res/drawable/go.PNG tags/Ver.0.1.6/res/drawable/go_bg.png tags/Ver.0.1.6/res/drawable/grass.png tags/Ver.0.1.6/res/drawable/icon.png tags/Ver.0.1.6/res/drawable/king.png tags/Ver.0.1.6/res/drawable/king_back.png tags/Ver.0.1.6/res/drawable/loading.gif tags/Ver.0.1.6/res/drawable/logo.png tags/Ver.0.1.6/res/drawable/map_draft.png tags/Ver.0.1.6/res/drawable/mountain.png tags/Ver.0.1.6/res/drawable/openingback.png tags/Ver.0.1.6/res/drawable/player.png tags/Ver.0.1.6/res/drawable/player_back.png tags/Ver.0.1.6/res/drawable/street.png tags/Ver.0.1.6/res/drawable/syoku.PNG tags/Ver.0.1.6/res/drawable/syoku_bg.png tags/Ver.0.1.6/res/drawable/tree.png tags/Ver.0.1.6/res/drawable/water.png tags/Ver.0.1.6/res/drawable-hdpi/ tags/Ver.0.1.6/res/drawable-hdpi/icon.png tags/Ver.0.1.6/res/drawable-ldpi/ tags/Ver.0.1.6/res/drawable-ldpi/castle.png tags/Ver.0.1.6/res/drawable-ldpi/desert.png tags/Ver.0.1.6/res/drawable-ldpi/dra.png tags/Ver.0.1.6/res/drawable-ldpi/forest.png tags/Ver.0.1.6/res/drawable-ldpi/grass.png tags/Ver.0.1.6/res/drawable-ldpi/icon.png tags/Ver.0.1.6/res/drawable-ldpi/loading.gif tags/Ver.0.1.6/res/drawable-ldpi/logo.png tags/Ver.0.1.6/res/drawable-ldpi/mountain.png tags/Ver.0.1.6/res/drawable-ldpi/openingback.png tags/Ver.0.1.6/res/drawable-ldpi/player.png tags/Ver.0.1.6/res/drawable-ldpi/street.png tags/Ver.0.1.6/res/drawable-ldpi/tree.png tags/Ver.0.1.6/res/drawable-ldpi/water.png tags/Ver.0.1.6/res/drawable-mdpi/ tags/Ver.0.1.6/res/drawable-mdpi/icon.png tags/Ver.0.1.6/res/layout/ tags/Ver.0.1.6/res/layout/battle.xml tags/Ver.0.1.6/res/layout/initialization.xml tags/Ver.0.1.6/res/layout/list.xml tags/Ver.0.1.6/res/layout/lobby.xml tags/Ver.0.1.6/res/layout/main.xml tags/Ver.0.1.6/res/layout/map.xml tags/Ver.0.1.6/res/layout/opening.xml tags/Ver.0.1.6/res/layout/popup.xml tags/Ver.0.1.6/res/layout/tweetlist.xml tags/Ver.0.1.6/res/raw/ tags/Ver.0.1.6/res/raw/bgm.mp3 tags/Ver.0.1.6/res/values/ tags/Ver.0.1.6/res/values/colors.xml tags/Ver.0.1.6/res/values/strings.xml tags/Ver.0.1.6/res/values-ja/ tags/Ver.0.1.6/res/values-ja/colors.xml tags/Ver.0.1.6/res/values-ja/strings.xml tags/Ver.0.1.6/src/ tags/Ver.0.1.6/src/jp/ tags/Ver.0.1.6/src/jp/or/ tags/Ver.0.1.6/src/jp/or/cute/ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Battle.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Initialization.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Lobby.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Opening.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/SangokushiPreferences.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/dummy/ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/dummy/DummyMapData.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/AuthenticateCommand.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/BattleCommand.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/BattleResultCommand.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/CountryStateCommand.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/EnteringLobbyCommand.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/HttpClient.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/HttpCommand.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/HttpRunnable.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/InitializeCommand.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LeavingLobbyCommand.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LobbyInfoCommand.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LobbyStatusCommand.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LoginCommand.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/ResponceHandler.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/RoomInfoCommand.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/UserStatusCommand.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/model/ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/model/Player.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TweetArrayAdapter.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TweetItem.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterCredentialRunnable.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterJSON.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterOAuth.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterOperator.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterRunnable.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterUserStatusRunnable.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/ChatPopupWindow.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/ChatView.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/MapStaticView.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/MapView.java tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/WholeMapView.java Added: tags/Ver.0.1.6/.classpath =================================================================== --- tags/Ver.0.1.6/.classpath (rev 0) +++ tags/Ver.0.1.6/.classpath 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,9 @@ + + + + + + + + + Added: tags/Ver.0.1.6/.project =================================================================== --- tags/Ver.0.1.6/.project (rev 0) +++ tags/Ver.0.1.6/.project 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,33 @@ + + + OpenSangokushi + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + Added: tags/Ver.0.1.6/AndroidManifest.xml =================================================================== --- tags/Ver.0.1.6/AndroidManifest.xml (rev 0) +++ tags/Ver.0.1.6/AndroidManifest.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Added: tags/Ver.0.1.6/bin/OpenSangoksuhi.apk =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/OpenSangoksuhi.apk ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/classes.dex =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/classes.dex ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$1.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$1.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$2.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$2.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$3.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$3.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$GetHashTagTimelineTask.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$GetHashTagTimelineTask.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$HashTagSelector.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$HashTagSelector.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$PostTask.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle$PostTask.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Battle.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Initialization$1.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Initialization$1.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Initialization$2.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Initialization$2.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Initialization.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Initialization.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter$1.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter$1.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter$2.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter$2.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby$MyClickAdapter.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby$battle_Status.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby$battle_Status.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Lobby.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening$1.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening$1.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening$2.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening$2.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening$3.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening$3.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening$DownloadImageTask.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening$DownloadImageTask.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/Opening.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$anim.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$anim.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$attr.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$attr.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$color.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$color.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$drawable.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$drawable.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$id.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$id.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$layout.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$layout.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$raw.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$raw.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$string.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R$string.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/R.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/SangokushiPreferences.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/SangokushiPreferences.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/dummy/DummyMapData.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/dummy/DummyMapData.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/AuthenticateCommand.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/AuthenticateCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/BattleCommand.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/BattleCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/BattleResultCommand.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/BattleResultCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/CountryStateCommand.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/CountryStateCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/EnteringLobbyCommand.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/EnteringLobbyCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/HttpClient.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/HttpClient.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/HttpCommand.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/HttpCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/HttpRunnable.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/HttpRunnable.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/InitializeCommand.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/InitializeCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/LeavingLobbyCommand.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/LeavingLobbyCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/LobbyInfoCommand.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/LobbyInfoCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/LobbyStatusCommand.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/LobbyStatusCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/LoginCommand.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/LoginCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/ResponceHandler.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/ResponceHandler.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/RoomInfoCommand.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/RoomInfoCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/UserStatusCommand.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/httpclient/UserStatusCommand.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/model/Player.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/model/Player.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TweetArrayAdapter$ViewHolder.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TweetArrayAdapter$ViewHolder.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TweetArrayAdapter.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TweetArrayAdapter.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TweetItem.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TweetItem.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterCredentialRunnable.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterCredentialRunnable.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterJSON.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterJSON.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterOAuth.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterOAuth.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterOperator.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterOperator.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterRunnable.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterRunnable.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterUserStatusRunnable.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/twitter/TwitterUserStatusRunnable.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatPopupWindow.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatPopupWindow.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView$1.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView$1.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView$2.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView$2.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView$3.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView$3.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView$4.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView$4.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/ChatView.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapStaticView.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapStaticView.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapView$1$1.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapView$1$1.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapView$1.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapView$1.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapView$2.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapView$2.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapView.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/MapView.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/WholeMapView.class =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/jp/or/cute/sangokushi/view/WholeMapView.class ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/bin/resources.ap_ =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/bin/resources.ap_ ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/default.properties =================================================================== --- tags/Ver.0.1.6/default.properties (rev 0) +++ tags/Ver.0.1.6/default.properties 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,13 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "build.properties", and override values to adapt the script to your +# project structure. + +# Indicates whether an apk should be generated for each density. +split.density=false +# Project target. +target=Google Inc.:Google APIs:4 Added: tags/Ver.0.1.6/gen/jp/or/cute/sangokushi/R.java =================================================================== --- tags/Ver.0.1.6/gen/jp/or/cute/sangokushi/R.java (rev 0) +++ tags/Ver.0.1.6/gen/jp/or/cute/sangokushi/R.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,142 @@ +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package jp.or.cute.sangokushi; + +public final class R { + public static final class anim { + public static final int logo_scale=0x7f040000; + } + public static final class attr { + } + public static final class color { + public static final int solid_blue=0x7f060001; + public static final int solid_green=0x7f060002; + public static final int solid_red=0x7f060000; + public static final int solid_white=0x7f060004; + public static final int solid_yellow=0x7f060003; + public static final int start_button=0x7f060005; + } + public static final class drawable { + public static final int castle=0x7f020000; + public static final int desert=0x7f020001; + public static final int dra=0x7f020002; + public static final int forest=0x7f020003; + public static final int gi=0x7f020004; + public static final int gi_bg=0x7f020005; + public static final int go=0x7f020006; + public static final int go_bg=0x7f020007; + public static final int grass=0x7f020008; + public static final int icon=0x7f020009; + public static final int king=0x7f02000a; + public static final int king_back=0x7f02000b; + public static final int loading=0x7f02000c; + public static final int logo=0x7f02000d; + public static final int map_draft=0x7f02000e; + public static final int mountain=0x7f02000f; + public static final int openingback=0x7f020010; + public static final int player=0x7f020011; + public static final int player_back=0x7f020012; + public static final int street=0x7f020013; + public static final int syoku=0x7f020014; + public static final int syoku_bg=0x7f020015; + public static final int tree=0x7f020016; + public static final int water=0x7f020017; + } + public static final class id { + public static final int Button01=0x7f080023; + public static final int ChatView=0x7f080007; + public static final int EditText01=0x7f080022; + public static final int LinearLayout01=0x7f080000; + public static final int LinearLayout02=0x7f080001; + public static final int LinearLayout03=0x7f08000a; + public static final int LinearLayout04=0x7f080002; + public static final int LinearLayout06=0x7f080014; + public static final int ListView01=0x7f080015; + public static final int MapView=0x7f080008; + public static final int ScrollView01=0x7f08001e; + public static final int StatusDetailView=0x7f080009; + public static final int StatusView=0x7f080005; + public static final int TableLayout01=0x7f080017; + public static final int TableRow01=0x7f080018; + public static final int TableRow02=0x7f080019; + public static final int TableRow03=0x7f08001b; + public static final int TextView01=0x7f08000b; + public static final int TextView02=0x7f080003; + public static final int TextView03=0x7f080004; + public static final int TextView04=0x7f08001a; + public static final int TextView05=0x7f08001c; + public static final int TextView06=0x7f08001d; + public static final int Title01=0x7f080012; + public static final int Title02=0x7f080013; + public static final int TweetListView=0x7f080024; + public static final int WholeMap=0x7f080006; + public static final int edittext_name=0x7f08000e; + public static final int loginBtn=0x7f080011; + public static final int logo=0x7f08001f; + public static final int map=0x7f080016; + public static final int name=0x7f08000d; + public static final int presetBtn=0x7f080010; + public static final int serif=0x7f08000f; + public static final int start_button=0x7f080021; + public static final int title=0x7f08000c; + public static final int tweet_name=0x7f080025; + public static final int tweet_tweet=0x7f080026; + public static final int twitter_image=0x7f080020; + } + public static final class layout { + public static final int battle=0x7f030000; + public static final int initialization=0x7f030001; + public static final int list=0x7f030002; + public static final int lobby=0x7f030003; + public static final int main=0x7f030004; + public static final int map=0x7f030005; + public static final int opening=0x7f030006; + public static final int popup=0x7f030007; + public static final int tweetlist=0x7f030008; + } + public static final class raw { + public static final int bgm=0x7f050000; + } + public static final class string { + public static final int app_name=0x7f070000; + public static final int auth_progress_text=0x7f070008; + public static final int auth_progress_title=0x7f070007; + public static final int authenticate_button=0x7f070003; + public static final int authenticated=0x7f070005; + public static final int bad_value=0x7f070006; + public static final int cancel=0x7f070019; + public static final int chat_edit_hint=0x7f07000c; + public static final int commander=0x7f07001c; + public static final int compete=0x7f07001a; + public static final int game_user=0x7f07001d; + public static final int general=0x7f07001b; + public static final int login_button=0x7f07000e; + public static final int login_settings=0x7f07000d; + public static final int menu_reset_userstate=0x7f07001f; + public static final int menu_reset_userstate_comlplatemessage=0x7f070020; + public static final int menu_reset_userstate_notregistered=0x7f070021; + public static final int not_authenticated=0x7f070004; + public static final int ok=0x7f070018; + public static final int opening_message=0x7f070001; + public static final int send=0x7f07000b; + public static final int start_button=0x7f070002; + public static final int title=0x7f070022; + public static final int title_initialization=0x7f070009; + public static final int title_start=0x7f07000a; + public static final int tweet_error=0x7f07001e; + public static final int tweet_progress_text=0x7f070017; + public static final int tweet_progress_title=0x7f070016; + public static final int twitter_id=0x7f070011; + public static final int twitter_id_summary=0x7f070012; + public static final int twitter_key_edit_hint=0x7f07000f; + public static final int twitter_notauth_message=0x7f070015; + public static final int twitter_password=0x7f070013; + public static final int twitter_password_summary=0x7f070014; + public static final int twitter_secret_edit_hint=0x7f070010; + } +} Added: tags/Ver.0.1.6/libs/signpost-commonshttp4-1.2.jar =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/libs/signpost-commonshttp4-1.2.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/libs/signpost-core-1.2.jar =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/libs/signpost-core-1.2.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/anim/logo_scale.xml =================================================================== --- tags/Ver.0.1.6/res/anim/logo_scale.xml (rev 0) +++ tags/Ver.0.1.6/res/anim/logo_scale.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,11 @@ + + Added: tags/Ver.0.1.6/res/drawable/castle.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/castle.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/desert.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/desert.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/forest.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/forest.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/gi.PNG =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/gi.PNG ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/gi_bg.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/gi_bg.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/go.PNG =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/go.PNG ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/go_bg.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/go_bg.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/grass.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/grass.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/icon.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/icon.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/king.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/king.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/king_back.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/king_back.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/loading.gif =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/loading.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/logo.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/logo.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/map_draft.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/map_draft.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/mountain.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/mountain.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/openingback.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/openingback.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/player.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/player.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/player_back.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/player_back.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/street.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/street.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/syoku.PNG =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/syoku.PNG ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/syoku_bg.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/syoku_bg.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/tree.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/tree.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable/water.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable/water.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-hdpi/icon.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-hdpi/icon.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-ldpi/castle.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-ldpi/castle.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-ldpi/desert.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-ldpi/desert.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-ldpi/dra.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-ldpi/dra.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-ldpi/forest.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-ldpi/forest.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-ldpi/grass.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-ldpi/grass.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-ldpi/icon.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-ldpi/icon.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-ldpi/loading.gif =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-ldpi/loading.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-ldpi/logo.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-ldpi/logo.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-ldpi/mountain.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-ldpi/mountain.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-ldpi/openingback.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-ldpi/openingback.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-ldpi/player.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-ldpi/player.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-ldpi/street.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-ldpi/street.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-ldpi/tree.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-ldpi/tree.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-ldpi/water.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-ldpi/water.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/drawable-mdpi/icon.png =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/drawable-mdpi/icon.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/layout/battle.xml =================================================================== --- tags/Ver.0.1.6/res/layout/battle.xml (rev 0) +++ tags/Ver.0.1.6/res/layout/battle.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Added: tags/Ver.0.1.6/res/layout/initialization.xml =================================================================== --- tags/Ver.0.1.6/res/layout/initialization.xml (rev 0) +++ tags/Ver.0.1.6/res/layout/initialization.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: tags/Ver.0.1.6/res/layout/list.xml =================================================================== --- tags/Ver.0.1.6/res/layout/list.xml (rev 0) +++ tags/Ver.0.1.6/res/layout/list.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,7 @@ + + Added: tags/Ver.0.1.6/res/layout/lobby.xml =================================================================== --- tags/Ver.0.1.6/res/layout/lobby.xml (rev 0) +++ tags/Ver.0.1.6/res/layout/lobby.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: tags/Ver.0.1.6/res/layout/main.xml =================================================================== --- tags/Ver.0.1.6/res/layout/main.xml (rev 0) +++ tags/Ver.0.1.6/res/layout/main.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,12 @@ + + + + Added: tags/Ver.0.1.6/res/layout/map.xml =================================================================== --- tags/Ver.0.1.6/res/layout/map.xml (rev 0) +++ tags/Ver.0.1.6/res/layout/map.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,4 @@ + + + + Added: tags/Ver.0.1.6/res/layout/opening.xml =================================================================== --- tags/Ver.0.1.6/res/layout/opening.xml (rev 0) +++ tags/Ver.0.1.6/res/layout/opening.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,18 @@ + + + + + + + \ No newline at end of file Added: tags/Ver.0.1.6/res/layout/popup.xml =================================================================== --- tags/Ver.0.1.6/res/layout/popup.xml (rev 0) +++ tags/Ver.0.1.6/res/layout/popup.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,10 @@ + + + + + + + + Added: tags/Ver.0.1.6/res/layout/tweetlist.xml =================================================================== --- tags/Ver.0.1.6/res/layout/tweetlist.xml (rev 0) +++ tags/Ver.0.1.6/res/layout/tweetlist.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,11 @@ + + + + + + + + Added: tags/Ver.0.1.6/res/raw/bgm.mp3 =================================================================== (Binary files differ) Property changes on: tags/Ver.0.1.6/res/raw/bgm.mp3 ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: tags/Ver.0.1.6/res/values/colors.xml =================================================================== --- tags/Ver.0.1.6/res/values/colors.xml (rev 0) +++ tags/Ver.0.1.6/res/values/colors.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,11 @@ + + + #f00 + #0000ff + #f0f0 + #ffff00 + #ffffff + + #00000000 + + Added: tags/Ver.0.1.6/res/values/strings.xml =================================================================== --- tags/Ver.0.1.6/res/values/strings.xml (rev 0) +++ tags/Ver.0.1.6/res/values/strings.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,44 @@ + + + OpenSangokushi + Please wait.... + START + Authenticate + Not Authenticated. + Authenticated. + + Bad value. + + Authenticating... + Fetching your profile information. + + Initialization + START + + send + message + + Loging Settings + Goto Lobby + Your twitter ID. + Your twitter password. + Twitter ID + Twitter ID + Twitter Password + Entry Twitter password + Please permit Twitter clicking here + Sending... + Posting your Message + OK + Cancel + OK + General + Commander + User + + error + + RESET + Your account information was deleted. + Your account information is not registered. + Added: tags/Ver.0.1.6/res/values-ja/colors.xml =================================================================== --- tags/Ver.0.1.6/res/values-ja/colors.xml (rev 0) +++ tags/Ver.0.1.6/res/values-ja/colors.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,9 @@ + + + #f00 + #0000ff + #f0f0 + #ffffff00 + + #000000 + Added: tags/Ver.0.1.6/res/values-ja/strings.xml =================================================================== --- tags/Ver.0.1.6/res/values-ja/strings.xml (rev 0) +++ tags/Ver.0.1.6/res/values-ja/strings.xml 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,45 @@ + + + Open三国志 + しばらくお待ち下さい。。。 + START + Twitter認証 + 未認証 + 認証済 + + 不正な値 + + 認証処理中... + プロフィール情報の取得中です。 + + 初期設定 + 開始 + + 送信 + メッセージを入力して下さい + + ログイン設定 + ロビーへ + Twitterのユーザー名を入力 + Twitterのパスワードを入力 + Twitter認証 + TwitterのID + TwitterのIDを登録します + Twitterのパスワード + Twitterのパスワードを登録します + ここをクリックしてTwitter認証して下さい + 送信中... + メッセージを送信しています。 + 設定 + キャンセル + 参戦する + 総大将 + 武将 + 隊長 + + エラーが発生しました + + 登録解除 + あなたのアカウント情報を削除しました + あなたのアカウント情報は登録されていません + Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Battle.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Battle.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Battle.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,663 @@ +package jp.or.cute.sangokushi; + +import java.util.Hashtable; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.util.Currency; +import java.util.LinkedList; +import java.util.Random; + +import oauth.signpost.OAuthConsumer; +import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer; +import oauth.signpost.exception.OAuthCommunicationException; +import oauth.signpost.exception.OAuthExpectationFailedException; +import oauth.signpost.exception.OAuthMessageSignerException; + +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.impl.client.BasicResponseHandler; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.params.BasicHttpParams; +import org.apache.http.params.HttpParams; +import org.apache.http.params.HttpProtocolParams; +import org.apache.http.protocol.HTTP; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import jp.or.cute.sangokushi.httpclient.BattleResultCommand; +import jp.or.cute.sangokushi.httpclient.HttpClient; +import jp.or.cute.sangokushi.httpclient.HttpCommand; +import jp.or.cute.sangokushi.httpclient.RoomInfoCommand; +import jp.or.cute.sangokushi.model.Player; +import jp.or.cute.sangokushi.twitter.TweetArrayAdapter; +import jp.or.cute.sangokushi.twitter.TweetItem; +import jp.or.cute.sangokushi.twitter.TwitterJSON; +import jp.or.cute.sangokushi.twitter.TwitterOAuth; +import jp.or.cute.sangokushi.twitter.TwitterOperator; +import jp.or.cute.sangokushi.view.ChatView; +import jp.or.cute.sangokushi.view.MapView; +import jp.or.cute.sangokushi.view.WholeMapView; +import android.app.Activity; +import android.app.AlertDialog; +import android.app.ProgressDialog; +import android.content.ContentUris; +import android.content.DialogInterface; +import android.content.Intent; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.os.SystemClock; +import android.util.Log; +import android.view.KeyEvent; +import android.view.Menu; +import android.view.MenuItem; +import android.view.inputmethod.InputMethodManager; +import android.webkit.WebView; +import android.widget.EditText; +import android.widget.ListView; +import android.widget.PopupWindow; +import android.widget.TextView; + +/** + * 戦闘画面用アクティビティー + * @author iST + * @version 0.1 + * @since 2010/03/26 + */ +public class Battle extends Activity{ + private WholeMapView mWholeMap; + PopupWindow mPopupWindow; + private MapView map; + ChatView mChatview; + //for Twitter + private TweetArrayAdapter mTweetArrayAdapter; + private LinkedList mChatTweetLists = new LinkedList(); + private ListView mTweetList; + private EditText mTweetEditor; + Handler mTweetEditorHandler; + + + private Player mPlayer; + private String mUserID; + public String mUserName; + private String mRoomID; + private String mRoomName; + + private static final int MENU_ID_HELP = (Menu.FIRST + 1); + private boolean visible = true; + + /* + * メニューの表示 + * by kumazaku 2010/7/31 + */ + @Override + public boolean onCreateOptionsMenu(Menu menu) { + menu.add(Menu.NONE, MENU_ID_HELP, Menu.NONE, "HELP"); + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + menu.findItem(MENU_ID_HELP).setVisible(visible); + visible = !visible; + return super.onPrepareOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + boolean ret = true; + switch (item.getItemId()) { + default: + ret = super.onOptionsItemSelected(item); + break; + case MENU_ID_HELP: + Log.d("BattleMenu","HELP"); + Uri uri = Uri.parse("http://sangokushi.cute.or.jp/index.php/help/battle-operation"); + Intent intent = new Intent(Intent.ACTION_VIEW, uri); + startActivity(intent); + + ret = true; + break; + } + return ret; + } + + + + + /* + * 詳細マップから全体マップへのハンドラー + */ + private Handler mWholeMapHandler = new Handler(){ + public void handleMessage(Message msg){ + try{ + int[] xy = (int[]) msg.obj; + mWholeMap.drawArea(xy[0],xy[1]); + }catch (Exception e) { + e.printStackTrace(); + } + } + }; + /* + * 仮にプレイヤーを生成している + */ + private Player[] makePlayers() { + Random rnd = new Random(); + rnd.setSeed(11); + Player[] players = new Player[10]; + for (int i=0;i>"); + //Log.d("makePlayers","size="+Integer.toString(pInfo.length)); + Player[] players = new Player[pInfo.length-1]; + //Log.d("makePlayers","players size="+Integer.toString(players.length)); + for (int i=1,j=0;i>"); + String[] value = param[1].split(","); + int maxTurn = Integer.valueOf(value[0]); + int currentTurn = Integer.valueOf(value[1]); + int diffTurn = maxTurn - currentTurn; + TextView currentTurnView = (TextView) findViewById(R.id.TextView03); + currentTurnView.setText(Integer.toString(currentTurn)+"日目"); + TextView diffTurnView = (TextView) findViewById(R.id.TextView01); + diffTurnView.setText("残り"+Integer.toString(diffTurn)+"日"); + + mUserName = pref.getUserName(); + // = new Player(this,mUserName); + + map = (MapView) findViewById(R.id.MapView); + map.mUserName = mUserName; + Player[] players = getPlayerInfo(); + int[] CountryPower = new int[3]; + int[] unit = new int[3]; + String[] general = new String[3]; + mPlayer.setMySelf(); + + String countryName = pref.getCountryID(); + if (0 >= countryName.length()) { + // ダミーの値を設定(todo:正しくはエラー処理すべき) + countryName = "1"; + } + // player型内部ではCountryIdは0から始まっているため、-1する。 + int myCountryId = Integer.parseInt(countryName) - 1; + int enemyCountryId = -1; + for (int i=0;i { + + DefaultHttpClient mClient; + //OAuth + private OAuthConsumer mConsumer; + + @Override + protected void onPreExecute() { + mClient = new DefaultHttpClient(); + //OAuthコンシューマー + mConsumer = new CommonsHttpOAuthConsumer( + TwitterOperator.TWITTER_CONSUMER_KEY, + TwitterOperator.TWITTER_CONSUMER_SECRET); + + } + + @Override + protected JSONArray doInBackground(HashTagSelector... params) { + JSONArray array = null; + try { + for(int i = 0; i < params.length; ++i) { + Uri sUri = Uri.parse(params[i].url); + Uri.Builder builder = sUri.buildUpon(); + if(params[i].since_id != null) { + builder.appendQueryParameter("since_id", String.valueOf(params[i].since_id)); + } else if (params[i].max_id != null) { // these are mutually exclusive + builder.appendQueryParameter("max_id", String.valueOf(params[i].max_id)); + } + if(params[i].count != null) { + builder.appendQueryParameter("count", String.valueOf((params[i].count > 200) ? 200 : params[i].count)); + } + if(params[i].rpp != null) { + builder.appendQueryParameter("rpp", String.valueOf(params[i].rpp)); + } + if(params[i].page != null) { + builder.appendQueryParameter("page", String.valueOf(params[i].page)); + } + if(params[i].q != null) { + builder.appendQueryParameter("q", String.valueOf(params[i].q)); + } + HttpGet get = new HttpGet(builder.build().toString()); + mConsumer.sign(get); + String response = mClient.execute(get, new BasicResponseHandler()); + if(!response.startsWith("[")){ + response = "[" + response + "]"; + } + array = new JSONArray(response); + } + } catch (JSONException e) { + e.printStackTrace(); + } catch (OAuthMessageSignerException e) { + e.printStackTrace(); + } catch (OAuthExpectationFailedException e) { + e.printStackTrace(); + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } catch (OAuthCommunicationException e) { + e.printStackTrace(); + } + return array; + } + + // This is in the UI thread, so we can mess with the UI + protected void onPostExecute(JSONArray array) { + mClient.getConnectionManager().shutdown(); + JSONArray realArray = null; + if(array != null) { + try { + if(array.length() == 1){ + JSONObject checkStatus = array.getJSONObject(0); + if(checkStatus.has("query") && checkStatus.has("results")){ + //検索結果 + realArray = checkStatus.getJSONArray("results"); + } + }else{ + realArray = array; + } + mChatTweetLists.clear(); + for(int i = 0; i < realArray.length(); ++i) { + JSONObject status = realArray.getJSONObject(i); + TwitterJSON json = new TwitterJSON(Battle.this); + TweetItem item = new TweetItem(Battle.this, json, status); + mChatTweetLists.add(item); + } + mTweetArrayAdapter.notifyDataSetChanged(); + } catch (JSONException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + } + } + } + + /* + * Tweetの送信 + */ + private class PostTask extends AsyncTask { + + ProgressDialog postDialog; + DefaultHttpClient mClient; + //OAuth + private OAuthConsumer mConsumer; + + @Override + protected void onPreExecute() { + if(Battle.this.isFinishing()){ + this.cancel(true); + return; + } + SangokushiPreferences pref = new SangokushiPreferences(Battle.this); + + mClient = new DefaultHttpClient(); + //OAuthコンシューマー + mConsumer = new CommonsHttpOAuthConsumer( + TwitterOperator.TWITTER_CONSUMER_KEY, + TwitterOperator.TWITTER_CONSUMER_SECRET); + TwitterOperator operator = new TwitterOperator(Battle.this); + mConsumer.setTokenWithSecret(operator.getTwitterToken(), operator.getTwitterSecret()); + postDialog = ProgressDialog.show(Battle.this, + getText(R.string.tweet_progress_title), + getText(R.string.tweet_progress_text), + true, + false); + } + + @Override + protected JSONObject doInBackground(String... params) { + + JSONObject jso = null; + try { + HttpPost post = new HttpPost(TwitterOperator.TWITTER_UPDATE_URL); + LinkedList out = new LinkedList(); + out.add(new BasicNameValuePair("status", params[0])); + post.setEntity(new UrlEncodedFormEntity(out, HTTP.UTF_8)); + post.setParams(getParams()); + // sign the request to authenticate + mConsumer.sign(post); + String response = mClient.execute(post, new BasicResponseHandler()); + jso = new JSONObject(response); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (OAuthMessageSignerException e) { + e.printStackTrace(); + } catch (OAuthExpectationFailedException e) { + e.printStackTrace(); + } catch (OAuthCommunicationException e) { + e.printStackTrace(); + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } catch (JSONException e) { + e.printStackTrace(); + } finally { + + } + return jso; + } + + // This is in the UI thread, so we can mess with the UI + protected void onPostExecute(JSONObject jso) { + mClient.getConnectionManager().shutdown(); + postDialog.dismiss(); + if(jso != null) { // authorization succeeded, the json object contains the user information + mTweetEditor.setText(""); + //mLast.setText(json.getCurrentTweet(jso)); + loadTweets(mHashTag); + } else { + //mLast.setText(getText(R.string.tweet_error)); + } + } + } + public HttpParams getParams() { + HttpParams params = new BasicHttpParams(); + HttpProtocolParams.setUseExpectContinue(params, false); + return params; + } + + +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Initialization.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Initialization.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Initialization.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,210 @@ +?package jp.or.cute.sangokushi; + +import jp.or.cute.sangokushi.httpclient.HttpClient; +import jp.or.cute.sangokushi.httpclient.HttpCommand; +import jp.or.cute.sangokushi.httpclient.HttpRunnable; +import jp.or.cute.sangokushi.httpclient.InitializeCommand; +import jp.or.cute.sangokushi.httpclient.LoginCommand; +import jp.or.cute.sangokushi.httpclient.ResponceHandler; +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Intent; +import android.location.Location; +import android.location.LocationListener; +import android.location.LocationManager; +import android.os.Bundle; +import android.os.Message; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageButton; +import android.widget.Toast; + +/** + * 初期設定画面用アクティビティー + * + * @author non + * @author iST + * @version 0.1 + * @since 2010/05/01 + */ + +public class Initialization extends Activity implements View.OnClickListener, LocationListener { + + private ImageButton mPresetButton; + private ImageButton mLoginButton; + private EditText mUserNameTextBox; + private LocationManager mLocationManager; + private double mLatitude; + private double mLongitude; + + private ResponceHandler mPresetHandler = new ResponceHandler(){ + public void handleMessage(Message msg){ + super.handleMessage(msg); + if(this.isError()){ + String message = "登録時にエラーが発生しました。"; + //if(this.getErrorCode() == ResponceHandler.ERROR_CODE_INIT_DUPLICATION_USERNAME){ + if(this.getErrorCode().equals(ResponceHandler.ERROR_CODE_INIT_DUPLICATION_USERNAME)){ + message = "ユーザー名は既に利用されています。別なユーザー名を指定して下さい"; + } + Toast.makeText(Initialization.this, message, Toast.LENGTH_LONG).show(); + return; + } + String[] responces = ResponceHandler.splitResponceParts(this.getResponceArray()[1]); + String[] responces2_for_sessionID = ResponceHandler.splitResponceParts(this.getResponceArray()[0]); + if(responces.length == 3){ + /** + * SessionID運用に伴うログインNG修正 + * akifumi3 2010.05.12 + */ + //Ud474bcd73,0fdcfbd07a893ffec59ff2c2790b7a7f,1,魏 + //[U7ee62fc81, 3, 蜀] + SangokushiPreferences pref = new SangokushiPreferences(Initialization.this); + //SessionID保存 + //pref.setSessionID(responces[1]); + pref.setSessionID(responces2_for_sessionID[2]); + + + //ユーザーID、ユーザー名 + pref.setUserID(responces[0]); + pref.setUserName(mUserNameTextBox.getText().toString()); + + //所属国ID、設定 + //pref.setCountryID(responces[2]); + pref.setCountryID(responces[1]); + + String message = "登録しました。「参加する」をタップして下さい。"; + Toast.makeText(Initialization.this, message, Toast.LENGTH_LONG).show(); + } + } + }; + + private ResponceHandler mLoginHandler = new ResponceHandler(){ + public void handleMessage(Message msg){ + super.handleMessage(msg); + if(this.isError()){ + String message = "ログイン時にエラーが発生しました。"; + Toast.makeText(Initialization.this, message, Toast.LENGTH_LONG).show(); + return; + } + //ロビー画面 + try{ + Intent intent = new Intent(Initialization.this, Lobby.class); + //intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); + startActivityForResult(intent, SangokushiPreferences.RESULT_LOBBY); + }catch(Exception e){ + e.printStackTrace(); + } + } + }; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.initialization); + + mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE); + + } + @Override + protected void onDestroy() { + if (mLocationManager != null) { + mLocationManager.removeUpdates(this); + } + super.onDestroy(); + } + + @Override + protected void onPause() { + if (mLocationManager != null) { + mLocationManager.removeUpdates(this); + } + super.onPause(); + } + + @Override + protected void onResume() { + mPresetButton = (ImageButton) findViewById(R.id.presetBtn); + mPresetButton.setOnClickListener(this); + mLoginButton = (ImageButton) findViewById(R.id.loginBtn); + mLoginButton.setOnClickListener(this); + mUserNameTextBox = (EditText) findViewById(R.id.edittext_name); + + if (mLocationManager != null) { + mLocationManager.requestLocationUpdates( + LocationManager.GPS_PROVIDER, + 0, + 0, + this); + } + + super.onResume(); + } + + @Override + public void onClick(View v) { + SangokushiPreferences pref; + if(v.equals(this.mPresetButton)){ + //ユーザー名登録、所属国決定 + //ユーザー名チェック + if(mUserNameTextBox.getText() == null){ + AlertDialog.Builder alertDialog = new AlertDialog.Builder(Initialization.this); + alertDialog.setTitle("エラー"); + alertDialog.setMessage("ユーザー名を入力して下さい"); + alertDialog.show(); + return; + } + //ユーザー名、GPS情報送信 + pref = new SangokushiPreferences(Initialization.this); + InitializeCommand command = new InitializeCommand(HttpCommand.POST, pref.getSessionID()); + command.setParam("un", mUserNameTextBox.getText().toString()); + command.setParam("lat", String.valueOf(mLatitude)); + command.setParam("lon", String.valueOf(mLongitude)); + HttpClient httpclient = HttpClient.getInstance(); + httpclient.setHttpCommand(command); + HttpRunnable runnable = new HttpRunnable(mPresetHandler, httpclient); + new Thread(runnable).start(); + + + }else if(v.equals(this.mLoginButton)){ + //登録 + //ユーザーIDが無い場合はメッセージ + pref = new SangokushiPreferences(Initialization.this); + if(pref.getUserID() == null){ + String message = "ユーザー名を登録して下さい。"; + Toast.makeText(Initialization.this, message, Toast.LENGTH_LONG).show(); + return; + } + //ログイン処置 + LoginCommand command = new LoginCommand(HttpCommand.POST, pref.getSessionID()); + command.setParam("userid", pref.getUserID()); + HttpClient httpclient = HttpClient.getInstance(); + httpclient.setHttpCommand(command); + HttpRunnable runnable = new HttpRunnable(mLoginHandler, httpclient); + new Thread(runnable).start(); + } + } + @Override + public void onLocationChanged(Location location) { + mLatitude = location.getLatitude(); + mLongitude = location.getLongitude(); + } + @Override + public void onProviderDisabled(String provider) { + mLatitude = 0d; + mLongitude = 0d; + } + @Override + public void onProviderEnabled(String provider) { + // TODO Auto-generated method stub + + } + @Override + public void onStatusChanged(String provider, int status, Bundle extras) { + // TODO Auto-generated method stub + + } + + + +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Lobby.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Lobby.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Lobby.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,492 @@ +package jp.or.cute.sangokushi; + +/** + * ロビー画面 + * @author akifumi3 + * @author takki + * @version 0.1.2 + * @since 2010/04/28 + * @change 2010/05/02 + * @change 2010/05/11 + * オープニング画面が呼び出される + * ロビーを選択すると戦闘画面に移行する + */ + +import jp.or.cute.sangokushi.httpclient.EnteringLobbyCommand; +import jp.or.cute.sangokushi.httpclient.BattleResultCommand; +import jp.or.cute.sangokushi.httpclient.HttpClient; +import jp.or.cute.sangokushi.httpclient.HttpCommand; +import jp.or.cute.sangokushi.httpclient.LeavingLobbyCommand; +import jp.or.cute.sangokushi.httpclient.LobbyInfoCommand; +import jp.or.cute.sangokushi.httpclient.UserStatusCommand; + +import android.app.Activity; +import android.location.LocationManager; +import android.os.Bundle; +import android.os.Message; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.ListView; +import android.widget.TextView; +import android.widget.Toast; +import android.widget.AdapterView.OnItemClickListener; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.util.Log; +import android.view.View; +import android.widget.*; + +public class Lobby extends Activity { + public static final int RESULT_OAUTH = 1001; + private Activity me; + private String user_id; + private String room_id; + private String room_name; + private String[] battleStatusList; + private SangokushiPreferences mPref; + + private TextView userName; + private TextView userWin; + private TextView userLose; + private ImageView map; + + public battle_Status[] makeBattleStatus(String result) { + int max_data = 5; // param.length-1; + battleStatusList = new String[max_data]; + battle_Status[] bs = new battle_Status[max_data]; + if(result == null){ + return bs; + } + String[] param = result.split(">>"); + + for(int j=1,i=0;j<6;j++,i++){ + String[] value = param[j].split(","); + bs[i] = new battle_Status(); + bs[i].setlocation(value[1]); + bs[i].setRoomid(Integer.parseInt(value[0])); + if (value[2] == "0") { + bs[i].setOngoing(false); + } else if (value[2] == "2"){ + bs[i].setOngoing(true); + } else { + bs[i].setOngoing(false); + } + String location = value[1] + "之戦"; + bs[i].setlocation(location); + + /* + * RoomID毎の戦況を取得し格納 + */ + String[] temp = getBattle(value[0],value[3],value[4]).split(","); + bs[i].setGeneralAndPeople(temp[0],Integer.parseInt(temp[1]),Integer.parseInt(temp[2]),temp[3],Integer.parseInt(temp[4]),Integer.parseInt(temp[5])); + + //対戦国 魏 VS 蜀 などの情報を格納 + bs[i].setAttackCountry(value[3]); + bs[i].setDefenceCountry(value[4]); + + //経過日数 + bs[i].setPastDay(value[7]); + + } + + return bs; + } + + public String getBattle(String roomid,String attack,String defence){ + /* + * 引数から攻撃国/守備国を判断します + * 引数;room_id ,攻撃国ID(1-3), 守備国ID(1-3) + */ + int attackPeoples = 0; //攻撃側参加人数(ユーザー数) + int attackSoldiers = 0; //攻撃側総兵力 + int defencePeoples = 0; //防御側参加人数(ユーザー数) + int defenceSoldiers = 0;//攻撃側総兵力 + + String attackGeneral = ""; + String defenceGeneral = ""; + + BattleResultCommand brc = new BattleResultCommand(HttpCommand.POST,mPref.getSessionID()); + brc.setParam("roomid",roomid); + HttpClient brc_httpClient = HttpClient.getInstance(); + brc_httpClient.setHttpCommand(brc); + String res = (String) brc_httpClient.execute(); + String[] result_temp = res.split(">>"); + + for(int i=1;i> + //B,AI 1 守備,1,3571,9>> + if(attack.equals(temp[2])){ + //攻撃国 + attackSoldiers += Integer.parseInt(temp[4]); + attackPeoples++; + + if(temp[0].equals("s")){ + attackGeneral = temp[1]; + } + }else if(defence.equals(temp[2])){ + //守備国 + defenceSoldiers += Integer.parseInt(temp[4]); + defencePeoples++; + if(temp[0].equals("s")){ + defenceGeneral = temp[1]; + } + } + } + // '"攻撃国 総大将", "攻撃国 参加人数","攻撃国 兵力","守備国 総大将","守備国 参加人数","守備国 兵力"'の形式で戻す + return attackGeneral + "," + String.valueOf(attackPeoples) + "," + String.valueOf(attackSoldiers) +","+ defenceGeneral +","+String.valueOf(defencePeoples)+"," + String.valueOf(defenceSoldiers); + + } + + @Override + protected void onResume() { + + userName = (TextView)findViewById(R.id.TextView01); + userWin = (TextView)findViewById(R.id.TextView04); + userLose = (TextView)findViewById(R.id.TextView06); + map = (ImageView) findViewById(R.id.map); + final ListView list1 = (ListView) findViewById(R.id.ListView01); + me = this; + + /* + * ロビー情報取得・作成 + */ + //通信コマンドにsessionIDを追加 by iST + mPref = new SangokushiPreferences(this); + LobbyInfoCommand command = new LobbyInfoCommand(HttpCommand.POST, mPref.getSessionID()); + HttpClient httpclient = HttpClient.getInstance(); + httpclient.setHttpCommand(command); + String result = (String) httpclient.execute(); + Log.d("Lobby","result="+result); + battle_Status[] bs = makeBattleStatus(result); + + for(int i =0;i 0){ + battleStatusList[i] += " "+ bs[i].getPastDay()+"日経過"; + }else{ + battleStatusList[i] += " 開戦前"; + } + } + + /* + * 戦リスト作成処理(ListView) + */ + ArrayAdapter adapter = new ArrayAdapter(this, R.layout.list, battleStatusList); + list1.setAdapter(adapter); + list1.setSelection(0); + list1.setOnItemClickListener(new MyClickAdapter(bs,bs.length)); + + /* + * UserStatus(画面下側)作成処理 + */ + //Preferenceからユーザ名を取得し設定 + userName.setText(mPref.getUserName()); + + //戦況(個人成績)をサーバー問い合わせ + UserStatusCommand mUserStatusCommand = new UserStatusCommand(HttpCommand.POST, mPref.getSessionID()); + mUserStatusCommand.setParam("userid",mPref.getUserID()); + HttpClient ust_httpClient = HttpClient.getInstance(); + ust_httpClient.setHttpCommand(mUserStatusCommand); + String ust_result = (String) ust_httpClient.execute(); + makeUserStatus(ust_result); + + //中央の所属国画像を取得・表示 + Resources r = getResources(); + Bitmap bmp_map; + bmp_map = BitmapFactory.decodeResource(r, R.drawable.gi_bg); + + switch(Integer.parseInt(mPref.getCountryID())){ + case 1: + break; + case 2: + bmp_map = BitmapFactory.decodeResource(r, R.drawable.go_bg); + break; + case 3: + bmp_map = BitmapFactory.decodeResource(r, R.drawable.syoku_bg); + break; + default: + break; + + } + map.setImageBitmap(bmp_map); + + + super.onResume(); + } + + /** Called when the activity is first created. */ + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.lobby); + + } + + private void makeUserStatus(String result){ + String[] ust = result.split(">>"); + String[] win_lose = ust[1].split(","); + + if(win_lose.length == 2){ + //ERRORじゃなかった場合 + userWin.setText(win_lose[0]+"回"); + userLose.setText(win_lose[1]+"回"); + }else{ + //lengthが2以外の場合はエラーコードと判断 + String error_text = "戦歴の取得に失敗しました\n(error:U01005 >>"+ust[1]+")"; + userWin.setText("取得NG"); + userLose.setText("取得NG"); + + Log.d("Lobby","U01005 result is "+ust[1]); + + //失敗メッセージをToast表示 + Toast.makeText(this, error_text, Toast.LENGTH_LONG).show(); + } + } + + + // イベントクラス + class MyClickAdapter implements OnItemClickListener { + //fix magic number. akifumi3 + //battle_Status[] bs_copy = new battle_Status[5];//TODO also magic number too. + battle_Status[] bs_copy; + + public MyClickAdapter(battle_Status _bs[],int num){ + //Magic number修正により引数変更と配列初期化をここへ移動 + bs_copy = new battle_Status[num]; + bs_copy = _bs; + } + + /* + * Battle遷移 @Takki + */ + private void startBattle(){ + try{ + Log.d("Debug","Intent call"); + //SharedPreferencesからuserIDを取得 by iST + user_id = mPref.getUserID(); + + leaveRoom(); + if(enterRoom()) { + Intent intent = new Intent(me, Battle.class); + String msg = user_id + "," + room_id +"," + room_name+","+mPref.getUserName(); + intent.putExtra("String", msg); + startActivityForResult(intent, RESULT_OAUTH); + } + }catch(Exception e){ + e.printStackTrace(); + } + } + + /* + * 退室処理 @masa + */ + private void leaveRoom(){ + LeavingLobbyCommand command = new LeavingLobbyCommand(HttpCommand.POST, room_id, user_id, mPref.getSessionID()); + + Log.d("Debug", "leave_room"); + Log.d("room_id", room_id); + Log.d("user_id", user_id); + Log.d("s_id", mPref.getSessionID()); + + HttpClient httpclient = HttpClient.getInstance(); + httpclient.setHttpCommand(command); + String result = (String)httpclient.execute(); + Log.d("leave_room_result", result); + } + + + /* + * 入室処理 @masa + */ + private boolean enterRoom(){ + EnteringLobbyCommand command = new EnteringLobbyCommand(HttpCommand.POST, room_id, user_id, mPref.getSessionID()); + + Log.d("Debug", "leave_room"); + Log.d("room_id", room_id); + Log.d("user_id", user_id); + Log.d("s_id", mPref.getSessionID()); + + HttpClient httpclient = HttpClient.getInstance(); + httpclient.setHttpCommand(command); + String result = (String) httpclient.execute(); + Log.d("enter_room_result", result); + String[] resArray = result.split(">>"); + + String[] dataArray1 = resArray[0].split(","); + +/* + String[] dataArray2 = resArray[1].split(","); + for(int i = 0; i < dataArray2.length; i++) { + Log.d("enter_room_res2", i + "=" + dataArray2[i]); + } +*/ + + if(dataArray1[1].equals("0")) { + return true; + } else { + Log.d("enter_room_res", dataArray1[1]); + Toast.makeText(me, "参戦に失敗しました。", Toast.LENGTH_LONG).show(); + return false; + } + } + + @Override + public void onItemClick(AdapterView adapter, + View view, int position, long id) { + AlertDialog.Builder bldr = new AlertDialog.Builder(me); + + bldr.setTitle("戦況");//TODO values/string/hoge に直す + + String dialog_message = bs_copy[position].getAll_jp(); + bldr.setMessage(dialog_message); + room_id = Integer.toString(bs_copy[position].getRoomid()); + room_name= bs_copy[position].getRoomName(); + + DialogInterface.OnClickListener listner = new DialogInterface.OnClickListener(){ + @Override + public void onClick(DialogInterface dialog, int which) { + Log.d("Button",Integer.toString(which)); + setResult(RESULT_OK); + } + }; + //TODO String.xmlを参照する予定 + bldr.setPositiveButton("参戦する",new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + Log.d("Button push","compete"); + startBattle(); + } + }); + bldr.setNegativeButton(getString(R.string.cancel), listner); + bldr.create(); + bldr.show(); + } + + + } + + public class battle_Status { + private int roomid; + private String location; //赤壁乃戦 など + private boolean ongoing; //true = 対峙中, false = 開戦前 + private int pastDay = 0; //経過日数 + //日数でターンを表すので時間は不要に・・・ + //private int fromHour; //経過時間 + + private String attackCountry; //攻撃国名 ("魏" or "呉" ..) + private String attackGeneral; //総大将 ("張遼" ..) + private int attackPeoples; //攻撃側参加人数(ユーザー数) + private int attackSoldiers; //攻撃側 総兵力 + + private String defenceCountry; //防御国名 ("蜀" or "魏" ..) + private String defenceGeneral; //総大将 ("張遼" ..) + private int defencePeoples; //防御側参加人数(ユーザー数) + private int defenceSoldiers; //防御側 総兵力 + + public void setAttackCountry(String countryID){ + switch(Integer.parseInt(countryID)){ + case 1: + attackCountry = "魏"; + break; + case 2: + attackCountry = "呉"; + break; + case 3: + attackCountry = "蜀"; + break; + default: + break; + } + + } + public void setDefenceCountry(String countryID){ + switch(Integer.parseInt(countryID)){ + case 1: + defenceCountry = "魏"; + break; + case 2: + defenceCountry = "呉"; + break; + case 3: + defenceCountry = "蜀"; + break; + default: + break; + } + } + + public void setPastDay(String pastday){ + pastDay = Integer.parseInt(pastday); + } + + public int getPastDay(){ + return pastDay; + } + + public String getlocation() { + return location; + } + + public int getRoomid() { + return this.roomid; + } + + + public String getRoomName() { + return this.location; + } + + public void setRoomid(int id) { + this.roomid = id; + } + + public void setlocation(String location) { + this.location = location; + } + + public void setOngoing(boolean going) + { + this.ongoing = going; + } + + public void setGeneralAndPeople(String attackGeneral,int attackPeoples, int attackSoldiers,String defenceGeneral,int defencePeoples,int defenceSoldiers){ + this.attackGeneral = attackGeneral; + this.attackPeoples = attackPeoples; + this.attackSoldiers = attackSoldiers; + this.defenceGeneral = defenceGeneral; + this.defencePeoples = defencePeoples; + this.defenceSoldiers = defenceSoldiers; + } + + public boolean isOngoing(){ + if(ongoing){ + return true; + }else{ + return false; + } + } + + public String getAll_jp(){ + String ret= ""; + if(pastDay == 0){ + ret = location+" 開戦前\n\n"+attackCountry+" 軍 総大将 "+attackGeneral +"\n 参加人数 "+attackPeoples+"人 兵力 "+attackSoldiers+"\n VS\n"+defenceCountry+" 軍 総大将 "+defenceGeneral +"\n 参加人数 "+defencePeoples+"人 兵力 "+defenceSoldiers+"\n"; + }else{ + ret = location+" "+pastDay+"日\n\n"+attackCountry+" 軍 総大将 "+attackGeneral +"\n 参加人数 "+attackPeoples+"人 兵力 "+attackSoldiers+"\n VS\n"+defenceCountry+" 軍 総大将 "+defenceGeneral +"\n 参加人数 "+defencePeoples+"人 兵力 "+defenceSoldiers+"\n"; + } + return ret; + } + } + +} \ No newline at end of file Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Opening.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Opening.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/Opening.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,459 @@ +package jp.or.cute.sangokushi; + +import java.io.InputStream; +import java.net.URI; + +import org.apache.http.HttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.DefaultHttpClient; +import org.json.JSONException; +import org.json.JSONObject; + +import jp.or.cute.sangokushi.httpclient.HttpClient; +import jp.or.cute.sangokushi.httpclient.AuthenticateCommand; +import jp.or.cute.sangokushi.httpclient.HttpCommand; + +import jp.or.cute.sangokushi.httpclient.HttpRunnable; + +import jp.or.cute.sangokushi.model.Player; + +import jp.or.cute.sangokushi.twitter.TwitterOAuth; +import jp.or.cute.sangokushi.twitter.TwitterOperator; +import android.app.Activity; +import android.app.ProgressDialog; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.media.MediaPlayer; +import android.os.AsyncTask; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.animation.Animation; +import android.view.animation.AnimationUtils; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.Toast; + +/** + * オープニング画面用アクティビティー + * @author non + * @author iST + * @version 0.1 + * @since 2010/03/26 + */ +public class Opening extends Activity { + public static final String PREFS_KEY_USERINFO = "PrefsUserInfo"; + public static final String PREFS_KEY_TWITTERINFO = "PrefsTwitterInfo"; + + public static final int RESULT_OAUTH = 1001; + public static final int RESULT_INIT = 1002; + public static final int RESULT_LOBBY = 1003; + + //通信用クライアント + HttpClient mHttpClient; + + //TwitterAPI制御 + private TwitterOperator mOperator; + //スタートボタン + private Button mStartButton; + private Button mTwitterButton; + private Button mLobbyButton; + + private ProgressDialog mProgress; + //バックグラウンド再生プレイヤー + private MediaPlayer mMediaPlayer; + //プレイヤー + Player mPlayer; + + /* + * 認証処理のハンドラ + * TwitterCredentialRunnableからsendされる + */ + private Handler mAuthenticateHandler = new Handler(){ + public void handleMessage(Message msg){ + JSONObject json = (JSONObject) msg.obj; + if(json != null){ + //サーバーへ認証情報(TwitterID)を送信し、ゲーム側の認証を行う + authenticateServer(json); + }else{ + //認証がとおらなければTwitter認証画面へ遷移 + //startOAuth(); + startHttpClient(); + } + } + }; + + + private void startHttpClient(){ + try{ + Intent intent = new Intent(this, TwitterOAuth.class); + //intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); + startActivityForResult(intent, RESULT_OAUTH); + }catch(Exception e){ + e.printStackTrace(); + } + } + + + /* + * ゲームサーバーへの登録・認証のハンドラ + */ + private Handler mGameAuthenticateHandler = new Handler(){ + public void handleMessage(Message msg){ + JSONObject json = (JSONObject) msg.obj; + + try { + if(json != null){ + JSONObject account = json.getJSONObject("account"); + //スタートボタン表示 + mStartButton.setText(getString(R.string.start_button)); + mStartButton.setEnabled(true); + + String image_path = account.getString("profile_image_url"); + downloadTwitterImage(image_path); + } + } catch (JSONException e1) { + e1.printStackTrace(); + } + + if(mProgress != null){ + mProgress.dismiss(); + } + + if(mMediaPlayer != null && mMediaPlayer.isPlaying()){ + mMediaPlayer.stop(); + } + } + }; + + //Twitter画像取得、表示 + private void downloadTwitterImage(String uri){ + DownloadImageTask task = new DownloadImageTask(); + task.execute(uri); + } + + /* + * TODO + * Lobby遷移 @akifumi3 + * 一時的にロビーへ遷移 + * Openingができたら削除します + */ + private void startLobby(){ + try{ + Intent intent = new Intent(this, Lobby.class); + //intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); + startActivityForResult(intent, RESULT_LOBBY); + }catch(Exception e){ + e.printStackTrace(); + } + } + + private void startInitialize(){ + try{ + Intent intent = new Intent(this, Initialization.class); + startActivityForResult(intent, RESULT_INIT); + }catch(Exception e){ + e.printStackTrace(); + } + } + + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.opening); + + //オープニングアニメーション + ImageView logo = (ImageView)findViewById(R.id.logo); + Animation anim = AnimationUtils.loadAnimation(this, R.anim.logo_scale); + logo.startAnimation(anim); + + //mp3追加 + mMediaPlayer = MediaPlayer.create(this, R.raw.bgm); + mMediaPlayer.setLooping(true); + + //通信クライアント + mHttpClient = HttpClient.getInstance(); + //スタートボタンは認証終了まで非表示 + mStartButton = (Button)findViewById(R.id.start_button); + //mStartButton.setEnabled(false); + + //2011.2.3 + //akifumi3 + //一旦Twitter認証を外します。 + /* + mTwitterButton = (Button)findViewById(R.id.twitter_button); + mLobbyButton = (Button)findViewById(R.id.lobby_button); + mLobbyButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + startLobby(); + } + }); + */ + + //保存している情報によって遷移を決定 + int startBtnTitle = R.string.title_start; + //ゲームプレイヤー情報 + mPlayer = new Player(this); + if(mPlayer.getUserID() == null){ + startBtnTitle = R.string.title_initialization; + } + mStartButton.setText(startBtnTitle); + mStartButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if(mPlayer.getUserID() == null){ + //初期設定画面へ + startInitialize(); + }else{ + //ロビー画面へ + startLobby(); + } + } + }); + if(mPlayer.getUserName() != null){ + Toast.makeText(this, "ようこそ" + mPlayer.getUserName() + "様", Toast.LENGTH_LONG).show(); + } + + + //2011.2.3 + //akifumi3 + /* + //Twitter認証チェック + //Opening画面表示中にTwitterの認証情報を確認させる + mOperator = new TwitterOperator(this); + if(mOperator.getTwitterToken() == null){ + mTwitterButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + mOperator.asyncGetCredential(mAuthenticateHandler); + } + }); + }else{ + mTwitterButton.setEnabled(false); + } + */ + } + + @Override + protected void onResume() { + super.onResume(); + if(mMediaPlayer != null){ + mMediaPlayer.start(); + } + } + + @Override + protected void onPause() { + super.onPause(); + if(mMediaPlayer != null){ + mMediaPlayer.stop(); + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + super.onCreateOptionsMenu(menu); + + menu.add(0,10,0, getText(R.string.menu_reset_userstate)); + + return true; + } + + @Override + public boolean onMenuItemSelected(int featureId, MenuItem item) { + super.onMenuItemSelected(featureId, item); + + switch(item.getItemId()){ + case 10: + String msg = (String) getText(R.string.menu_reset_userstate_comlplatemessage); + //SharedPreferencesに保存している情報を消去 + SangokushiPreferences pref = new SangokushiPreferences(this); + if(pref.getUserID() == null || pref.getUserID().length() == 0){ + msg = (String) getText(R.string.menu_reset_userstate_notregistered); + }else{ + //SessionID削除 + pref.removeValue(SangokushiPreferences.SESSION_ID); + //ユーザーID、ユーザー名 + pref.removeValue(SangokushiPreferences.USER_ID); + pref.removeValue(SangokushiPreferences.USER_NAME); + + //所属国ID、設定 + pref.removeValue(SangokushiPreferences.COUNTRY_ID); + } + Toast.makeText(this, msg, Toast.LENGTH_LONG).show(); + break; + } + + return true; + } + + /* + * Twitter認証 + */ + private void startOAuth(){ + try{ + Intent intent = new Intent(this, TwitterOAuth.class); + //intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); + startActivityForResult(intent, RESULT_OAUTH); + }catch(Exception e){ + e.printStackTrace(); + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if(requestCode == RESULT_OAUTH){ + //認証用Activity(TwitterOAuth)からの戻り + if(resultCode == RESULT_OK){ + mTwitterButton.setEnabled(false); + //認証OKなので、サーバーにTwitterIDを送信して必要な情報を取得する + //authenticateServer(); + }else{ +// //認証NGなので、認証ボタンを表示 +// mStartButton.setText(getString(R.string.authenticate_button)); +// mStartButton.setEnabled(true); + } + } + } + + /* + * Twitterの認証情報を使って、ゲームサーバーへ認証を行う + * 新規の場合はゲームサーバーにTwitterIDとユーザー情報を登録 + * 既に登録されている場合は、TwitterIDをKeyとして情報を取得 + */ + private void authenticateServer(JSONObject json){ + String screen_name = json.optString("screen_name", (String) getString(R.string.bad_value)); + String twitter_id = json.optString("id", (String) getString(R.string.bad_value)); + //フォローしている + int friends_count = 0; + try { + friends_count = json.getInt("friends_count"); + } catch (JSONException e) { + e.printStackTrace(); + } + //フォローされている + int followers_count = 0; + try { + followers_count = json.getInt("followers_count"); + } catch (JSONException e) { + e.printStackTrace(); + } + //Image + String image = ""; + try { + image = json.getString("profile_image_url"); + } catch (JSONException e) { + e.printStackTrace(); + } + //取得した情報を保存 + //認証情報取得 + SharedPreferences settings = getSharedPreferences(TwitterOperator.PREFS, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + if(twitter_id == null) { + editor.remove(TwitterOperator.USER_TWITTER_ID); + } + else { + editor.putString(TwitterOperator.USER_TWITTER_ID, twitter_id); + } + if(screen_name == null) { + editor.remove(TwitterOperator.USER_TWITTER_NAME); + } + else { + editor.putString(TwitterOperator.USER_TWITTER_NAME, screen_name); + } + + //サーバーにID,NAMEを送信して認証 + mProgress = ProgressDialog.show(this, + getText(R.string.auth_progress_title), + getText(R.string.auth_progress_text), + true, + false); + String user_token = ""; + String user_secret = ""; + if(settings.contains(TwitterOperator.USER_TOKEN) && settings.contains(TwitterOperator.USER_SECRET)) { + user_token = settings.getString(TwitterOperator.USER_TOKEN, null); + user_secret = settings.getString(TwitterOperator.USER_SECRET, null); + if(!(user_token == null || user_secret == null)) { + SangokushiPreferences pref = new SangokushiPreferences(this); + HttpCommand command = new AuthenticateCommand(HttpCommand.POST, pref.getSessionID()); + command.setParam("oauth_token", user_token); + command.setParam("oauth_verifier", user_secret); + command.setParam("twitter_id", twitter_id); + if(mHttpClient == null){ + mHttpClient = HttpClient.getInstance(); + } + mHttpClient.setHttpCommand(command); + + HttpRunnable runnable = new HttpRunnable(mGameAuthenticateHandler, mHttpClient); + new Thread(runnable).start(); + return; + } + } + // TODO 認証情報が無いのでサーバーへアクセスしない + // エラー表示し、再度認証を促すメッセージを表示 + + } + + private void setResultImage(Bitmap image){ + ImageView view = (ImageView) findViewById(R.id.twitter_image); + view.setImageBitmap(image); + view.setVisibility(ImageView.VISIBLE); + } + /* + * 分かりやすいようにTwitter画像を取得して表示 + * + */ + private class DownloadImageTask extends AsyncTask { + private DefaultHttpClient mClient; + private HttpGet mGetMethod; + + private Bitmap downloadImage(String uri) { + try { + mGetMethod.setURI(new URI(uri)); + HttpResponse resp = mClient.execute(mGetMethod); + if (resp.getStatusLine().getStatusCode() < 400) { + InputStream is = resp.getEntity().getContent(); + Bitmap bit = createBitmap(is); + is.close(); + return bit; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + private Bitmap createBitmap(InputStream is) { + return BitmapFactory.decodeStream(is); + } + + @Override + protected void onPreExecute() { + mClient = new DefaultHttpClient(); + mGetMethod = new HttpGet(); + } + //バックグラウンドで画像をダウンロードする + @Override + protected Bitmap doInBackground(String... params) { + String uri = params[0]; + return downloadImage(uri); + } + + //画像を描画する + @Override + protected void onPostExecute(Bitmap result) { + Opening.this.setResultImage(result); + } + } +} \ No newline at end of file Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/SangokushiPreferences.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/SangokushiPreferences.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/SangokushiPreferences.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,88 @@ +package jp.or.cute.sangokushi; + +import android.R.bool; +import android.content.Context; +import android.content.SharedPreferences; + +public class SangokushiPreferences { + public static final String PREFS = "OpenSangokushiPrefs"; + public static final String SESSION_ID = "SessionID"; + public static final String USER_NAME = "UserName"; + public static final String USER_ID = "UserID"; + public static final String COUNTRY_ID = "CountryID"; + + public static final int RESULT_OAUTH = 1001; + public static final int RESULT_INIT = 1002; + public static final int RESULT_LOBBY = 1003; + + private SharedPreferences mSettings; + private SharedPreferences.Editor mEditor; + private Context mContext; + + public SangokushiPreferences(Context context) { + mContext = context; + mSettings = mContext.getSharedPreferences(PREFS, Context.MODE_PRIVATE); + } + + /* + * SessionIDの受け渡し + */ + public String getSessionID(){ + return getStringPrefValue(SESSION_ID); + } + public void setSessionID(String id){ + setStringPrefValue(SESSION_ID, id); + } + + /* + * UserIDの受け渡し + */ + public String getUserID(){ + return getStringPrefValue(USER_ID); + } + public void setUserID(String id){ + setStringPrefValue(USER_ID, id); + } + + /* + * UserNameの受け渡し + */ + public String getUserName(){ + return getStringPrefValue(USER_NAME); + } + public void setUserName(String name){ + setStringPrefValue(USER_NAME, name); + } + + /* + * 所属国IDの受け渡し + */ + public String getCountryID(){ + return getStringPrefValue(COUNTRY_ID); + } + public void setCountryID(String id){ + setStringPrefValue(COUNTRY_ID, id); + } + + private String getStringPrefValue(String Key){ + String value = null; + if(mSettings.contains(Key)) { + value = mSettings.getString(Key, null); + } + return value; + } + private boolean setStringPrefValue(String key, String value){ + mEditor = mSettings.edit(); + mEditor.putString(key, value); + return mEditor.commit(); + } + + /* + * 保存データの削除 + */ + public boolean removeValue(String key){ + mEditor = mSettings.edit(); + mEditor.remove(key); + return mEditor.commit(); + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/dummy/DummyMapData.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/dummy/DummyMapData.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/dummy/DummyMapData.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,86 @@ +package jp.or.cute.sangokushi.dummy; + +import android.graphics.Color; + +public class DummyMapData { + public static int[][] createDummyMap(){ + int[][] _map_iryou = { + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,5,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,5,5,5,1,1,1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3}, + {1,1,1,1,1,1,1,5,5,5,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,5,5,5,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,8,1,1,4,4,4,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,5,5,5,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,8,8,1,4,4,4,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,5,5,1,1,5,1,1,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,1,8,1,4,4,4,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,8,1,4,4,4,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,8,8,1,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,1,1,1,1,1,1,1,1,1,1,1,8,8,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,1,1,1,1,1,8,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,8,8}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,1,1,8,1,4,4,3,3,3,3,3,3,3,3,3,8,8,8,8,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,8,1,4,4,3,3,3,3,3,3,3,3,8,8,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,8,8,1,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,8,3,3,3,3,3,3,3,8,8,8,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,1,1,1,8,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,3,8,8,3,3,3,3,3,8,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,3,3,3,8,8,3,3,8,8,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,3,3,3,3,8,8,8,8,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,5,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,5,3,3,3,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,5,5,3,8,8,3,8,8,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,5,3,8,3,3,3,8,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,5,8,8,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,8,3,3,3,3,3,8,8,8,8,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,8,8,5,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,8,3,5,5,3,3,3,3,3,3,3,8,8,8,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,8,8,8,3,3,5,5,3,3,3,3,3,3,3,3,8,8,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,8,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,8,8,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,8,8,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,8,8,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,8,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,8,8}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,8,8,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,8}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,8,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,8,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,8,8,8,8,1,1,8,8,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,8,8,8,8,1,8,8,8,8,1,1,1,1,1,1,1,1,1,1,1,1,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,8,8,8,1,1,1,1,1,1,1,8,8,8,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,8,8,1,1,8,8,8,8,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,8,8,8,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3}, + {1,1,1,1,1,1,1,1,1,6,6,6,6,6,1,1,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3}, + {1,1,1,1,1,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3}, + {1,1,1,6,6,6,1,1,1,6,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3}, + {1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5}, + {1,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3} + }; + return _map_iryou; + } + + public static int[] getMapColors(){ + int[] _colors = { + Color.argb(255, 0, 128, 0), + Color.argb(255, 0, 255, 0), + Color.argb(255, 60, 252, 0), + Color.argb(255, 255, 255, 204), + Color.argb(255, 66, 114, 206), + Color.argb(255, 79, 209, 227), + Color.argb(255, 64, 128, 128), + Color.argb(255, 85, 85, 85) + }; + + return _colors; + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/AuthenticateCommand.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/AuthenticateCommand.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/AuthenticateCommand.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,14 @@ +package jp.or.cute.sangokushi.httpclient; + +/* + * ゲームサーバーへの認証処理 + * @author iST + * @version 0.1 + * @since 2010/03/29 + */ +public class AuthenticateCommand extends HttpCommand { + public AuthenticateCommand(String method, String sessionID) { + super(method ,sessionID); + this.setPath(HttpClient.AUTH_PATH); + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/BattleCommand.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/BattleCommand.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/BattleCommand.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,165 @@ +package jp.or.cute.sangokushi.httpclient; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLEncoder; +import java.util.Iterator; + +import android.util.Log; + +/* + * ルーム退室 + * @author iST + * @version 0.1 + * @since 2010/05/04 +*/ +public class BattleCommand extends HttpCommand{ +/* + protected final static String BASE_PATH = "http://sangokushidev.cute.or.jp/index.php"; + protected final static int BATTLE_COMMAND_ID = 0; + + // 登録されているコマンド(未送信) + // 送信されると0になる + private int commandCount = 0; + private String[] command = new String[2]; +*/ + private String mUserid; + private String mRoomid; + + public void setUserAndRoom(String user,String room) + { + mUserid = user; + mRoomid = room; + } + public void MoveCell(int x,int y) + { + int cell = y * 45 + x + 1; + this.setParam(HttpClient.COMMAND_PLAYERID, mUserid); + this.setParam(HttpClient.COMMAND_LOBBYID, mRoomid); + this.setParam(HttpClient.PARAMS_MOVEMAPCHIPNO, Integer.toString(cell)); + } + + public void BattlePlayer(int x,int y) { + int cell = y * 45 + x + 1; + this.setParam(HttpClient.COMMAND_PLAYERID, mUserid); + this.setParam(HttpClient.COMMAND_LOBBYID, mRoomid); + this.setParam(HttpClient.PARAMS_BATTLEMAPCHIPNO, Integer.toString(cell)); + } +/* + public String httpGet(String location){ + HttpURLConnection http = null; + InputStream in = null; + URL url = null; + String response = null; + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + try { + // 指定した URL の作成 + String urlString = BASE_PATH + "?" + location; + Log.d("httpget","urlString="+urlString); + url = new URL(urlString); //location); + // HTTP通信の初期化 + http = (HttpURLConnection) url.openConnection(); + // HTTP通信のメソッド指定(今回は取得のみなので GET を指定) + http.setRequestMethod("GET"); + // UserAgentのセット + //http.setRequestProperty("User-Agent", "Android Application"); + // HTTP通信開始 + http.connect(); + Log.d("httpget","status="+Integer.toString(http.getResponseCode())); + // HTTP通信でデータを取得 + in = http.getInputStream(); + int len; + byte[] buf = new byte[4096]; + while ( (len = in.read(buf))> 0) { + baos.write(buf, 0, len); + } + Log.d("httpget","status="+Integer.toString(http.getResponseCode())); + // 取得したデータを Stringへ変換 + response = new String(baos.toByteArray()); + } catch (Exception e) { + e.printStackTrace(); + } finally{ + // HTTP 通信の後始末 + try{ + in.close(); + } catch (Exception e) {} + try { + http.disconnect(); + } catch (Exception e) {} + } + Log.d("BattleCommand","response="+response); + return response; + } + + + + public String httpPost(String cmd) { + String result = ""; + HttpURLConnection conn = null; + String postdata = ""; + + // post送信データを1本の文字列にまとめる + try { + URL url = new URL(BASE_PATH); + Log.d("BattleCommand", "cmd=\"" + cmd +"\""); + + conn = (HttpURLConnection)url.openConnection(); + conn.setReadTimeout(10*1000 m秒 ); + conn.setConnectTimeout(15*1000 m秒 ); + conn.setRequestMethod("POST"); + conn.setDoInput(true); + conn.setDoOutput(true); + if (cmd.length() > 0) { + OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream(),"UTF-8"); + writer.write(cmd); + writer.flush(); + writer.close(); + } + conn.connect(); + InputStreamReader reader = new InputStreamReader(conn.getInputStream(),"UTF-8"); + while (true) { + char[] buffer = new char[4096]; // #chars <= #bytes + int nchars = reader.read(buffer); + if (nchars < 0) + break; + result += String.valueOf(buffer, 0, nchars); + } + reader.close(); + Log.d("BattleCommand","result="+result); + } catch (IOException e) { + result = null; + Log.d("BattleCommand","Error message="+e.getMessage()); + } finally { + if (conn != null) conn.disconnect(); + } + return result; + } + +*/ public BattleCommand(String sessionID) { + super(POST,sessionID); + this.setPath(HttpClient.BASE_PATH); + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_SET_BATTLE); + } + + + public BattleCommand(String userid,String roomid,String sessionID) { + super(POST,sessionID); + mUserid = userid; + mRoomid = roomid; + this.setPath(HttpClient.BASE_PATH); + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_SET_BATTLE); + } + + public BattleCommand(String method,String sessionID) { + super(POST,sessionID); + this.setPath(HttpClient.BASE_PATH); + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_SET_BATTLE); + } +} + + Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/BattleResultCommand.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/BattleResultCommand.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/BattleResultCommand.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,28 @@ +package jp.or.cute.sangokushi.httpclient; + +/* + * 戦闘結果要求 + * @author iST + * @version 0.1 + * @since 2010/05/10 +*/ +public class BattleResultCommand extends HttpCommand{ + + public BattleResultCommand(String method, String sessionID,String room) { + super(method ,sessionID); + this.setPath(HttpClient.BASE_PATH); + + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_GET_BATTLE); + this.setParam(HttpClient.COMMAND_LOBBYID,room); + } + + public BattleResultCommand(String method, String sessionID) { + super(method ,sessionID); + this.setPath(HttpClient.BASE_PATH); + + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_GET_BATTLE); + } +} + + + Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/CountryStateCommand.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/CountryStateCommand.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/CountryStateCommand.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,21 @@ +package jp.or.cute.sangokushi.httpclient; + +/* + * 所属国取得 + * @author non + * @author iST + * @version 0.1 + * @since 2010/03/26 +*/ +public class CountryStateCommand extends HttpCommand{ + + public CountryStateCommand(String method, String sessionID) { + super(method ,sessionID); + this.setPath(HttpClient.BASE_PATH); + + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_GET_COUNTRY_STATE); + } +} + + + Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/EnteringLobbyCommand.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/EnteringLobbyCommand.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/EnteringLobbyCommand.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,27 @@ +package jp.or.cute.sangokushi.httpclient; +/* + * ルーム入室 + * @author iST + * @version 0.1 + * @since 2010/05/04 +*/ +public class EnteringLobbyCommand extends HttpCommand{ + + public EnteringLobbyCommand(String method, String sessionID) { + super(method ,sessionID); + this.setPath(HttpClient.BASE_PATH); + + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_EXEC_LOBBY_IN); + } + public EnteringLobbyCommand(String method, String id, String player_id, String sessionID) { + super(method ,sessionID); + this.setPath(HttpClient.BASE_PATH); + + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_EXEC_LOBBY_IN); + this.setParam(HttpClient.PARAMS_LOBBY_ID,id); + this.setParam(HttpClient.PARAMS_PLAYER_ID,player_id); + } +} + + + Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/HttpClient.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/HttpClient.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/HttpClient.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,143 @@ +package jp.or.cute.sangokushi.httpclient; + +import java.io.IOException; +import java.util.ArrayList; + +import org.apache.http.Header; +import org.apache.http.HttpResponse; +import org.apache.http.HttpStatus; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.HttpResponseException; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicHeader; +import org.apache.http.params.CoreProtocolPNames; +import org.apache.http.util.EntityUtils; + +public class HttpClient { + private static HttpClient instance = new HttpClient(); + + //protected final static String BASE_URL = "http://210.196.147.49/"; + protected final static String BASE_URL = "http://210.196.147.48/"; + protected final static String BASE_PATH = "index.php"; + protected final static String AUTH_PATH = "authenticate/auth"; + + //==== コマンド ===== + public final static String PARAMS_COMMAND = "data"; + public final static String PARAMS_SESSION_ID = "sid"; + //ユーザー認証(新規)コマンド + public final static String COMMAND_USERAUTH_NEW = "U01001"; + //ユーザー認証(確認)コマンド + public final static String COMMAND_USERAUTH_CHECK = "U01002"; + //所属国設定コマンド + public final static String COMMAND_SET_COUNTRY_STATE = "C01001"; + //所属国情報取得コマンド + public final static String COMMAND_GET_COUNTRY_STATE = "C01002"; + //ユーザー初期パラメータ取得コマンド + public final static String COMMAND_GET_USER_PARAMS = "U01003"; + //ユーザー初期位置設定コマンド + public final static String COMMAND_SET_USER_POSITION = "U01004"; + //ユーザーステータス取得コマンド + public final static String COMMAND_GET_USER_STATUS = "U01005"; + //AI武将パラメータ取得コマンド + public final static String COMMAND_GET_AI_PARAMS = "A01001"; + //ルーム情報取得コマンド + public final static String COMMAND_GET_LOBBY_INFO = "R01001"; + //ルームステータス取得コマンド + public final static String COMMAND_GET_LOBBY_STATUS = "R01002"; + // ルームのターン情報取得コマンド + public final static String COMMAND_GET_LOBBY_TURN = "R01005"; + //ルーム入室コマンド + public final static String PARAMS_LOBBY_ID = "roomid"; + public final static String PARAMS_PLAYER_ID = "userid"; + public final static String COMMAND_EXEC_LOBBY_IN = "R01003"; + //ルーム退室コマンド + public final static String COMMAND_EXEC_LOBBY_OUT = "R01004"; + //マップ情報取得コマンド + public final static String COMMAND_GET_MAP_INFO = "M01001"; + //戦闘情報送信コマンド + public final static String COMMAND_SET_BATTLE = "B01001"; + public final static String COMMAND_LOBBYID ="roomid"; + public final static String COMMAND_PLAYERID ="userid"; + public final static String PARAMS_MOVEMAPCHIPNO="movemapchipno"; + public final static String PARAMS_BATTLEMAPCHIPNO="battlemapchipno"; + //戦闘結果取得コマンド + public final static String COMMAND_GET_BATTLE = "B01002"; + + private HttpCommand mHttpCommand; + public void setHttpCommand(HttpCommand command){ + mHttpCommand = command; + } + public HttpCommand getHttpCommand(){ + return mHttpCommand; + } + + private DefaultHttpClient mHttpclient; + public DefaultHttpClient getHttpclient() { + return mHttpclient; + } + + public void setHttpclient(DefaultHttpClient httpclient) { + mHttpclient = httpclient; + } + + private HttpResponse mResponse; + public HttpResponse getResponse() { + return mResponse; + } + + public void setResponse(HttpResponse response) { + mResponse = response; + } + + private String mSessionID; + + private HttpClient() { + this.init(); + } + + public static HttpClient getInstance(){ + return instance; + } + + private void init(){ + mHttpclient = new DefaultHttpClient(); + mHttpclient.getParams().setParameter("http.useragent", "android-sangokushi"); + ArrayList
params = new ArrayList
(); + params.add(new BasicHeader("Accept-Encoding", "gzip, deflate")); + mHttpclient.getParams().setParameter("http.default-headers", params); + //417エラー対策・・・ハマリ + mHttpclient.getParams().setParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false); + + } + + public Object execute(){ + String responseString = null; + + if(mHttpCommand != null){ + HttpPost method = mHttpCommand.execute(mSessionID); + + try { + this.setResponse(this.getHttpclient().execute(method)); + int statuscode = this.getResponse().getStatusLine().getStatusCode(); + + //リクエストが成功 200 OK and 201 CREATED + if (statuscode == HttpStatus.SC_OK | statuscode == HttpStatus.SC_CREATED){ + responseString = EntityUtils.toString(this.getResponse().getEntity(),"UTF-8"); + } else { + throw new HttpResponseException(statuscode, "Response code is " + Integer.toString(statuscode)); + } + }catch (RuntimeException e) { + method.abort(); + //throw new RuntimeException(e); + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + + } + return responseString; + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/HttpCommand.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/HttpCommand.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/HttpCommand.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,87 @@ +package jp.or.cute.sangokushi.httpclient; + +import java.util.ArrayList; +import java.util.List; + +import jp.or.cute.sangokushi.SangokushiPreferences; + +import org.apache.http.NameValuePair; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.protocol.HTTP; + +import android.util.Log; + +/* + * HTTP通信処理 基底クラス + * @author iST + * @version 0.1 + * @since 2010/05/04 +*/ +public class HttpCommand { + + private String mPath; + protected void setPath(String path){ + mPath = path; + } + + private List mNameValuePair; + public List getNameValuePair() { + return mNameValuePair; + } + + public void setNameValuePair(List nameValuePair) { + mNameValuePair = nameValuePair; + } + + public static final String POST = "post"; + public static final String GET = "get"; + private String mMethod; + private String mQuery; + + private String mSessionID; + + public void setParam(String key, String value){ + if(mMethod == POST){ + if(mNameValuePair == null){ + mNameValuePair = new ArrayList(); + } + mNameValuePair.add(new BasicNameValuePair(key, value)); + }else{ + if(mQuery != ""){ + mQuery += "&"; + } + mQuery += key + "=" + value; + } + } + + /* + * コンストラクタ + */ + public HttpCommand(String method, String sessionID) { + mMethod = method; + + if(sessionID != null){ + mSessionID = sessionID; + setParam("sessionid", sessionID); + } + } + + public HttpPost execute(String sessionID){ + this.setParam(HttpClient.PARAMS_SESSION_ID,sessionID); + + HttpPost method = null; + try { + method = new HttpPost(HttpClient.BASE_URL + mPath); + method.addHeader("Content-Type", "application/x-www-form-urlencoded"); + Log.d("execute","value="+this.getNameValuePair().toString()); + method.setEntity(new UrlEncodedFormEntity(this.getNameValuePair(), HTTP.UTF_8)); + return method; + } catch (Exception e) { + e.printStackTrace(); + } + return method; + } + +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/HttpRunnable.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/HttpRunnable.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/HttpRunnable.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,30 @@ +package jp.or.cute.sangokushi.httpclient; + +import android.os.Handler; +import android.os.Message; + +/** + * HTTP接続 + * @author iST + * @version 0.1 + * @since 2010/03/29 + */ +public class HttpRunnable implements Runnable { + private Handler mHandler; + private HttpClient mClient; + + public HttpRunnable(Handler handler, HttpClient client) { + mHandler = handler; + mClient = client; + } + + @Override + public void run() { + Object object = mClient.execute(); + + Message msg = new Message(); + msg.obj = object; + mHandler.sendMessage(msg); + } + +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/InitializeCommand.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/InitializeCommand.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/InitializeCommand.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,16 @@ +package jp.or.cute.sangokushi.httpclient; + +/* + * 初期登録処理 + * @author non + * @version 0.1 + * @since 2010/05/09 + */ +public class InitializeCommand extends HttpCommand { + public InitializeCommand(String method, String sessionID) { + super(method ,sessionID); + this.setPath(HttpClient.BASE_PATH); + + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_USERAUTH_NEW); + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LeavingLobbyCommand.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LeavingLobbyCommand.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LeavingLobbyCommand.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,21 @@ +package jp.or.cute.sangokushi.httpclient; +/* + * ルーム退室 + * @author iST + * @version 0.1 + * @since 2010/05/04 +*/ +public class LeavingLobbyCommand extends HttpCommand{ + + public LeavingLobbyCommand(String method, String id, String player_id, String sessionID) { + super(method ,sessionID); + this.setPath(HttpClient.BASE_PATH); + + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_EXEC_LOBBY_OUT); + this.setParam(HttpClient.PARAMS_LOBBY_ID,id); + this.setParam(HttpClient.PARAMS_PLAYER_ID,player_id); + } +} + + + Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LobbyInfoCommand.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LobbyInfoCommand.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LobbyInfoCommand.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,20 @@ +package jp.or.cute.sangokushi.httpclient; + +/* + * ルーム情報 + * @author iST + * @version 0.1 + * @since 2010/05/04 +*/ +public class LobbyInfoCommand extends HttpCommand{ + + public LobbyInfoCommand(String method, String sessionID) { + super(method ,sessionID); + this.setPath(HttpClient.BASE_PATH); + + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_GET_LOBBY_INFO); + } +} + + + Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LobbyStatusCommand.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LobbyStatusCommand.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LobbyStatusCommand.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,20 @@ +package jp.or.cute.sangokushi.httpclient; + +/* + * ルームステータス + * @author iST + * @version 0.1 + * @since 2010/05/04 +*/ +public class LobbyStatusCommand extends HttpCommand{ + + public LobbyStatusCommand(String method, String sessionID) { + super(method ,sessionID); + this.setPath(HttpClient.BASE_PATH); + + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_GET_LOBBY_STATUS); + } +} + + + Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LoginCommand.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LoginCommand.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/LoginCommand.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,16 @@ +package jp.or.cute.sangokushi.httpclient; + +/* + * 既存ユーザーログイン処理 + * @author iST + * @version 0.1 + * @since 2010/05/09 + */ +public class LoginCommand extends HttpCommand { + public LoginCommand(String method, String sessionID) { + super(method, sessionID); + this.setPath(HttpClient.BASE_PATH); + + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_USERAUTH_CHECK); + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/ResponceHandler.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/ResponceHandler.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/ResponceHandler.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,84 @@ +package jp.or.cute.sangokushi.httpclient; +import android.os.Handler; +import android.os.Message; + +public class ResponceHandler extends Handler{ + //==== サーバーエラーコード ===== + public final static String ERROR_CODE_DEFAULT = "01000"; + //ユーザー名の重複 + public final static String ERROR_CODE_INIT_DUPLICATION_USERNAME = "02000"; + //ユーザー登録時エラー + public final static String ERROR_CODE_INIT_NOT_ENTRY = "03000"; + //ユーザー登録時エラー + public final static String ERROR_CODE_INIT_NOT_ENTRY_OTHER = "04000"; + + //==== レスポンスセパレータ ===== + public final static String RESPONCE_SEPARATOR = ">>"; + public final static String RESPONCE_PARTS_SEPARATOR = ","; + + private String mErrorCode; + public String getErrorCode() { + return mErrorCode; + } + public void setErrorCode(String errorCode) { + mErrorCode = errorCode; + } + + private boolean mErrorFlag = true; + private String mRequestCode; + + private String mResponce; + public String getResponce() { + return mResponce; + } + public void setResponce(String responce) { + mResponce = responce; + } + + private String[] mResponceArray; + + public String[] getResponceArray() { + return mResponceArray; + } + public void setResponceArray(String[] responceArray) { + mResponceArray = responceArray; + } + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + mResponce = (String) msg.obj; + if(mResponce != null && mResponce instanceof String){ + mResponceArray = mResponce.split(RESPONCE_SEPARATOR); + } + handleHeader(); + } + private void handleHeader(){ + if(mResponceArray != null && mResponceArray.length > 0){ + String[] headers = mResponceArray[0].split(","); + if(headers != null && headers.length > 1){ + mRequestCode = headers[0]; + if(headers[1].equals("1")){ + mErrorFlag = true; + /** + *サーバーレスポンスの形式が変更による修正 + *akifumi3 2010.05.12 + */ + //mErrorCode = headers[2]; + mErrorCode = mResponceArray[1]; + }else{ + mErrorFlag = false; + } + } + } + } + public boolean isError(){ + return mErrorFlag; + } + /* + * レスポンスの">>"で区切られた内容に対して、”,”で分割して返却 + * といっても単にsplitするだけ + */ + public static String[] splitResponceParts(String part){ + return part.split(RESPONCE_PARTS_SEPARATOR); + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/RoomInfoCommand.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/RoomInfoCommand.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/RoomInfoCommand.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,20 @@ +package jp.or.cute.sangokushi.httpclient; + +/* + * ルーム情報 + * @author Takki + * @version 0.1 + * @since 2010/05/12 +*/ +public class RoomInfoCommand extends HttpCommand{ + + public RoomInfoCommand(String method, String sessionID,String roomid) { + super(method ,sessionID); + this.setPath(HttpClient.BASE_PATH); + + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_GET_LOBBY_TURN); + this.setParam(HttpClient.COMMAND_LOBBYID,roomid); + } +} + + Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/UserStatusCommand.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/UserStatusCommand.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/httpclient/UserStatusCommand.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,18 @@ +package jp.or.cute.sangokushi.httpclient; + +/* + * 所属国取得 + * @author akifumi3 + * @version 0.1 + * @since 2010/05/10 +*/ +public class UserStatusCommand extends HttpCommand{ + + public UserStatusCommand(String method, String sessionID) { + super(method ,sessionID); + this.setPath(HttpClient.BASE_PATH); + + this.setParam(HttpClient.PARAMS_COMMAND,HttpClient.COMMAND_GET_USER_STATUS); + } +} + Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/model/Player.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/model/Player.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/model/Player.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,390 @@ +package jp.or.cute.sangokushi.model; + +import jp.or.cute.sangokushi.R; +import jp.or.cute.sangokushi.SangokushiPreferences; +import jp.or.cute.sangokushi.view.MapView; +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Matrix; +import android.graphics.Paint; +import android.graphics.Rect; +import android.graphics.Paint.Style; +import android.util.Log; + +/** + * プレイヤー + * @author iST + * @author Takki + * @version 0.1.1 + * @since 2010/04/06 + * @change 2010/05/05 + */ +public class Player { + //設定情報key + public static final String PREFS = "OpenSangokushiPrefsPlayerFile"; + public static final String USER_NAME = "user_name"; + public static final String USER_ID = "user_id"; + + private static final int GO = 1; + private static final int GI = 0; + private static final int SYUKU = 2; + + public static final String GENERAL = "s"; + public static final String COMMANDER = "b"; + public static final String USER = "u"; + + private Context mContext; + //設定情報 + private SharedPreferences mSettings; + private SangokushiPreferences mPreferences; + + private String mCommanderClass = this.USER; + private String mName; + private int mPower = 0; + private int mMobilty = 0; + private int mCurrentMapX = 0; + private int mCurrentMapY = 0; + + private static final int cell_x = 45; + private static final int cell_y = 45; + // プレーヤー本人 + private boolean mMySelf = false; + + // + private int mCountry = -1; + + public void setMySelf() { + mMySelf = true; + } + + public boolean getMySelf() { + return mMySelf; + } + + public void setCountry(int country) { + mCountry = country; + } + + public void setInfo(int power,int mobilty,String cmdClass,int country,int cell) + { +// Log.d("Player","setInfo(power="+Integer.toString(power)+",cmdClass="+cmdClass+",country="+Integer.toString(country)+",cell="+Integer.toString(cell)+")"); + cell--; + int x = cell % cell_x; + int y = cell / cell_y; + this.mMapX = x; + this.mMapY = y; + this.mCountry = country; + this.mPower = power; + this.mMobilty = mobilty; + this.mCommanderClass = cmdClass; + } + + public String getCountry() { + switch(mCountry) { + case GO: + return "GO"; + case GI: + return "GI"; + case SYUKU: + return "SYUKU"; + } + return ""; + } + + public int getCountryID() { + return mCountry; + } + + public static String getCountryName(int country) { + switch(country) { + case GO: + return "呉"; + case GI: + return "魏"; + case SYUKU: + return "蜀"; + } + return ""; + } + + public String getCountryName() { + switch(mCountry) { + case GO: + return "呉"; + case GI: + return "魏"; + case SYUKU: + return "蜀"; + } + return ""; + } + + public String getName() { + return mName; + } + + public void setName(String name) { + mName = name; + } + + //ユーザーID + public String getUserID() { + if(mPreferences == null){ + mPreferences = new SangokushiPreferences(mContext); + } + return mPreferences.getUserID(); + } + + // 兵力 + public int getPower() { + return mPower; + } + + public String getCommanderID() + { + return this.mCommanderClass; + } + + public String getCommanderClass() { + Log.d("getCommanderClass","class=\""+mCommanderClass+"\""); + if (this.mCommanderClass.equals(GENERAL)) { + //return this.mContext.getString(R.string.general); + return "総大将"; + } + else if (this.mCommanderClass.equals(COMMANDER)) + { + //return this.mContext.getString(R.string.commander); + return "武将"; + } else { + //return this.mContext.getString(R.string.game_user); + return "隊長"; + } + } + + public void setUserID(String id) { + SharedPreferences.Editor editor = mSettings.edit(); + if(id == null) { + editor.remove(USER_ID); + } + else { + editor.putString(USER_ID, id); + } + } + //ユーザー名 + public String getUserName() { + if(mPreferences == null){ + mPreferences = new SangokushiPreferences(mContext); + } + return mPreferences.getUserName(); + +// if(mSettings != null && mSettings.contains(USER_NAME)){ +// return mSettings.getString(USER_NAME, null); +// } +// return null; + } + public void setUserName(String name) { + SharedPreferences.Editor editor = mSettings.edit(); + if(name == null) { + editor.remove(USER_NAME); + } + else { + editor.putString(USER_NAME, name); + } + } + + //移動可能範囲 + private int mMoveArea = 5; + + //マップ上の位置 + public int mMapX = 4; + public int mMapY = 7; + + private Bitmap mMapchipUp; + private Bitmap mMapchipDown; + private Bitmap mMapchipUpKing; + private Bitmap mMapchipDownKing; + + public Player(Context context){ + mContext = context; + mName = ""; + this.initialize(); + } + + public Player(Context context, String name){ + mContext = context; + mName = name; + this.initialize(); + } + + public void setPoint(int x,int y){ + mMapX = x; + mMapY = y; + } + /* + * 初期化処理 + */ + private void initialize(){ + Resources r=mContext.getResources(); + mMapchipUp = BitmapFactory.decodeResource(r,R.drawable.player); + mMapchipDown = BitmapFactory.decodeResource(r,R.drawable.player_back); + mMapchipUpKing = BitmapFactory.decodeResource(r,R.drawable.king); + mMapchipDownKing = BitmapFactory.decodeResource(r,R.drawable.king_back); + //認証情報取得 + mSettings = mContext.getSharedPreferences(Player.PREFS, Context.MODE_PRIVATE); + } + + /* + * プレイヤー描画 + */ + public void draw(Canvas canvas, float scale, int mapLeft, int mapTop){ + int x = -1; + int y = -1; + + Bitmap mMapchip; + if (this.mCommanderClass.equals(GENERAL)) { + mMapchip = mMapchipDownKing; + } else { + mMapchip = mMapchipUp; + } + + mCurrentMapX = mapLeft; + mCurrentMapY = mapTop; + if(mapLeft <= mMapX && (mapLeft+15) >= mMapX){ + x = MapView.CHIP_W * (mMapX - mapLeft); + } + if(mapTop <= mMapY && (mapTop+15) >= mMapY){ + y = MapView.CHIP_H * (mMapY - mapTop); + } + + if(x >= 0 && y >= 0){ + Matrix matrix = new Matrix(); + float scaleX = (float)MapView.CHIP_W / (float)mMapchip.getWidth(); + float scaleY = (float)MapView.CHIP_H / (float)mMapchip.getHeight(); + matrix.setScale(scaleX, scaleY); + Bitmap tmp = Bitmap.createBitmap(mMapchip, 0, 0, mMapchip.getWidth(), mMapchip.getHeight(), matrix, true); + canvas.drawBitmap(tmp, x, y, null); + } + } + /* + * 全体地図にプレイヤー描画 + */ + public void drawOnWholeMap(Canvas canvas, int w, int h){ + Paint paint = new Paint(); + if (mMySelf) { + paint.setColor(Color.RED); + } + else { + switch(mCountry) { + case GI: + if (mCommanderClass.equals(this.COMMANDER)) {// == "b") { + paint.setColor(Color.CYAN); + } + else if (this.mCommanderClass.equals(this.GENERAL)) {//s") { + paint.setColor(Color.CYAN); + } + else { + paint.setColor(Color.CYAN); + } + break; + case GO: + if (mCommanderClass.equals(this.COMMANDER)) {// == "b") { + paint.setColor(Color.YELLOW); + } + else if (this.mCommanderClass.equals(this.GENERAL)) {//=="s") { + paint.setColor(Color.YELLOW); + } + else { + paint.setColor(Color.YELLOW); + } + break; + case SYUKU: + if (mCommanderClass.equals(this.COMMANDER)) {// == "b") { + paint.setColor(Color.WHITE); + } + else if (this.mCommanderClass.equals(this.GENERAL)) {// =="s") { + paint.setColor(Color.WHITE); + } + else { + paint.setColor(Color.WHITE); + } + break; + } + } + + paint.setStyle(Style.FILL); + int x = mMapX * w; + int y = mMapY * h; + canvas.drawRect(x, y, x + w, y + h, paint); + } + + public int calcDrawArea(int p,int mCurrentMap) + { + if (mCurrentMap <= p && p <= (mCurrentMap+15)) + { + return p - mCurrentMap; + } + return -1; + } + + /* + * 移動可能範囲の描画 + */ + public void drawMovingArea(Canvas canvas){ + int leftX = calcDrawArea(mMapX-mMoveArea,mCurrentMapX); + int topY = calcDrawArea(mMapY-mMoveArea,mCurrentMapY); + int rightX = calcDrawArea(mMapX+1+mMoveArea+1,mCurrentMapX); + int bottomY = calcDrawArea(mMapY+1+mMoveArea+1,mCurrentMapY); + + if (leftX < 0 && rightX > 0) { + leftX = 0; + } + if (leftX > 0 && rightX < 0) { + rightX = 15; + } + if (topY < 0 && bottomY > 0) { + topY = 0; + } + if (topY > 0 && bottomY < 0) { + bottomY = 15; + } + + if (leftX >= 0 && topY >= 0 && rightX >= 0 && bottomY >= 0) { + int left = leftX * MapView.CHIP_W; + int top = topY * MapView.CHIP_H; + int right = rightX * MapView.CHIP_W; + int bottom = bottomY * MapView.CHIP_H; + + Paint paint = new Paint(); + paint.setColor(Color.RED); + paint.setAlpha(40); + paint.setStyle(Style.FILL); + canvas.drawRect(left, top, right, bottom, paint); + } + } + + /* + * クリックされた処に自分のPlayerがいるかチェックする + */ + public boolean hitTest(float pointX, float pointY){ + int left = (mMapX - mCurrentMapX) * MapView.CHIP_W; + int top = (mMapY - mCurrentMapY) * MapView.CHIP_H; + int right = left + MapView.CHIP_W; + int bottom = top + MapView.CHIP_H; +/* + Log.d("hitTest","mMapX="+Integer.toString(mMapX)+"|mMapY="+Integer.toString(mMapY)); + Log.d("hitTest","pointX="+Float.toString(pointX)+"|left="+Integer.toString(left)+"|right="+Integer.toString(right)); + Log.d("hitTest","pointY="+Float.toString(pointY)+"|top="+Integer.toString(top)+"|bottom="+Integer.toString(bottom)); +*/ + if(left <= pointX && pointX <= right){ + if(top <= pointY && pointY <= bottom){ + return true; + } + } + return false; + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TweetArrayAdapter.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TweetArrayAdapter.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TweetArrayAdapter.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,91 @@ +package jp.or.cute.sangokushi.twitter; + +import java.util.List; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.TextView; + + +public class TweetArrayAdapter extends ArrayAdapter { + LayoutInflater mInflater; + List mItems; + int mViewResourceId; + + public TweetArrayAdapter(Context context, int resource, + int textViewResourceId, TweetItem[] objects) { + super(context, resource, textViewResourceId, objects); + mInflater = LayoutInflater.from(context); + mViewResourceId = resource; + } + public TweetArrayAdapter(Context context, int resource, + int textViewResourceId) { + super(context, resource, textViewResourceId); + mInflater = LayoutInflater.from(context); + mViewResourceId = resource; + } + public TweetArrayAdapter(Context context, int textViewResourceId, + List objects) { + super(context, textViewResourceId, objects); + mInflater = LayoutInflater.from(context); + mItems = objects; + mViewResourceId = textViewResourceId; + } + public TweetArrayAdapter(Context context, int textViewResourceId, + TweetItem[] objects) { + super(context, textViewResourceId, objects); + mInflater = LayoutInflater.from(context); + for (int i=1,j=0;i objects) { + super(context, resource, textViewResourceId, objects); + mInflater = LayoutInflater.from(context); + mItems = objects; + mViewResourceId = resource; + } + @Override + public View getView(int pos, View view, ViewGroup parent) { + String t; + ViewHolder holder; + if(view == null) { + view = mInflater.inflate(mViewResourceId, null); + view.setPadding( + view.getPaddingLeft(), + view.getPaddingTop()+5, + view.getPaddingRight(), + view.getPaddingBottom()+2); + holder = new ViewHolder(); + //holder.text1 = (TextView) view.findViewWithTag("tweet_name"); + holder.text2 = (TextView) view.findViewWithTag("tweet_tweet"); + view.setTag(holder); + } else { + holder = (ViewHolder) view.getTag(); + } + TweetItem item = this.getItem(pos); + //holder.text1.setText(item.getGameUserName() + ">>"); + holder.text2.setText(item.getTweet()); + return view; + } + + public String getTweet(int pos){ + TweetItem item = this.getItem(pos); + return item.getText(); + } + private class ViewHolder { + TextView text1; + TextView text2; + + } + +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TweetItem.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TweetItem.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TweetItem.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,107 @@ +package jp.or.cute.sangokushi.twitter; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import jp.or.cute.sangokushi.Battle; +import jp.or.cute.sangokushi.R; + +import org.json.JSONException; +import org.json.JSONObject; + +import android.app.Activity; +import android.content.Context; +import android.text.format.Time; + +public class TweetItem { + private Context mContext; + private TwitterJSON mJson; + + private JSONObject mStatus; + private JSONObject mUser; + private String mPlayerName; + + private String mTweet; + private String mHashTag; + + public TweetItem(Context context, TwitterJSON json, JSONObject status) throws JSONException{ + mContext = context; + mJson = json; + mStatus = status; + if(status.has("user")){ + mUser = status.getJSONObject("user"); + }else if(status.has("from_user")){ + mUser = new JSONObject(); + mUser.putOpt("name", status.get("from_user")); + } + mTweet = ""; + + if(mContext instanceof Battle){ + mHashTag = ((Battle)mContext).getHashTag(); + } + } + public String getCreatedAt() { + @SuppressWarnings("unused") + Time ret1 = new Time(); + String created_at = mStatus.optString("created_at", getString(R.string.bad_value)); + if(created_at != getString(R.string.bad_value)){ + Date date = new Date(Date.parse(mStatus.optString("created_at"))); + SimpleDateFormat stringFormat = new SimpleDateFormat("yyyy/MM/dd h:mm"); + created_at = stringFormat.format(date); + } + + return created_at; + } + + /* + * 「つぶやき」本文を取得 + * ゲーム登録ユーザー名は[***]として文頭に書き込まれている前提<送信時に自動で付与 + * ハッシュタグは削除<文末にハッシュタグ。送信時に自動で付与 + */ + public String getText() { + String text = mJson.getCurrentTweet(mStatus); + Pattern pattern = Pattern.compile("^([[.*]])([.*])(#[.*])"); + Matcher matcher = pattern.matcher(text); + if(matcher.find()) { + mPlayerName = matcher.group(1); + mTweet = matcher.group(2); + }else{ + mPlayerName = getUserName(); + mTweet = text; + } + mTweet = mTweet.replace(mHashTag, ""); + return mTweet; + } + + public String getGameUserName(){ + if(mPlayerName == null || mPlayerName.length() == 0){ + getText(); + } + return mPlayerName; + } + public String getTweet(){ + if(mTweet == null || mTweet.length() == 0){ + getText(); + } + return mTweet; + } + public String getUserName() { + return mUser.optString("name", getString(R.string.bad_value)); + } + + private String getString(int resId){ + return mContext.getString(resId); + } + + /* + * 一行分として整形 + */ + public String getLine(){ + String text = getText(); + String line = mPlayerName + ">>" + mTweet; + + return line; + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterCredentialRunnable.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterCredentialRunnable.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterCredentialRunnable.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,61 @@ +package jp.or.cute.sangokushi.twitter; + +import java.io.IOException; + +import oauth.signpost.OAuthConsumer; +import oauth.signpost.exception.OAuthCommunicationException; +import oauth.signpost.exception.OAuthExpectationFailedException; +import oauth.signpost.exception.OAuthMessageSignerException; + +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.BasicResponseHandler; +import org.json.JSONException; +import org.json.JSONObject; + +import android.os.Handler; +import android.os.Message; + +/** + * Twitter通信 + * OAuth用通信 + * @author iST + * @version 0.1 + * @since 2010/03/29 + */ +public class TwitterCredentialRunnable extends TwitterRunnable{ + public TwitterCredentialRunnable(Handler handler, OAuthConsumer consumer) { + super(handler, consumer); + } + + @Override + public void run() { + JSONObject json = null; + OAuthConsumer consumer = this.getConsumer(); + + HttpGet get = new HttpGet(TwitterOperator.VERIFY_URL_STRING); + try { + consumer.sign(get); + String response = mClient.execute(get, new BasicResponseHandler()); + json = new JSONObject(response); + } catch (OAuthMessageSignerException e) { + e.printStackTrace(); + } catch (OAuthExpectationFailedException e) { + e.printStackTrace(); + } catch (OAuthCommunicationException e) { + e.printStackTrace(); + } catch (JSONException e) { + e.printStackTrace(); + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + Handler handler = this.getHandler(); + Message msg = new Message(); + msg.obj = json; + handler.sendMessage(msg); + + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterJSON.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterJSON.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterJSON.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,38 @@ +package jp.or.cute.sangokushi.twitter; + +import jp.or.cute.sangokushi.R; + +import org.json.JSONException; +import org.json.JSONObject; + +import android.content.Context; + + +public class TwitterJSON { + Context mContext; + + public TwitterJSON(Context context){ + mContext = context; + } + public String getCurrentTweet(JSONObject status) { + return status.optString("text", (String) getString(R.string.bad_value)); + } + + public String getUserName(JSONObject credentials) { + return credentials.optString("name", (String) getString(R.string.bad_value)); + } + + public String getLastTweet(JSONObject credentials) { + try { + JSONObject status = credentials.getJSONObject("status"); + return getCurrentTweet(status); + } catch (JSONException e) { + e.printStackTrace(); + return (String) getString(R.string.tweet_error); + } + } + + private CharSequence getString(int resId){ + return mContext.getText(resId); + } +} \ No newline at end of file Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterOAuth.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterOAuth.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterOAuth.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,156 @@ +package jp.or.cute.sangokushi.twitter; + +import jp.or.cute.sangokushi.Opening; +import junit.framework.Assert; +import oauth.signpost.OAuth; +import oauth.signpost.OAuthConsumer; +import oauth.signpost.OAuthProvider; +import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer; +import oauth.signpost.commonshttp.CommonsHttpOAuthProvider; +import oauth.signpost.exception.OAuthCommunicationException; +import oauth.signpost.exception.OAuthExpectationFailedException; +import oauth.signpost.exception.OAuthMessageSignerException; +import oauth.signpost.exception.OAuthNotAuthorizedException; +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.net.Uri; +import android.os.Bundle; + +/* + * TwitterのOAuth認証 + * Twitter認証画面を表示して、認証処理をユーザーに求める + * 認証後、Opening画面に遷移する + * @author iST + * @version 0.1 + * @since 2010/03/29 + */ +public class TwitterOAuth extends Activity { + private OAuthConsumer mConsumer = null; + private OAuthProvider mProvider = null; + + SharedPreferences mSettings; + + private boolean mInitialOnResume = true; + + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + + mConsumer = new CommonsHttpOAuthConsumer( + TwitterOperator.TWITTER_CONSUMER_KEY, + TwitterOperator.TWITTER_CONSUMER_SECRET); + + mProvider = new CommonsHttpOAuthProvider ( + TwitterOperator.TWITTER_REQUEST_TOKEN_URL, + TwitterOperator.TWITTER_ACCESS_TOKEN_URL, + TwitterOperator.TWITTER_AUTHORIZE_URL); + + mProvider.setOAuth10a(true); + + mSettings = this.getSharedPreferences(TwitterOperator.PREFS, Context.MODE_PRIVATE); + + Intent i = this.getIntent(); + if (i.getData() == null) { + try { + String authUrl = mProvider.retrieveRequestToken(mConsumer, TwitterOperator.CALLBACK_URI.toString()); + saveRequestInformation(mSettings, mConsumer.getToken(), mConsumer.getTokenSecret()); + this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl))); + } catch (OAuthMessageSignerException e) { + e.printStackTrace(); + } catch (OAuthNotAuthorizedException e) { + e.printStackTrace(); + } catch (OAuthExpectationFailedException e) { + e.printStackTrace(); + } catch (OAuthCommunicationException e) { + e.printStackTrace(); + } + } + } + + @Override + protected void onResume() { + super.onResume(); + + Uri uri = getIntent().getData(); + if (uri != null && TwitterOperator.CALLBACK_URI.getScheme().equals(uri.getScheme())) { + String token = mSettings.getString(TwitterOperator.REQUEST_TOKEN, null); + String secret = mSettings.getString(TwitterOperator.REQUEST_SECRET, null); + //Opening画面に遷移 + Intent i = new Intent(this, Opening.class); + + try { + if(!(token == null || secret == null)) { + mConsumer.setTokenWithSecret(token, secret); + } + String otoken = uri.getQueryParameter(OAuth.OAUTH_TOKEN); + String verifier = uri.getQueryParameter(OAuth.OAUTH_VERIFIER); + + Assert.assertEquals(otoken, mConsumer.getToken()); + + mProvider.retrieveAccessToken(mConsumer, verifier); + token = mConsumer.getToken(); + secret = mConsumer.getTokenSecret(); + TwitterOAuth.saveAuthInformation(mSettings, token, secret); + TwitterOAuth.saveRequestInformation(mSettings, null, null); + i.putExtra(TwitterOperator.USER_TOKEN, token); + i.putExtra(TwitterOperator.USER_SECRET, secret); + setResult(RESULT_OK, i); + } catch (OAuthMessageSignerException e) { + e.printStackTrace(); + } catch (OAuthNotAuthorizedException e) { + e.printStackTrace(); + } catch (OAuthExpectationFailedException e) { + e.printStackTrace(); + } catch (OAuthCommunicationException e) { + e.printStackTrace(); + } finally { + startActivity(i); + finish(); +// finishActivity(Opening.RESULT_OAUTH); + } + }else if(mInitialOnResume){ + mInitialOnResume = false; + return; + } + //finish(); + //TwitterOAuth.this.finish(); + } + + public static void saveRequestInformation(SharedPreferences settings, String token, String secret) { + SharedPreferences.Editor editor = settings.edit(); + if(token == null) { + editor.remove(TwitterOperator.REQUEST_TOKEN); + } + else { + editor.putString(TwitterOperator.REQUEST_TOKEN, token); + } + if (secret == null) { + editor.remove(TwitterOperator.REQUEST_SECRET); + } + else { + editor.putString(TwitterOperator.REQUEST_SECRET, secret); + } + editor.commit(); + + } + + public static void saveAuthInformation(SharedPreferences settings, String token, String secret) { + SharedPreferences.Editor editor = settings.edit(); + if(token == null) { + editor.remove(TwitterOperator.USER_TOKEN); + } + else { + editor.putString(TwitterOperator.USER_TOKEN, token); + } + if (secret == null) { + editor.remove(TwitterOperator.USER_SECRET); + } + else { + editor.putString(TwitterOperator.USER_SECRET, secret); + } + editor.commit(); + + } + +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterOperator.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterOperator.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterOperator.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,141 @@ +package jp.or.cute.sangokushi.twitter; + +import java.io.IOException; +import java.util.LinkedList; + +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.BasicResponseHandler; +import org.apache.http.impl.client.DefaultHttpClient; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import oauth.signpost.OAuthConsumer; +import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer; +import oauth.signpost.exception.OAuthCommunicationException; +import oauth.signpost.exception.OAuthExpectationFailedException; +import oauth.signpost.exception.OAuthMessageSignerException; +import android.content.Context; +import android.content.SharedPreferences; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Handler; + +/** + * TweitterAPIの操作 + * @author iST + * @version 0.1 + * @since 2010/03/29 + */ +public class TwitterOperator { + //設定情報key + public static final String PREFS = "OpenSangokushiPrefsTwitterFile"; + public static final String USER_TWITTER_NAME = "twitter_name"; + public static final String USER_TWITTER_ID = "twitter_id"; + public static final String USER_TOKEN = "user_token"; + public static final String USER_SECRET = "user_secret"; + public static final String REQUEST_TOKEN = "request_token"; + public static final String REQUEST_SECRET = "request_secret"; + + //Twitterへ登録したKEY + public static final String TWITTER_CONSUMER_KEY = "ehnSS1WfLByqyp1QjS3xhA"; + public static final String TWITTER_CONSUMER_SECRET = "BmAmAu5Pl0ZclcnJ6cweW3SptVL5gKwRWUqWwM9a4"; + + public static final Uri CALLBACK_URI = Uri.parse("twitter-oauth://sangokushi"); + + //TwitterAPIのアドレス + public static final String TWITTER_REQUEST_TOKEN_URL = "http://twitter.com/oauth/request_token"; + public static final String TWITTER_ACCESS_TOKEN_URL = "http://twitter.com/oauth/access_token"; + public static final String TWITTER_AUTHORIZE_URL = "http://twitter.com/oauth/authorize"; + public static final String TWITTER_UPDATE_URL = "http://twitter.com/statuses/update.json"; + public static final String VERIFY_URL_STRING = "http://twitter.com/account/verify_credentials.json"; + public static final String PUBLIC_TIMELINE_URL_STRING = "http://twitter.com/statuses/public_timeline.json"; + public static final String USER_TIMELINE_URL_STRING = "http://twitter.com/statuses/user_timeline.json"; + public static final String HOME_TIMELINE_URL_STRING = "http://api.twitter.com/1/statuses/home_timeline.json"; + public static final String SEARCH_TIMELINE_URL_STRING = "http://search.twitter.com/search.json"; + public static final String FRIENDS_TIMELINE_URL_STRING = "http://api.twitter.com/1/statuses/friends_timeline.json"; + public static final String STATUSES_URL_STRING = "http://twitter.com/statuses/update.json"; + + public static final String DEFAULT_HASHTAG = "#osan"; + + //呼び出し元Activity + private Context mContext; + //設定情報 + private SharedPreferences mSettings; + //OAuth + private OAuthConsumer mConsumer; + //Twitter認証トークン + public String mToken; + //Twitter秘密キー + public String mSecret; + + //TwitterID + public String getTwitterID(){ + if(mSettings != null && mSettings.contains(USER_TWITTER_ID)){ + return mSettings.getString(USER_TWITTER_ID, null); + } + return null; + } + //TwitterToken + public String getTwitterToken(){ + if(mSettings != null && mSettings.contains(USER_TOKEN)){ + return mSettings.getString(USER_TOKEN, null); + } + return null; + } + //TwitterSecret + public String getTwitterSecret(){ + if(mSettings != null && mSettings.contains(USER_SECRET)){ + return mSettings.getString(USER_SECRET, null); + } + return null; + } + + public TwitterOperator(Context context){ + mContext = context; + + //認証情報取得 + mSettings = mContext.getSharedPreferences(TwitterOperator.PREFS, Context.MODE_PRIVATE); + //OAuthコンシューマー + mConsumer = new CommonsHttpOAuthConsumer( + TwitterOperator.TWITTER_CONSUMER_KEY, + TwitterOperator.TWITTER_CONSUMER_SECRET); + + setToken(); + + } + + /* + * 設定情報にTOKENがあればOAuthコンシューマーに登録 + */ + private void setToken(){ + // 保存済の認証情報の確認 + if(mSettings.contains(USER_TOKEN) && mSettings.contains(USER_SECRET)) { + mToken = mSettings.getString(USER_TOKEN, null); + mSecret = mSettings.getString(USER_SECRET, null); + if(!(mToken == null || mSecret == null)) { + mConsumer.setTokenWithSecret(mToken, mSecret); + } + } + } + + /* + * Twitterへ別スレッドで資格情報を確認 + */ + public void asyncGetCredential(Handler handler){ + TwitterCredentialRunnable runnable = new TwitterCredentialRunnable(handler, mConsumer); + new Thread(runnable).start(); + } + +// /* +// * ハッシュタグを検索 +// */ +// public void GetHashTagTimeline(String hashTag, TweetArrayAdapter taa, LinkedList lists){ +// mAA = taa; +// mChatTweetLists = lists; +// HashTagSelector hs = new HashTagSelector(SEARCH_TIMELINE_URL_STRING, hashTag); +// new GetHashTagTimelineTask().execute(hs); +// } + +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterRunnable.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterRunnable.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterRunnable.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,48 @@ +package jp.or.cute.sangokushi.twitter; + +import oauth.signpost.OAuthConsumer; + +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.params.HttpConnectionParams; +import org.apache.http.params.HttpParams; + +import android.os.Handler; + +/** + * Twitter通信 + * @author iST + * @version 0.1 + * @since 2010/03/29 + */ +public class TwitterRunnable implements Runnable{ + private static final int CONNECTION_TIMEOUT = 10000; + private static final int TIMEOUT = 20000; + + private Handler mHandler; + public Handler getHandler() { + return mHandler; + } + + private OAuthConsumer mConsumer; + public OAuthConsumer getConsumer() { + return mConsumer; + } + + private HttpParams mHttpParams; + + protected DefaultHttpClient mClient; + + public TwitterRunnable(Handler handler, OAuthConsumer consumer){ + mHandler = handler; + mConsumer = consumer; + mClient = new DefaultHttpClient(); + + mHttpParams = mClient.getParams(); + HttpConnectionParams.setConnectionTimeout(mHttpParams, CONNECTION_TIMEOUT); //接続のタイムアウト + HttpConnectionParams.setSoTimeout(mHttpParams, TIMEOUT); //データ取得のタイムアウト + } + + @Override + public void run() { + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterUserStatusRunnable.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterUserStatusRunnable.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/twitter/TwitterUserStatusRunnable.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,61 @@ +package jp.or.cute.sangokushi.twitter; + +import java.io.IOException; + +import oauth.signpost.OAuthConsumer; +import oauth.signpost.exception.OAuthCommunicationException; +import oauth.signpost.exception.OAuthExpectationFailedException; +import oauth.signpost.exception.OAuthMessageSignerException; + +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.BasicResponseHandler; +import org.json.JSONException; +import org.json.JSONObject; + +import android.os.Handler; +import android.os.Message; + +/** + * Twitter通信 + * ユーザー情報取得用通信 + * @author iST + * @version 0.1 + * @since 2010/03/29 + */ +public class TwitterUserStatusRunnable extends TwitterRunnable{ + public TwitterUserStatusRunnable(Handler handler, OAuthConsumer consumer) { + super(handler, consumer); + } + + @Override + public void run() { + JSONObject jso = null; + OAuthConsumer consumer = this.getConsumer(); + + HttpGet get = new HttpGet(TwitterOperator.VERIFY_URL_STRING); + try { + consumer.sign(get); + String response = mClient.execute(get, new BasicResponseHandler()); + jso = new JSONObject(response); + } catch (OAuthMessageSignerException e) { + e.printStackTrace(); + } catch (OAuthExpectationFailedException e) { + e.printStackTrace(); + } catch (OAuthCommunicationException e) { + e.printStackTrace(); + } catch (JSONException e) { + e.printStackTrace(); + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + Handler handler = this.getHandler(); + Message msg = new Message(); + msg.obj = jso; + handler.sendMessage(msg); + + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/ChatPopupWindow.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/ChatPopupWindow.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/ChatPopupWindow.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,66 @@ +package jp.or.cute.sangokushi.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.widget.PopupWindow; + +public class ChatPopupWindow extends PopupWindow { + private ChatView mParentView; + + public ChatPopupWindow() { + super(); + // TODO Auto-generated constructor stub + } + + public ChatPopupWindow(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + // TODO Auto-generated constructor stub + } + + public ChatPopupWindow(Context context, AttributeSet attrs) { + super(context, attrs); + // TODO Auto-generated constructor stub + } + + public ChatPopupWindow(Context context) { + super(context); + // TODO Auto-generated constructor stub + } + + public ChatPopupWindow(int width, int height) { + super(width, height); + // TODO Auto-generated constructor stub + } + + public ChatPopupWindow(View contentView, int width, int height, + boolean focusable) { + super(contentView, width, height, focusable); + // TODO Auto-generated constructor stub + } + + public ChatPopupWindow(View contentView, int width, int height) { + super(contentView, width, height); + // TODO Auto-generated constructor stub + } + + public ChatPopupWindow(View contentView) { + super(contentView); + // TODO Auto-generated constructor stub + } + + @Override + public void showAsDropDown(View anchor, int xoff, int yoff) { + super.showAsDropDown(anchor, xoff, yoff); + } + + @Override + public void showAsDropDown(View anchor) { + super.showAsDropDown(anchor); + } + + @Override + public void showAtLocation(View parent, int gravity, int x, int y) { + super.showAtLocation(parent, gravity, x, y); + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/ChatView.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/ChatView.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/ChatView.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,184 @@ +package jp.or.cute.sangokushi.view; + +import java.util.LinkedList; + +import jp.or.cute.sangokushi.Battle; +import jp.or.cute.sangokushi.R; +import jp.or.cute.sangokushi.twitter.TweetArrayAdapter; +import jp.or.cute.sangokushi.twitter.TweetItem; +import jp.or.cute.sangokushi.twitter.TwitterOperator; +import android.app.Activity; +import android.content.Context; +import android.os.Handler; +import android.os.Message; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup.LayoutParams; +import android.view.inputmethod.InputMethodManager; +import android.widget.Button; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.ListView; +import android.widget.TextView; + +public class ChatView extends TextView implements OnClickListener{ + //TwitterAPI制御 + private TwitterOperator mOperator; + //ハッシュタグ + private String mChatTag; + + public String getChatTag() { + return mChatTag; + } + + private ListView mTweetList; + + public ListView getTweetList() { + return mTweetList; + } + + private EditText mTweetEditor; + public EditText getTweetEditor(){ + return mTweetEditor; + } + private Button mSendButton; + + private ChatPopupWindow mPopupWindow; + private Activity mActivity; + + public ChatView(Context context) { + super(context); + // TODO Auto-generated constructor stub + } + + public ChatView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + // TODO Auto-generated constructor stub + } + + public ChatView(Context context, AttributeSet attrs) { + super(context, attrs); + // TODO Auto-generated constructor stub + } + + public void init(Activity activity, String room_id, String country_id){ + mActivity = activity; + mChatTag = "#osan" + room_id + country_id; + + mPopupWindow = createPopUpWindow(); + + setOnClickListener(this); +// final ListView tweetlist = (ListView) findViewById(R.id.TweetListView); +// mArrayAdapter = new TweetArrayAdapter(mActivity, R.layout.list); +// tweetlist.setAdapter(mArrayAdapter); +// tweetlist.setSelection(0); + + mOperator = new TwitterOperator(mActivity); + if(mOperator.getTwitterToken() == null){ + this.setText(R.string.twitter_notauth_message); + return; + } + //Twitterメッセージ取得 + loadTweets(mChatTag); + } + + /* + * チャット用ポップアップビューの作成 + */ + private ChatPopupWindow createPopUpWindow() { + LinearLayout tv = (LinearLayout) mActivity.getLayoutInflater().inflate( + R.layout.popup, null); + + ChatPopupWindow popupWindow = new ChatPopupWindow(mActivity); + popupWindow.setWindowLayoutMode(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); + popupWindow.setContentView(tv); + + if(mTweetList == null){ + mTweetList = (ListView) popupWindow.getContentView().findViewById(R.id.TweetListView); + } + + if(mTweetEditor == null){ + mTweetEditor = (EditText) popupWindow.getContentView().findViewById(R.id.EditText01); + } + + if(mSendButton == null){ + mSendButton = (Button) popupWindow.getContentView().findViewById(R.id.Button01); + } + mSendButton.setOnClickListener(this); + mTweetEditor.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + showInputMethod(); + } + }); + mTweetEditor.setOnFocusChangeListener(new OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if(hasFocus){ + showInputMethod(); + } + } + }); + mTweetEditor.setOnTouchListener(new OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + showInputMethod(); + return false; + } + }); + + return popupWindow; + } + + + @Override + public void onClick(View v) { + if(v.equals(mSendButton)){ + //Tweet送信 + sendTweet(mChatTag); + }else if(v.equals(this)){ + if(mPopupWindow.isShowing()) { + mPopupWindow.dismiss(); + } else { + if(mOperator == null){ + mOperator = new TwitterOperator(mActivity); + } + if(mOperator.getTwitterToken() == null){ + mOperator.asyncGetCredential(((Battle)mActivity).getTwitterAuthenticateHandler()); + return; + } + + //Twitterメッセージ取得 + loadTweets(mChatTag); + + //mPopUpText.setText("Click!"); + mPopupWindow.showAsDropDown(this,0,0); + + mTweetEditor.setFocusable(true); + } + } + } + + public void loadTweets(String hashtag){ + ((Battle)mActivity).loadTweets(hashtag); + } + + public void sendTweet(String hashtag){ + ((Battle)mActivity).sendTweet(hashtag); + } + Handler mTweetEditorHandler; + private void showInputMethod(){ + mTweetEditorHandler = new Handler(); + Message m = Message.obtain(mTweetEditorHandler, new Runnable() { + @Override + public void run() { + InputMethodManager manager = (InputMethodManager)mActivity.getSystemService(Activity.INPUT_METHOD_SERVICE); + manager.showSoftInput(mTweetEditor, InputMethodManager.SHOW_IMPLICIT); + } + }); + mTweetEditorHandler.sendMessage(m); + + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/MapStaticView.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/MapStaticView.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/MapStaticView.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,247 @@ +package jp.or.cute.sangokushi.view; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Paint.Style; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; + +public class MapStaticView extends View{ + private Paint mPaintBg; + private Paint mPaint; + private Paint mPaintStroke; + + /* + * マップデータ + 1=山 + 2=林 + 3=草地 + 4=砂地 + 5=川 + 6=湖 + 7=城or陣 + 8=街道 + */ + private int[][] map; + private int[] colors; + + private int mMapSpeed = 5; + private boolean mTouch = false; + private float mTouchX = -1; + private float mTouchY = -1; + + private int mCenterX = 0; + private int mCenterY = 0; + + int w = 24; + int h = 24; + + public MapStaticView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(); + } + + public MapStaticView(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + public MapStaticView(Context context) { + super(context); + init(); + } + + private void init(){ +// this.setLayoutParams( +// new android.view.ViewGroup.LayoutParams(w*100,h*100)); + + int[] _colors = { + Color.argb(255, 0, 128, 0), + Color.argb(255, 0, 128, 0), + Color.argb(255, 238, 91, 0), + Color.argb(255, 238, 91, 0), + Color.argb(255, 0, 255, 255), + Color.argb(255, 0, 255, 255), + Color.argb(255, 255, 255, 0), + Color.argb(255, 255, 255, 0) + }; + colors = _colors; + //マップ + map = createDummyMap(); + + mPaintBg = new Paint(); + mPaintBg.setColor(Color.BLACK); + mPaint = new Paint(); + mPaint.setStyle(Style.FILL); + mPaintStroke = new Paint(); + mPaintStroke.setStyle(Style.STROKE); + mPaintStroke.setColor(Color.BLACK); + + //フォーカス + setFocusable(true); + setFocusableInTouchMode(true); + + mCenterX = getWidth() / 2; + mCenterY = getHeight() / 2; + mTouchX = mCenterX; + mTouchY = mCenterY; + } + + boolean mDrawed = false; + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + if(!mDrawed){ + doDraw(canvas); + mDrawed = true; + } + } + + private void doDraw(Canvas canvas){ + int m = 1; + int x = 0; + int y = 0; + + canvas.drawRect(0, 0, getWidth(), getHeight(), mPaintBg); + for(int i = 0; i < 100; i++){ + for(int j = 0; j < 100; j++){ + x = i * w; + y = j * h; + m = map[i][j]-1; + mPaint.setColor(colors[m]); + canvas.drawRect(x, y, x + w, y + h, mPaint); + canvas.drawRect(x, y, x + w, y + h, mPaintStroke); + mPaintStroke.setTextSize(10); + canvas.drawText(String.valueOf(i)+","+String.valueOf(j), x, y, mPaintStroke); + } + } + } + + + @Override + public boolean onTouchEvent(MotionEvent event) { + int touchAction = event.getAction(); + mCenterX = getWidth() / 2; + mCenterY = getHeight() / 2; + if(touchAction == MotionEvent.ACTION_DOWN){ + // 2重でイベントを処理しているかも +/* mTouch = true; + mTouchX = event.getX(); + mTouchY = event.getY();*/ + //this.scrollTo((int)mTouchX-mCenterX, (int)mTouchY-mCenterY); + }else if(touchAction == MotionEvent.ACTION_UP || + touchAction == MotionEvent.ACTION_CANCEL){ + mTouch = false; + } + return super.onTouchEvent(event); + } + + private int[][] createDummyMap(){ + int[][] _map_iryou = { + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3}, + {5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3}, + {1,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3}, + {1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,8,8}, + {1,1,1,1,1,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,3}, + {1,1,1,1,1,5,5,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,3,3}, + {1,1,1,1,1,1,1,1,1,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,8,8,8,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,8,8,8,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,1,1,1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,8,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,8,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,5,5,5,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,8,1,1,4,4,4,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,8,8,1,4,4,4,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,1,1,5,1,1,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,1,8,1,4,4,4,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,8,1,4,4,4,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,8,8,8,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,8,8,1,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,1,1,1,1,1,1,1,1,1,1,1,8,8,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,1,1,1,1,1,8,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,1,1,8,1,4,4,3,3,3,3,3,3,3,3,3,8,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,8,1,4,4,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,8,8,1,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,8,3,3,3,3,3,3,3,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,1,1,1,8,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,3,8,8,3,3,3,3,3,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,3,3,3,8,8,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,3,3,3,3,8,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,5,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,5,3,3,3,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,5,5,3,8,8,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,5,3,8,3,3,3,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,5,8,8,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,8,3,3,3,3,3,8,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,8,8,5,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,8,3,5,5,3,3,3,3,3,3,3,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,8,8,8,3,3,5,5,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,8,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,8,8,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,8,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,8,8,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,8,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,3,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,8,8,8,1,1,8,8,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,8,8,8,1,8,8,8,8,1,1,1,1,1,1,1,1,1,1,1,1,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,8,8,8,1,1,1,1,1,1,1,8,8,8,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,3,3,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,8,8,1,1,8,8,8,8,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,3,3,3,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,8,8,8,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,8,8,8,8,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,8,8,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,6,6,3,3,8,8,8,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,6,3,3,3,3,8,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,6,6,1,1,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,1,1,1,6,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,3,5,5,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,3,3,3,3,3,3,5,5,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,5,5,5,5,5,3,3,3,3,3,3,3,3,3,5,5}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,5,5,3,3,3,5,5,5,3,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,5,5,3,3,5,5,3,5,5,3,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,5,5,5,5,5,3,3,3,5,5,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3,5,3,3,3,3,3,3,3,3,3}, + {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,3,3,3,3,5,5,3,3,3,3,3,3,3,3,5,5,3,3,3,3,3,3,3,3} + }; + return _map_iryou; + } +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/MapView.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/MapView.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/MapView.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,666 @@ +package jp.or.cute.sangokushi.view; + +import java.util.Random; + +import jp.or.cute.sangokushi.R; +import jp.or.cute.sangokushi.SangokushiPreferences; +import jp.or.cute.sangokushi.Lobby.battle_Status; +import jp.or.cute.sangokushi.dummy.DummyMapData; +import jp.or.cute.sangokushi.httpclient.BattleCommand; +import jp.or.cute.sangokushi.httpclient.BattleResultCommand; +import jp.or.cute.sangokushi.httpclient.HttpClient; +import jp.or.cute.sangokushi.httpclient.HttpCommand; +import jp.or.cute.sangokushi.httpclient.LobbyInfoCommand; +import jp.or.cute.sangokushi.httpclient.RoomInfoCommand; +import jp.or.cute.sangokushi.model.Player; +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Paint.Style; +import android.os.Handler; +import android.os.Message; +import android.os.SystemClock; +import android.util.AttributeSet; +import android.util.Log; +import android.view.GestureDetector; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.View; +import android.widget.TextView; + +public class MapView extends View implements GestureDetector.OnGestureListener, + GestureDetector.OnDoubleTapListener{ + private Paint mPaintBg; + private Paint mPaint; + private Paint mPaintStroke; + private GestureDetector mGestureDetector; + private Activity activity; + private MapView me; + private WholeMapView mWholeMap; + + + public static final int CHIP_W = 32; + public static final int CHIP_H = 32; + private static int SHOW_PRESS = 1; + private static int LONG_PRESS = 2; + private static int DOUBLE_TAP = 3; + private static int DOUBLE_TAP_EVENT = 4; + private static int SINGLE_TAP_CONFIRMED = 5; + private static int SINGLE_TAP_EVENT = 6; + + private static int EVENT_CANCEL = -1; + private static String b01002_prev = ""; + public static String mUserName = ""; + + private float mScale = 1; + + /* + * マップデータ + 1=山 + 2=林 + 3=草地 + 4=砂地 + 5=川 + 6=湖 + 7=城or陣 + 8=街道 + */ + private int[][] map; + private Bitmap[] mapchips = new Bitmap[8]; + + private float mTouchX = -1; + private float mTouchY = -1; + + private int mCenterX = 0; + private int mCenterY = 0; + + private int mMoveX = 0; + private int mMoveY = 0; + private int mCurrentX = 0; + private int mCurrentY = 0; + private int mCurrentMapX = 0; + private int mCurrentMapY = 0; +// private boolean mFirstDraw = true; + private boolean mPlayerMovingFlag = false; + + // + private int mEvent = EVENT_CANCEL; + //ゲームプレイヤー + private Player mPlayer; + private Player[] mPlayers; + + // + private String mUserid; + private String mRoomid; + + private BattleCommand battleCommand; // = new BattleCommand(); + + //全体地図用ハンドラー + private Handler mWholeMapViewHandler; + private Message mWholeMapViewMessage; + + /* + * Key Event + * by kumazaku 2010/7/31 + */ + public boolean onKeyDown(int keyCode, KeyEvent event) { + Log.d("MapView","onKeyDown code:"+keyCode); + return false; + } + + public MapView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(context); + } + + public MapView(Context context, AttributeSet attrs) { + super(context, attrs); + init(context); + } + + public MapView(Context context) { + super(context); + init(context); + } + + private void init(Context context){ + me = this; + //マップチップ + Resources r=context.getResources(); + //1=山 + mapchips[0] = BitmapFactory.decodeResource(r,R.drawable.forest); + //2=林 + mapchips[1] = BitmapFactory.decodeResource(r,R.drawable.tree); + //3=草地 + mapchips[2] = BitmapFactory.decodeResource(r,R.drawable.grass); + //4=砂地 + mapchips[3] = BitmapFactory.decodeResource(r,R.drawable.desert); + //5=川 + mapchips[4] = BitmapFactory.decodeResource(r,R.drawable.water); + //6=湖 + mapchips[5] = BitmapFactory.decodeResource(r,R.drawable.water); + //7=城or陣 + mapchips[6] = BitmapFactory.decodeResource(r,R.drawable.castle); + //8=街道 + mapchips[7] = BitmapFactory.decodeResource(r,R.drawable.street); + + //マップ + map = DummyMapData.createDummyMap(); + + mPaintBg = new Paint(); + mPaintBg.setColor(Color.BLACK); + mPaint = new Paint(); + mPaint.setStyle(Style.FILL); + mPaintStroke = new Paint(); + mPaintStroke.setStyle(Style.STROKE); + mPaintStroke.setColor(Color.BLACK); + mPaintStroke.setStrokeWidth(0); + + this.setClickable(true); + + //フォーカス + setFocusable(true); + setFocusableInTouchMode(true); + +// mHolder = getHolder(); +// mHolder.addCallback(this); +// mHolder.setFixedSize(getWidth(), getHeight()); + + mCenterX = getWidth() / 2; + mCenterY = getHeight() / 2; + mTouchX = mCenterX; + mTouchY = mCenterY; + + //this.battleCommand = new BattleCommand(mUserid,mRoomid); + this.mGestureDetector = new GestureDetector(context, this); + } + + public void setUserAndRoom(String user,String room) + { + //this.battleCommand.setUserAndRoom(user,room); + mUserid = user; + mRoomid = room; + Log.d("MapView","UserID="+mUserid+"|mRoomid="+mRoomid); + } + + /* + * ゲームプレイヤーをセット + */ + public void setPlayer(Player player){ + mPlayer = player; + } + + /* + * ゲームプレイヤーをセット + */ + public void setPlayers(Player[] players){ + mPlayers = players; + } +/* + public String getLobbyPlayers() + { + return battleCommand.httpPost("data=B01002"); + } +*/ + public void setContent(Activity act) + { + this.activity = act; + } + /* + * 全体地図をセット + */ + public void setWholeMapViewHandler(Handler handler){ + mWholeMapViewHandler = handler; + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + //Log.d("MapView","onDraw"); + //Log.d("MapView","mTouchX="+Float.toString(mTouchX)+"|mTouchY="+Float.toString(mTouchY)); + drawMapBitmap(canvas, mMoveX, mMoveY); + mTouchX = -1; + mTouchY = -1; + } + + private void drawMapBitmap(Canvas canvas, int moveX, int moveY){ + int col = 15; + int row = 15; + //Log.d("MapView","drawMapBitmap"); + //Log.d("drawMapBitmap","mCurrentMapX="+Integer.toString(mCurrentMapX)+"|mCurrentMapY="+Integer.toString(mCurrentMapY)); + int m = 1; + int x = 0; + int y = 0; + int currentMapX = mCurrentMapX; + int currentMapY = mCurrentMapY; + if(mScale == 0.0f){ + mScale = (float)getWidth() / 480f; + } + + if (mTouchX >= 0) { + mCurrentMapX = currentMapX + (int) Math.round(mTouchX / (CHIP_W * mScale)) - col/2; + mCurrentMapY = currentMapY + (int) Math.round(mTouchY / (CHIP_H * mScale)) - row/2; + } + if(mCurrentMapX < 0){ + mCurrentMapX = 0; + }else if(mCurrentMapX > (map.length-col)){ + mCurrentMapX = (map.length-col); + } + if(mCurrentMapY < 0){ + mCurrentMapY = 0; + }else if(mCurrentMapY > (map.length-row)){ + mCurrentMapY = (map.length-row); + } + + canvas.drawRect(0, 0, getWidth(), getHeight(), mPaintBg); + + for(int i = mCurrentMapX; i < mCurrentMapX+col; i++){ + for(int j = mCurrentMapY; j < mCurrentMapY+row; j++){ + x = (int) ((i-mCurrentMapX) * CHIP_W * mScale); + y = (int) ((j-mCurrentMapY) * CHIP_H * mScale); + m = map[i][j]-1; + if(mScale != 1.0f){ + canvas.drawBitmap( + Bitmap.createBitmap(mapchips[m], 0, 0, (int)(CHIP_W*mScale), (int)(CHIP_H*mScale)), + x, y, mPaint); + canvas.drawRect(x, y, x+(int)(CHIP_W*mScale), y+(int)(CHIP_H*mScale), mPaintStroke); + }else{ + canvas.drawBitmap(mapchips[m], x, y, mPaint); + canvas.drawRect(x, y, x+CHIP_W, y+CHIP_H, mPaintStroke); + } + } + } + if (mPlayers != null) { + for (int i=0;i>"); + //Log.d("makePlayers","size="+Integer.toString(pInfo.length)); + Player[] players = new Player[pInfo.length-1]; + //Log.d("makePlayers","players size="+Integer.toString(players.length)); + for (int i=1,j=0;i>"); + String[] value = param[1].split(","); + if (mCurrentTurn != Integer.valueOf(value[1])) { + int maxTurn = Integer.valueOf(value[0]); + int currentTurn = Integer.valueOf(value[1]); + if (currentTurn != mCurrentTurn) { + mCurrentTurn = currentTurn; + int diffTurn = mMaxTurn - mCurrentTurn; +/* TextView currentTurnView = (TextView) findViewById(R.id.TextView03); + currentTurnView.setText(Integer.toString(mCurrentTurn)+"日目"); + TextView diffTurnView = (TextView) findViewById(R.id.TextView01); + currentTurnView.setText("残り"+Integer.toString(diffTurn)+"日"); +*/ } + } + } + + private static final int INVALIDATE = 1; + private Player[] players; + + private final Handler mHandler = new Handler() { + @Override + public void handleMessage(Message msg) { + Log.d("handleMessage","mCurrentTurn="+Integer.toString(mCurrentTurn)+"|mMaxTurn="+Integer.toString(mMaxTurn)); + if (mCurrentTurn != mMaxTurn) { + // 表示 + TextView currentTurnView = (TextView) activity.findViewById(R.id.TextView03); + currentTurnView.setText(Integer.toString(mCurrentTurn)+"日目"); + int diffTurn = mMaxTurn - mCurrentTurn; + TextView diffTurnView = (TextView) activity.findViewById(R.id.TextView01); + diffTurnView.setText("残り"+Integer.toString(diffTurn)+"日"); + if (mAnimate && msg.what == INVALIDATE) { + players = getPlayerInfo(); + getRoomInfo(); + me.invalidate(); + if (mCurrentTurn == mMaxTurn) { + AlertDialog.Builder dlg; + dlg = new AlertDialog.Builder(me.getContext()); + dlg.setTitle("戦闘終了"); + String mg = "この戦いは終了しました"; + dlg.setMessage(mg); + DialogInterface.OnClickListener listner = new DialogInterface.OnClickListener(){ + @Override + public void onClick(DialogInterface dialog, int which) { + //Log.d("Button",Integer.toString(which)); + activity.setResult(Activity.RESULT_OK); + } + }; + + dlg.setNegativeButton("OK", listner); + dlg.show(); + } + if (!noWriteFlag && reWrite) { + mWholeMap.setPlayers(players); + setPlayers(players); + me.invalidate(); + } + msg = obtainMessage(INVALIDATE); + long current = SystemClock.uptimeMillis(); + if (mNextTime < current) { + // 100ms周期でタイマーイベントが発生 + mNextTime = current + 10000; + } + sendMessageAtTime(msg, mNextTime); + // 100ms周期でタイマーイベントが発生 + mNextTime += 10000; + } + } + } + }; + /** + * WindowにAttachされた時の処理 + */ + protected void onAttachedToWindow(){ + mAnimate = true; + Message msg = mHandler.obtainMessage(INVALIDATE); + mNextTime = SystemClock.uptimeMillis(); + mHandler.sendMessageAtTime(msg, mNextTime); + super.onAttachedToWindow(); + } + + /** + * WindowからDetachされた時の処理 + */ + protected void onDetachedFromWindow() { + mAnimate = false; + super.onDetachedFromWindow(); + } + private boolean mAnimate; + private long mNextTime; +} Added: tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/WholeMapView.java =================================================================== --- tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/WholeMapView.java (rev 0) +++ tags/Ver.0.1.6/src/jp/or/cute/sangokushi/view/WholeMapView.java 2011-02-05 16:05:38 UTC (rev 487) @@ -0,0 +1,134 @@ +package jp.or.cute.sangokushi.view; + +import jp.or.cute.sangokushi.dummy.DummyMapData; +import jp.or.cute.sangokushi.model.Player; +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Paint.Style; +import android.util.AttributeSet; +import android.util.Log; +import android.view.View; + +public class WholeMapView extends View{ + int w = 2; + int h = 2; + private int[][] map; + private int[] colors; + + //詳細地図の表示範囲 + private int mAreaX; + private int mAreaY; + + private Bitmap mMap; + + private boolean mFirstDraw = false; + /* + * 詳細地図の表示範囲をセットして再描画 + */ + public void drawArea(int x, int y){ + mAreaX = x; + mAreaY = y; + this.invalidate(); + } + //ゲームプレイヤー + private Player mPlayer; + private Player[] mPlayers; + + /* + * ゲームプレイヤーをセット + */ + public void setPlayer(Player player){ + mPlayer = player; + } + + /* + * ゲームプレイヤーをセット + */ + public void setPlayers(Player[] players){ + mPlayers = players; + } + + @Override + protected void onDraw(Canvas canvas) { + Paint paintBg = new Paint(); + paintBg.setColor(Color.BLACK); + Paint paint = new Paint(); + paint.setStyle(Style.FILL); + Paint paintStroke = new Paint(); + paintStroke.setStyle(Style.STROKE); + paintStroke.setColor(Color.BLACK); + paintStroke.setStrokeWidth(0); + + super.onDraw(canvas); + //マップ + if(map == null){ + map = DummyMapData.createDummyMap(); + } + //マップカラー + if(colors == null){ + colors = DummyMapData.getMapColors(); + } + int m = 1; + int x = 0; + int y = 0; + if(mMap == null){ + mMap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888); + Canvas mapCanvas = new Canvas(mMap); + mapCanvas.drawRect(0, 0, getWidth(), getHeight(), paintBg); + for(int i = 0; i < 60; i++){ + for(int j = 0; j < 60; j++){ + x = i * w; + y = j * h; + if((x >= 0 && x < getWidth()) && (y >= 0 && y < getHeight())){ + m = map[i][j]-1; + paint.setColor(colors[m]); + mapCanvas.drawRect(x, y, x + w, y + h, paint); + mapCanvas.drawRect(x, y, x + w, y + h, paintStroke); + } + } + } + } + canvas.drawBitmap(mMap, 0, 0,new Paint()); + mFirstDraw = true; + if (mPlayers != null) { + for (int i=0;i Revision: 488 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=488 Author: hryksbt Date: 2011-02-06 10:46:59 +0900 (Sun, 06 Feb 2011) Log Message: ----------- 20110205_Skype.txt nonさん登場!! Added Paths: ----------- trunk/IRC_ChatLog/20110205_Skype.txt Added: trunk/IRC_ChatLog/20110205_Skype.txt =================================================================== --- trunk/IRC_ChatLog/20110205_Skype.txt (rev 0) +++ trunk/IRC_ChatLog/20110205_Skype.txt 2011-02-06 01:46:59 UTC (rev 488) @@ -0,0 +1,488 @@ +?[2011/02/05 20:45:00] 裕之: こんばんは! +[2011/02/05 20:45:16] 裕之: また10時くらいに顔出しマス +[2011/02/05 20:45:47] narunaru: こんばんわ。了解しました? +[2011/02/05 20:46:09] 裕之: 少し子供の面倒を見てきますのでー +[2011/02/05 20:46:24] narunaru: はい^^ +[2011/02/05 22:36:39] 裕之: もどりましたー +[2011/02/05 22:56:51] narunaru: こんばんわー +[2011/02/05 22:57:35] 裕之: どうですかー? +[2011/02/05 22:59:08] narunaru: アンドロイドの環境構築して、これから作ってみる感じです。 +[2011/02/05 22:59:29] narunaru: 今は画面レイアウトのとこ色々いじってみてました。 +[2011/02/05 22:59:39] 裕之: おお +[2011/02/05 22:59:42] 裕之: いいですねー +[2011/02/05 23:00:01] 裕之: 自分は、既存ゲームを20秒1ターンに変更しようとしてます +[2011/02/05 23:00:07] narunaru: 23時からまたいったんりせきします^^; +[2011/02/05 23:00:18] narunaru: お、がんばって下さい^^ +[2011/02/05 23:00:20] 裕之: 英会話ですね +[2011/02/05 23:00:26] 裕之: お23:00 +[2011/02/05 23:00:26] narunaru: はい^^ +[2011/02/05 23:00:30] 裕之: ではではー +[2011/02/05 23:00:38] narunaru: はい、また? +[2011/02/05 23:00:44] 裕之: 頑張ってくださいー +[2011/02/05 23:29:32] narunaru: 無事完了しました^^ +[2011/02/05 23:30:15] 裕之: お疲れ様でしたー +[2011/02/05 23:30:51] narunaru: 20秒に修正出来ました? +[2011/02/05 23:31:11] 裕之: 一応出来てるっぽいですね +[2011/02/05 23:31:25] narunaru: お、すごいですね^^ +[2011/02/05 23:31:36] narunaru: そういえば、今日JRに乗ったので、 +[2011/02/05 23:31:46] narunaru: ついでに確認君で確認してみました。 +[2011/02/05 23:31:49] 裕之: お!どうでした? +[2011/02/05 23:31:55] narunaru: 結果、IPはかわるっぽいです +[2011/02/05 23:32:25] 裕之: あれま +[2011/02/05 23:32:27] 裕之: ^^; +[2011/02/05 23:33:54] narunaru: IP変わってもずっとコネクトされた状態なら通信できるですかね? +[2011/02/05 23:33:58] narunaru: あの仕組みだと +[2011/02/05 23:34:22] narunaru: やっぱり無理なんでしょうか・・? +[2011/02/05 23:34:25] 裕之: 確認君ではわからない何かがあるのかもですねえ +[2011/02/05 23:35:39] narunaru: 今、アンドロイドアプリを0から作ってみてるとこなんですが、GUI作るツールはVBみたいに間単に配置できないんですかね? +[2011/02/05 23:36:07] 裕之: いちおーXMLで書かなくても良いようなツールはありますよね +[2011/02/05 23:37:00] narunaru: はい、でもあのツール上手く使いこなせないです^^;; +[2011/02/05 23:37:11] 裕之: もうひとつあるんですけど +[2011/02/05 23:37:21] narunaru: そうなんですか? +[2011/02/05 23:37:31] 裕之: http://www.droiddraw.org/ +[2011/02/05 23:37:33] 裕之: ですね +[2011/02/05 23:37:38] 裕之: でも使ったことないです。。。 +[2011/02/05 23:38:20] narunaru: とりあえず、色々触ってみます^^ +[2011/02/05 23:40:14] 裕之: あんまりいい感じのはなさそうですよね +[2011/02/05 23:40:31] 裕之: Dreamweaverみたいなのがあると良いんですけどねえ +[2011/02/05 23:40:56] narunaru: Dreamweaverは使いやすいんですか? +[2011/02/05 23:41:44] 裕之: あれは、画面でレイアウトしたのがそのままHTMLで吐き出されるから簡単ですねえ +[2011/02/05 23:42:13] narunaru: そうなんですねー。 +[2011/02/05 23:45:09] 裕之: 20秒は問題無しですね +[2011/02/05 23:45:26] 裕之: ついでに言うと、元の状態でも同じバグがあるっぽいですね^^; +[2011/02/05 23:45:48] narunaru: 昨日の吹っ飛ぶ件ですか? +[2011/02/05 23:45:52] 裕之: ですです +[2011/02/05 23:45:57] 裕之: また再現しました +[2011/02/05 23:46:00] 裕之: 謎です +[2011/02/05 23:46:33] narunaru: 不思議ですねー +[2011/02/05 23:47:50] narunaru: そういえば、ノートPCだとXperiaのエミュレータがめちゃ思いです・・・ +[2011/02/05 23:48:00] 裕之: ですよね +[2011/02/05 23:48:04] 裕之: 内野はひどいですよ +[2011/02/05 23:48:08] 裕之: うちのは +[2011/02/05 23:48:16] 裕之: Atomなので^^; +[2011/02/05 23:48:26] narunaru: 一応DualCoreCPUの2Gメモリですが、全然駄目でした^^; +[2011/02/05 23:49:17] narunaru: しかも画面が収まりきらないです^^; +[2011/02/05 23:49:41] 裕之: 画面は調節できます +[2011/02/05 23:49:50] 裕之: 起動時に、数字を変えてみるんですよ +[2011/02/05 23:50:15] narunaru: はい、何度か変えましたが、ちょうどいい数字にならなくて、結局 +[2011/02/05 23:50:25] narunaru: デフォルトで使いました^^;; +[2011/02/05 23:50:42] 裕之: デフォルトだとかなりはみ出ますねえ +[2011/02/05 23:50:52] 裕之: で、作るなら800x480がいいですね +[2011/02/05 23:51:38] narunaru: 800x480ってデフォルトのサイズですよね? +[2011/02/05 23:52:33] 裕之: デフォルトは、480x320ではないですかねえ? +[2011/02/05 23:53:22] narunaru: あれ、Xperiaはデフォルト選ぶとWVGAと同じサイズになった気がしてました^^; +[2011/02/05 23:54:12] 裕之: そうでしたか?最近実はあんまりエミュ環境触ってなかったので^^ +[2011/02/05 23:55:09] narunaru: あ、なるほど^^標準?で着いてくるエミュレータは480x320くらいのサイズだと思いますが、XperiaはX10とかっていうデフォルトのやつで +[2011/02/05 23:55:22] narunaru: 800x480になった気がします +[2011/02/05 23:55:59] 裕之: X10は854x480なんですよ +[2011/02/05 23:56:11] narunaru: あ、そうなんですか?? +[2011/02/05 23:56:16] 裕之: です +[2011/02/05 23:56:26] 裕之: で、X10のエミュはかなり不安定なので、 +[2011/02/05 23:56:27] narunaru: 800x480だとおもってました^^; +[2011/02/05 23:56:39] 裕之: ほんとは1.6で動かしたいですが、2.1のエミュを使ったりしてました。 +[2011/02/05 23:57:10] 裕之: なぜかというと、1.6のエミュは、480x320以上が対応できないんですよ +[2011/02/05 23:57:37] narunaru: そうなんですねー色々制約があるんですね^^ +[2011/02/05 23:58:16] 裕之: なので、2.1以上でもいいのかもと思ってましたが、 +[2011/02/05 23:58:32] 裕之: 例の8円祭りで1.6で動くIS01がバカ売れしたので、 +[2011/02/05 23:58:43] 裕之: 対応させないわけには行かないかなーと思ってます +[2011/02/05 23:59:37] narunaru: あ、そうなんですね^^;では自分も1.6で作ってみます +[2011/02/05 23:59:49] 裕之: ですね^^ +[2011/02/05 23:59:56] 裕之: 1.6でお願いします +[0:02:31] narunaru: はい、了解です^^ +[0:05:01] 裕之: akifumi3さんの修正は結局問題なかったので、 +[0:05:11] 裕之: 新バージョンとしてリリースします +[0:05:21] 裕之: 申し訳なかったなあ。。。 +[0:07:39] narunaru: でもバグじゃないことがわかったので、よかったと思います^^ +[0:08:41] 裕之: バグはバグなんですけどね +[0:08:55] 裕之: akifumi3さんの修正とは全く関係なかったてことですねー +[0:09:37] narunaru: はい、問題の切り分けが出来てakifumi3さんの方はバグじゃないことがわかってよかったと思います^^ +[0:09:50] 裕之: ですね +[0:09:56] 裕之: よかったよかった +[0:11:48] narunaru: ひろゆきさんはノートPCで作業とかしてるんですか? +[0:12:36] 裕之: 前見せたあのPCですよ^^; +[0:12:58] 裕之: もっとスペックの高いノートもありますが、サーバにしてます。。。 +[0:13:54] narunaru: そうなんですね。結構がんばってますね^^;自分はもう少し良いノート使ってますが、遅すぎて買い換えたくなってきました。。。 +[0:14:43] 裕之: turionなんかが欲しいですね +[0:14:52] 裕之: i7は、 +[0:15:04] 裕之: WebサーバにしたいCPUですね +[0:15:47] 裕之: ノートのクセに8Coreで動きますモンね +[0:16:05] narunaru: 今はすごい時代ですよね +[0:16:14] 裕之: やばいです +[0:16:38] narunaru: 自分はathron64x2とかでもいいかなって思ってます^^; +[0:16:52] 裕之: 機能紹介した16800円のサーバもCore2Quadに載せかえれるので、 +[0:17:37] 裕之: 4Core 16GBメモリのモンスターサーバにしても、総額4万位くらいじゃないでしょうか。 +[0:18:12] narunaru: 総額4万で4coreの時代なんですね・・・ +[0:18:24] narunaru: ノートも激安ですし・・ +[0:18:27] 裕之: メモリも16GB +[0:18:29] 裕之: あ、 +[0:18:57] 裕之: HPのノートなら、8GBまでメモリつめて、ディスクもRaidにできますよ +[0:19:20] narunaru: raid機能はいらないです^^; +[0:19:23] 裕之: それだけでも十分サーバスペック^^; +[0:19:30] narunaru: あ、確かに^^ +[0:19:41] 裕之: HPノートをゲットしちゃいますか? +[0:19:56] 裕之: いや、 +[0:20:00] 裕之: 今は我慢しましょう +[0:20:18] 裕之: 三国志で儲かったらゲットです! +[0:20:36] 裕之: 今のトコ、広告で800円!! +[0:21:01] narunaru: でもよく考えたら、収入があるだけすごいですよね^^ +[0:21:15] 裕之: はい。すごすぎます +[0:21:24] narunaru: 0と1以上では大きな違いがある気がします^^ +[0:21:43] 裕之: ゲームで直接収入を得ているわけではないので、 +[0:22:10] 裕之: ホームページ作って、SourceForgeからリンクさせれば誰でも稼げるというところがすごいです +[0:22:58] narunaru: それだけで稼げるんですね^^ +[0:23:01] 裕之: 例の +[0:23:01] 裕之: http://sangokushi.cute.or.jp/ +[0:23:03] 裕之: ですね +[0:28:06] 裕之: 因みにOpen三国志のSourceForgeのホームページを見てもらえるとわかりますが、 +[0:28:17] 裕之: 今は1日500くらいですが、 +[0:28:33] 裕之: プロジェクトがうまく回ってるときは +[0:28:46] 裕之: 1200くらいペービューがありました。 +[0:29:02] narunaru: そんなにあるんですねー! +[0:29:04] 裕之: で、ゲームが広まればその10倍くらいいけると思うので、 +[0:29:24] 裕之: そこからあのサイトに誘引できれば、さらに収入が見込めると思うんですよね +[0:29:35] narunaru: なるほどー +[0:29:49] 裕之: で、前にも話してた、あのサイトもゲームの一部として機能すれば、 +[0:30:00] 裕之: その何倍か +[0:30:02] 裕之: つまり +[0:30:11] 裕之: すごことになる +[0:30:21] 裕之: すごいことになる ということです^?^ +[0:30:30] 裕之: 超テキトー +[0:30:32] narunaru: 良い仕組みです^^ +[0:30:37] 裕之: 8-) +[0:30:49] narunaru: ひろゆきさんは企画向きですよね^^ +[0:31:01] narunaru: この前はなしてるときにそう感じました +[0:31:29] 裕之: なんというか、直感的にいきなりアイデアが降って来るので +[0:31:48] 裕之: それを忘れないうちに実行に移すように、 +[0:31:59] 裕之: 最近行動しとります +[0:32:03] 裕之: 8-) +[0:32:36] 裕之: 逆に言うと、 +[0:32:46] 裕之: あまりにも直感に頼ってるので、 +[0:32:55] narunaru: アイディアはすばらしいと思います^^後は実現してくれる人を探すだけでいいんじゃないでしょうか^^ +[0:32:59] 裕之: この前見ないに詰めが甘くなりがちです +[0:34:08] narunaru: あれくらいの矛盾は作る側が指摘するレベルです^^ +[0:34:42] narunaru: 企画側が必ずしもすべての仕様を決めなくてはならないわけじゃないので、 +[0:34:49] 裕之: そうゆうものですか +[0:34:50] narunaru: 全然OKだと思いますよ +[0:36:05] narunaru: はい、ゲームだしビジネスではないので、あのレベルで問題無いと自分は思います。後はみんなで煮詰めればいいだけなので^^ +[0:36:40] 裕之: 発生都度つめていけば、皆さんからのより面白いアイデアも盛り込めると思いますしねー^^ +[0:37:14] narunaru: そうですね^^がちがちに決まっていると、ただの作業者になってしまいますしね^^; +[0:37:47] 裕之: みんなが一番面白いと思える状態にしたいですねー +[0:38:03] 裕之: 結果的にそれが一番良いものを作ることに繋がると思ってます +[0:38:57] narunaru: そうですよね。ゲームで一番重要なのは楽しめることですよね +[0:39:20] 裕之: 作る側もプレイする側もこれに尽きますよね +[0:40:15] narunaru: はい^^ +[0:42:41] narunaru: 今、androidの開発できそうなノートを探していたんですが、 +[0:43:03] narunaru: やはりノートで縦が1000以上のものって少ないんですね¥ +[0:43:06] narunaru: - +[0:43:09] 裕之: あー +[0:43:11] 裕之: あー +[0:43:19] 裕之: 最近はWideですからねえ +[0:44:16] narunaru: ですよねー。最安でMSIのやつが6万ちょっとでFULLHDでした。 +[0:46:32] 裕之: 1ノートでFullHDもあるのがすごいですよね +[0:46:36] 裕之: 高そうですが。。。 +[0:48:01] narunaru: 確かにノートでFullHDとはすごい時代ですよね。。。でも6万はちょっと高いなー。。。スペックはすごくいいんですがねー +[0:49:13] 裕之: でも6万は安いですよ 新品ですよね? +[0:50:06] narunaru: あ、3台限りだし、ほかの店では10万近いのでもしかしたら、かなりお得なのかも +[0:50:25] narunaru: 買いですかね? +[0:50:47] 裕之: Core2Duoで良いなら、ヤフオクで2万以下でゲットできるので、 +[0:51:10] 裕之: そのスペックの差に4万出すかどうかが決め手ではないでしょうか +[0:52:34] narunaru: core2duo二万以下なんですね。。。そっちのほうがすごいですね。。。2年前は10万してたのに。。 +[0:53:03] 裕之: なので、型落ち買いしておけばいいのかなと思ってます +[0:53:26] 裕之: サーバにしてるノートは、キーが1個ないという条件で12000円でしたよ +[0:53:31] 裕之: Core2Duoです +[0:54:33] narunaru: おぉ、すごい激安^^;サーバならキー足りなくても全然問題ないですしね +[0:55:27] 裕之: そうなんですよ +[0:56:02] 裕之: WindowsXP Proもついてましたけど、不要になってしまいました^^; +[0:57:12] narunaru: 貴重なXPなだけに少しもったいない感がありますね^^ +[0:57:34] 裕之: 売れるんですけどね^^; +[0:57:42] 裕之: これだけでも。。。 +[0:57:57] 裕之: でも何かのときのためにとっておこうかと思ってます +[1:08:30] narunaru: やふおく見てるんですが、かなりの出品数があるんですねー +[1:11:18] 裕之: core2duoで絞ってもかなり出てきますよね +[1:11:47] narunaru: はい、すごい数でびっくりしました^^; +[1:15:09] 裕之: 結構、Lenovoなんがが安かった気がします +[1:17:47] narunaru: Lenovo新品でもやすいですもんねー +[1:18:39] 裕之: ですね。でも、Sシリーズでなくて、Xシリーズでも、中古だと2万弱でCore2Duoいけたと思いますよー +[1:18:53] 裕之: でも、3GBまでしか認識しない仕様もあるので要注意です +[1:19:59] narunaru: そうなんですねー、とりあえず色々悩んでみてみます。情報ありがとうございます^^ +[1:20:17] 裕之: いえいえー^^ +[1:27:14] narunaru: そろそろ眠くなって来たのでおちますねー +[1:27:23] narunaru: おやすみなさい☆ +[1:27:49] 裕之: おやすみなさいーzzz +[1:29:20] non: ひさびさ +[1:29:28] 裕之: おおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお +[1:29:29] non: もう、ねるんですね +[1:29:36] 裕之: まだおきてますよ +[1:29:42] 裕之: nonさん +[1:29:51] 裕之: 何してたんですか? +[1:29:52] non: はいー +[1:30:05] non: VISTA +[1:30:07] 裕之: 死ぬほど久しぶりではないですか^^; +[1:30:18] non: あー。ごめんなさいー +[1:30:26] 裕之: でた!! +[1:30:32] 裕之: 謝った^^ +[1:30:35] non: みんな元気? +[1:30:40] non: はいはい +[1:30:47] 裕之: 死ぬほど元気ですよ +[1:30:50] non: あやまりぐせがなおらん +[1:30:57] 裕之: なおらんですね +[1:31:07] non: いまのゲームみたいな +[1:31:13] 裕之: はい +[1:31:25] non: どこからダウンロードできますか? +[1:31:33] 裕之: ん? +[1:32:11] non: 三国志ですー最新版 +[1:32:20] 裕之: ちとお待ちを +[1:32:28] non: はーいー +[1:32:31] 裕之: http://sourceforge.jp/projects/sangokushi/downloads/50838/OpenSangoksuhi.apk +[1:32:34] 裕之: です +[1:35:20] non: これ、ダウンロード後は、えみゅれーたーでみますか? +[1:35:32] 裕之: 見れますよ +[1:35:39] 裕之: ん? +[1:35:58] 裕之: いつもは、IS01でみてます +[1:36:11] non: へー +[1:36:19] 裕之: ほー +[1:36:25] non: 実機ではどうやってみるんですか? +[1:36:37] 裕之: 実機では、SDに移して、 +[1:36:47] non: はい +[1:36:56] 裕之: ファイルマネージャー系のソフト使って、インストールですね +[1:37:36] non: ファイルマネジャー系のソフトって?具体的なソフト名を教えていただけますか? +[1:38:35] non: たっきさんは元気ですか? +[1:38:38] 裕之: 自分はアストロファイルマネージャーとか使ってます +[1:38:47] non: それは +[1:38:48] 裕之: たっきさんは多忙すぎですね +[1:39:13] non: auにプレではいっているソフト? +[1:39:32] 裕之: いや、自分で入れましたよ +[1:39:34] 裕之: というか、 +[1:39:37] 裕之: おかしい。。 +[1:39:47] 裕之: Twitterの画面が復活してる。。。 +[1:39:58] non: ん? +[1:40:07] 裕之: 謎だ。。 +[1:40:23] 裕之: 明日またコミットします +[1:40:32] 裕之: でも、オープニングはちゃんと直ってますね +[1:40:39] non: あー。 +[1:40:44] 裕之: おー。 +[1:40:45] non: みたいんだけど +[1:40:47] non: 実機がないの +[1:40:51] 裕之: でも反応しないから +[1:40:56] 裕之: あれま +[1:41:28] 裕之: 名誉ある蔵サブリーダーのnonさんが、実機がないとは。。。 +[1:41:33] non: みんな開発してますか? +[1:41:40] non: 笑 +[1:41:41] 裕之: 今してますよ +[1:41:44] non: そうですね。 +[1:41:47] 裕之: ですです +[1:41:50] non: 実機かわなきゃ +[1:41:52] 裕之: 復活です。 +[1:42:05] non: そろそろ開発 +[1:42:08] non: したい +[1:42:22] 裕之: nonさんとここで話してると、本当に完全復活は間違いないと実感できます +[1:42:45] 裕之: 10日でPJ開始1周年なんですよ +[1:42:55] non: ほんと? +[1:42:58] 裕之: nonさん +[1:42:59] non: 10日って +[1:43:02] 裕之: ちとおまちを +[1:43:04] non: 2月? +[1:43:07] non: はい +[1:43:10] 裕之: ですよ +[1:43:32] non: そっか、 +[1:43:40] 裕之: めでたいことです +[1:43:48] non: 私、自分を確信しました +[1:43:57] 裕之: ほ? +[1:44:00] non: 5年くらいまえかな? +[1:44:09] 裕之: はい +[1:44:31] non: 7年前かな?中国語は絶対ビジネスになると思い、 +[1:44:42] 裕之: 話せるんですか? +[1:44:46] non: ちょっと、勉強したら +[1:44:55] 裕之: ちょっと勉強したら? +[1:45:12] non: いま、中国語が台とうしてますよね? +[1:45:15] non: だから、 +[1:45:20] non: マーけたー +[1:45:24] 裕之: なんだ? +[1:45:26] non: の私としては +[1:45:32] non: アンドロイドはやっぱ +[1:45:36] non: いくとおもうの +[1:45:38] 裕之: あ、負けたでなく、マーケターですね +[1:45:43] non: はくぃ +[1:45:46] non: はい +[1:45:50] 裕之: http://item.rakuten.co.jp/akiba-ch/10000055/ +[1:45:56] 裕之: これ安いです +[1:46:15] 裕之: AndroidはついにiPhoneを超えましたね +[1:46:43] 裕之: http://gigazine.net/news/20110201_android_world_share_no1/ +[1:46:57] 裕之: だからすでに、nonさんの予想が当たったと思いますよ +[1:47:19] non: まだ、超えてないでしょ? +[1:47:25] 裕之: 超えました +[1:47:48] 裕之: 販売台数、シェアともに超えたッポイです +[1:47:53] non: しらなんだ +[1:47:57] 裕之: ついに全世界においてAndroidスマートフォンのシェアが1位となりました。 +[1:47:59] non: ガートナー +[1:48:02] 裕之: って書いてありますよ +[1:48:12] 裕之: お、nonさんの友達 +[1:48:25] 裕之: あ、すみません、、続けてください +[1:48:26] non: の予想をこえたんだ +[1:48:34] 裕之: んだ +[1:49:02] 裕之: EKEN M001 +[1:49:10] 裕之: 1万円ですけど +[1:49:15] 裕之: 安いですよね +[1:49:30] 裕之: 8円祭りでIS01ゲットすればよかったのにいいいい +[1:49:45] non: うーん +[1:50:05] 裕之: 私が知るだけでも三国志メンバーで4人がIS01をゲットしてます +[1:50:12] non: そんなのやってたんですか? +[1:50:16] 裕之: えええ +[1:50:18] non: へー +[1:50:27] 裕之: めっちゃく茶安いですよ +[1:50:42] 裕之: 端末0円 月額8円 ですからね +[1:50:53] non: なにそれ? +[1:50:57] 裕之: 初期費用が3千円近くかかりますけど、 +[1:51:18] 裕之: 2年使ってやっぱり3千円くらいです +[1:51:25] 裕之: 死ぬほど安い +[1:51:32] 裕之: でも、終わってしまいました +[1:51:36] non: あら +[1:51:41] non: 残念 +[1:51:55] non: いつやってたんですか? +[1:52:12] non: そういえば、みんなであったんですか? +[1:52:17] 裕之: 去年の年末までです +[1:52:48] 裕之: つい先週、おこたねこさんと、narunaruさんと、三重県亀山で遊んでました +[1:53:01] non: へー +[1:53:05] 裕之: http://gaagle.jp/gagazine/print.php?kiji_id=2991 +[1:53:29] 裕之: これ8円祭りです。今となってはどうしょもないですが。。。。3台ゲットしたつわものもいるそうで。。。 +[1:53:34] 裕之: ほー +[1:54:23] 裕之: いまはさっきのEKENか、Xperia新規が最安ですよね +[1:55:01] non: うーん +[1:55:11] non: でも、いまは、 +[1:55:12] 裕之: 全開のガスト7時間から、 +[1:55:16] 裕之: あ、はい +[1:55:49] 裕之: (記録更新してガスト8時間でした。+Bグルメツアーです) +[1:56:07] non: 全開のガスト?って +[1:56:23] 裕之: 前回、ですね^^;おこたねこさんと二人で +[1:56:39] 裕之: 去年の4月くらいかなと +[1:57:33] non: みんな仕事と両立? +[1:57:41] 裕之: そうですよ +[1:58:40] 裕之: nonさんは忙しさがドンドン加速してるっぽいですよね +[1:58:53] non: 仕事ができないからー涙 +[1:59:14] non: でも、復活したい +[1:59:16] 裕之: 仕事が出来る人は忙しいと思ってますよ +[1:59:22] 裕之: みんなに頼られるので +[1:59:28] 裕之: 復活してくださいーーー +[1:59:38] 裕之: というか、もう復活したと思ってます +[1:59:45] non: うんうん +[1:59:47] 裕之: nonさん、完全復活!! +[1:59:58] non: うらしまたろうだけど +[2:00:09] 裕之: ダイジョブダイジョブ +[2:00:12] 裕之: なぜなら、 +[2:00:23] 裕之: ゲームを1から作り直すことに決めたからです +[2:00:31] non: へー +[2:00:35] 裕之: ほー +[2:00:39] non: それもいいですね +[2:01:32] non: かきかけて? +[2:02:13] 裕之: かき? +[2:02:40] *** 裕之がOpen三国志v1.0仕様書.ppt,...を送信しました *** +[2:02:48] non: いえ、いま、なにかをいおうとしてたみたいだったから +[2:02:50] 裕之: こんな感じにする予定です。 +[2:03:08] 裕之: あ、途中でPCがプチフリーズしたので。。。 +[2:03:27] *** Kentaroが退席しました *** +[2:04:34] non: 何枚もあるので、よく、よんでみます +[2:04:42] 裕之: 何枚もありますからね +[2:05:08] 裕之: 移動のところとか、通信方式について今検証したりし始めているところです +[2:05:15] non: へー +[2:05:24] non: よく、よんでみます +[2:05:34] 裕之: まえよりもまた数段難易度が上がってしまいました。 +[2:05:41] non: あら +[2:05:48] non: たっきさんは? +[2:05:50] 裕之: でもつわもの揃いなので問題無しですね +[2:06:00] non: なんていってます? +[2:06:07] 裕之: たっきさんは、UIの仕様を検討中です +[2:06:21] 裕之: でも多忙すぎて手をつけれてないので、 +[2:06:29] non: おこたねこさんは? +[2:06:57] 裕之: おこたねこさんは、通信の検証プログラム作成中でしゅしてます +[2:07:04] non: ほー +[2:07:09] 裕之: でしゅしてます +[2:07:14] non: ISTさんは? +[2:07:43] 裕之: ちょくちょく連絡とってマスが、ちょっとこれまた忙しすぎて +[2:07:53] 裕之: いま活動休止といったところでしょうか。 +[2:08:01] non: そっか +[2:08:15] non: 彼、有能なのに +[2:08:20] 裕之: でも、nonさんが絡んでくれば、みんな意地でも戻ってくると思いますよ +[2:08:34] non: うけるー +[2:08:34] 裕之: 皆さん有能なので忙しいんですよ +[2:08:36] non: 爆笑 +[2:08:51] 裕之: で、このとおり、私だけ、リアル仕事の方が、 +[2:08:55] 裕之: 暇です!!! +[2:09:00] 裕之: 毎日定時!!! +[2:09:06] non: いいな +[2:09:21] 裕之: 最高につまらない仕事を今繰り広げてますよ +[2:09:31] non: 爆笑 +[2:09:45] 裕之: 機械を触ってなさ過ぎて、機が狂いそうです +[2:09:49] 裕之: 気が +[2:09:52] non: え? +[2:09:52] 裕之: でしゅ +[2:10:05] non: ITじゃないの? +[2:10:15] 裕之: 微妙な線ですね +[2:10:35] 裕之: 資料ばっかり作らされて半年を越えました。 +[2:10:47] non: そうなんだー +[2:11:11] 裕之: 忙しい皆さんがうらやましく思えますね +[2:11:30] 裕之: みんな華々しい活躍をしてるんだろうなーって思うわけです +[2:11:44] non: そんなことないですよ +[2:11:51] non: すくなくとも、のんは +[2:12:16] non: ゲームで華々しくデビューしましょー +[2:12:29] 裕之: その意気ですねー +[2:12:43] 裕之: それこそサブリーダでーすねー +[2:13:21] 裕之: 冗談抜きで、nonさんの復活はでかいですよ +[2:13:28] non: おおげさ +[2:13:33] non: なんだから +[2:13:33] 裕之: まじです +[2:13:41] 裕之: 暇人が言うのですから間違いないです +[2:13:44] non: そんなことぜんぜんない +[2:13:56] 裕之: 試してみればわかります +[2:13:58] non: うーん?よくわからない理屈 +[2:14:02] non: 笑 +[2:14:40] non: こんなに遅くにきたのに、ありがとうです。もう、おそいので +[2:14:46] 裕之: nonさんが相変わらず紅一点というのも少なからずあかもしれませんけど、こうゆうノリがひじょーーーに重要なんですよ +[2:14:57] non: 笑 +[2:15:02] non: ところで +[2:15:06] 裕之: はい +[2:15:12] non: メールにしたんですよね? +[2:15:17] 裕之: そですよ +[2:15:27] non: スカイプはこないんでしょう? +[2:15:30] 裕之: こっちは、こんな感じのば専用です +[2:15:31] non: みんな +[2:15:34] 裕之: 来ますよ +[2:15:42] non: ふーん +[2:15:45] 裕之: 昨日も盛り上がっちゃって朝3時まで^^ +[2:15:53] non: へー +[2:16:04] non: もう、2時すぎ +[2:16:10] 裕之: 時間合わせて会議ってのが、なかなか集まりにくいと思って、 +[2:16:19] 裕之: MLにしようとおもって変更しました。 +[2:16:31] 裕之: 2時過ぎですね +[2:16:37] 裕之: ビール飲んでますか? +[2:17:03] non: なるほど。今日は、ねましょう。資料よんでおきます。少し、飲んでます +[2:17:12] 裕之: さすが^^ +[2:17:19] 裕之: ではまたきてくださいねー +[2:17:21] non: 今日は、ありがとう +[2:17:27] non: はい。もち +[2:17:29] 裕之: 絶対に 8-) +[2:17:31] non: きますよ +[2:17:35] non: でも、とにかく +[2:17:49] non: まずは、最新の +[2:17:52] 裕之: 相変わらず毎晩ログインしてますので +[2:17:55] non: APKをみないと +[2:17:59] non: はいはい +[2:18:17] non: イメージわかない +[2:18:17] 裕之: 最新のは塩漬けになりますよ +[2:18:28] 裕之: 全然違うゲームになりますから +[2:18:51] non: さっきのAPKはなし? +[2:18:58] 裕之: そです +[2:19:02] non: あ、 +[2:19:04] non: そうなんだ +[2:19:07] non: では、 +[2:19:20] non: 資料が最新? +[2:19:24] 裕之: 資料を見て、わかんないトコ、こうした方がいいトコあれば、 +[2:19:27] 裕之: 最新です +[2:19:29] non: はい +[2:19:40] 裕之: MLでもSkypeでも連絡してください +[2:19:46] non: りょかいー +[2:19:58] non: では、明日、よませていただきます +[2:20:08] non: では、今日は、ねますねー +[2:20:12] 裕之: はいー +[2:20:14] non: おやすみなさいー +[2:20:22] non: リーダー +[2:20:23] 裕之: お休みなさい \ No newline at end of file From sangokushi-svn @ lists.sourceforge.jp Mon Feb 7 01:15:19 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Mon, 07 Feb 2011 01:15:19 +0900 Subject: [Sangokushi-svn] [SVN_Comitted] [489] 20110206_Skype.txt Message-ID: <1297008919.208307.13317.nullmailer@users.sourceforge.jp> Revision: 489 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=489 Author: hryksbt Date: 2011-02-07 01:15:19 +0900 (Mon, 07 Feb 2011) Log Message: ----------- 20110206_Skype.txt ・移動に関する実証プログラムについて Added Paths: ----------- trunk/IRC_ChatLog/20110206_Skype.txt Added: trunk/IRC_ChatLog/20110206_Skype.txt =================================================================== --- trunk/IRC_ChatLog/20110206_Skype.txt (rev 0) +++ trunk/IRC_ChatLog/20110206_Skype.txt 2011-02-06 16:15:19 UTC (rev 489) @@ -0,0 +1,56 @@ +?[2011/02/06 23:30:07] 裕之: 実証プログラムの方は、Gitのリポジトリにコミットして頂ければと思います。 +[2011/02/06 23:31:00] narunaru: でも設計と実装がかなりいけてないです^^;次は空いてる時間にソケットの実装を行ってみます。 +[2011/02/06 23:31:07] narunaru: 出来たらアップしますね- +[0:40:26] narunaru: そういえば、話は変わりますが、チケット見ました +[0:41:33] narunaru: 内容を確認した感じ +[0:41:38] 裕之: はい +[0:41:59] narunaru: 当たり判定の箇所とかも検証してみたほうが良いのでしょうか? +[0:42:05] 裕之: 超ざっくりなチケットでしたが^^; +[0:42:20] 裕之: 今イメージしてるのはどのあたりですか??? +[0:43:06] 裕之: とりあえず、命令を出す⇒移動距離に応じてsleep⇒到着 +[0:43:16] 裕之: ここまでって感じでしょうか? +[0:44:48] narunaru: あ、どちらかというと半オートマチックと手動バージョン、どっちの方法をとっても上手く動作するかを検証しようと思っていたのですが、よく考えると +[0:45:03] narunaru: おこたねこさんのチケットとかぶってる気がしてるので、 +[0:45:34] narunaru: ひろゆきさんが今日出してくれた内容のほうがいいのかなっておもってたところです。 +[0:45:39] 裕之: あー、でもおこたねこさんは、通信のところだけ、と思ってます +[0:46:12] 裕之: 全リアルの方は、特に矛盾なくいけると思うので、 +[0:46:22] 裕之: 怪しい半オートの方が気になりますよね +[0:46:51] 裕之: そこで、AとB2つのスレッドが動き回って、 +[0:47:04] 裕之: 当たり判定テストなんかが出来るといいのではないでしょうか +[0:47:06] 裕之: なので、 +[0:47:21] 裕之: Androidクライアント側だけでもいけるような気もしますし、 +[0:47:38] 裕之: 別に、Androidでなくて、PC上でも何でもいいですね +[0:47:51] 裕之: 得意の環境で試してもらえればいいと思います +[0:49:11] narunaru: あ、そうなんですね^^;てっきりandroidでの通信も含めての話だと思っていたので、クライアント側はandroid必須かと思ってました +[0:49:20] narunaru: では違う環境で試してみます^^ +[0:49:55] 裕之: そうすると、おこたねこさんのプログラムと並行でいい感じに進むのかなと思います^^ +[0:50:35] 裕之: で、ちゃんと当たれば成功って感じですかねー +[0:50:52] 裕之: お互い当たったことがわからないといけないですね +[0:52:26] narunaru: 了解です^^ちなみにあたり判定はクライアント側で計算する方式で検証したほうがいいんでしょうか? +[0:52:46] 裕之: おお、それは非常に重要な問題ですね +[0:53:14] narunaru: 一応いまの前提だとサーバーはただの中継サーバなので +[0:53:36] 裕之: クライアント同士ですね +[0:53:45] 裕之: でも、まだはっきりとはわかりませんです +[0:54:05] narunaru: 了解です^^ +[0:54:22] 裕之: 本番実装の際にまた詰めないといけないですね +[0:54:39] 裕之: あともう一つ欲を出すとしたらですけど、 +[0:54:52] 裕之: 今のは2スレッドともいどうですよね +[0:54:56] 裕之: もう一つ、 +[0:55:13] 裕之: 片方は移動、他方は攻撃、をシミュレートしておいた方がいいと思います +[0:55:30] 裕之: ちゃんと攻撃が当たれば成功ですね +[0:55:59] 裕之: まあ、まずはABとも移動に専念しましょうか^^; +[0:56:29] narunaru: はい、上記は少し難しそうなので簡単な移動の検証が出来てからにします^^; +[0:56:48] 裕之: はい、お願いします。 +[0:57:10] 裕之: 後者の方は、もしかしたら、doiさんにお願いしてるかもしれません +[0:57:20] narunaru: 了解です^^ +[0:57:30] 裕之: doiさん見てますか^??? +[0:57:57] 裕之: doiさんに連絡してみますね +[0:58:10] narunaru: はい、お願いしますー +[0:58:36] 裕之: ささ、そろそろzzzでしょうか +[0:58:54] narunaru: そうですねーそろそろ寝ます +[0:58:54] 裕之: また明日も遅いでしょうから +[0:59:00] 裕之: 寝ましょう +[0:59:04] narunaru: はい、おやすみなさい☆ +[0:59:05] 裕之: ではではまたー +[0:59:10] 裕之: 頑張ってくださいー +[0:59:17] 裕之: &お休みなさいー \ No newline at end of file From sangokushi-svn @ lists.sourceforge.jp Wed Feb 9 00:27:19 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Wed, 09 Feb 2011 00:27:19 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzQ5MF0gIOODuw==?= =?utf-8?b?6JS177yI44Kv44Op44Kk44Ki44Oz44OI77yJ44Gu44OQ44O844K444On44Oz?= =?utf-8?b?44OB44Kn44OD44Kv5qmf6IO944KS6L+96KiY?= Message-ID: <1297178839.436290.28251.nullmailer@users.sourceforge.jp> Revision: 490 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=490 Author: hryksbt Date: 2011-02-09 00:27:19 +0900 (Wed, 09 Feb 2011) Log Message: ----------- ・蔵(クライアント)のバージョンチェック機能を追記 ・鯖(サーバー)環境を修正 Modified Paths: -------------- trunk/Documents/仕様書/Open三国志v1.0仕様書.pdf trunk/Documents/仕様書/Open三国志v1.0仕様書.ppt Modified: trunk/Documents/仕様書/Open三国志v1.0仕様書.pdf =================================================================== (Binary files differ) Modified: trunk/Documents/仕様書/Open三国志v1.0仕様書.ppt =================================================================== (Binary files differ) From sangokushi-svn @ lists.sourceforge.jp Thu Feb 17 21:53:44 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Thu, 17 Feb 2011 21:53:44 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzQ5MV0gIOS4uw==?= =?utf-8?b?44Gr6YCa5L+h44Gr44Gu5LuV5qeY44Gk44GE44Gm6K2w6KuW?= Message-ID: <1297947224.393509.9204.nullmailer@users.sourceforge.jp> Revision: 491 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=491 Author: hryksbt Date: 2011-02-17 21:53:43 +0900 (Thu, 17 Feb 2011) Log Message: ----------- 主に通信にの仕様ついて議論 Added Paths: ----------- trunk/IRC_ChatLog/20110216_Skype.txt Added: trunk/IRC_ChatLog/20110216_Skype.txt =================================================================== --- trunk/IRC_ChatLog/20110216_Skype.txt (rev 0) +++ trunk/IRC_ChatLog/20110216_Skype.txt 2011-02-17 12:53:43 UTC (rev 491) @@ -0,0 +1,441 @@ +?[2011/02/16 22:25:38] 裕之: こんばんはー +[2011/02/16 22:25:48] 裕之: メールどうもでした!! +[2011/02/16 22:26:14] 裕之: doiさん宛に返信をかきますね +[2011/02/16 22:27:00] narunaru: いえいえ、よこやり的な感じで失礼しました。。。 +[2011/02/16 22:27:22] 裕之: 今narunaruさんのメールに目を通してたトコです! +[2011/02/16 22:27:45] narunaru: メール送信してしまった後になんなんですが、サーバからの +[2011/02/16 22:28:32] narunaru: ブロードキャストって、1クライアントから通知されたタイミングでブロードキャストするわけではないですよね? +[2011/02/16 22:28:59] narunaru: ある一定間隔でサーバから情報がブロードキャストされるんですよね? +[2011/02/16 22:29:18] 裕之: 仕様を考えると、1クライアントが敵味方全員にブロードキャストするのかと思ってました +[2011/02/16 22:29:29] 裕之: これぞリアルタイム +[2011/02/16 22:29:33] 裕之: 破綻してますかね +[2011/02/16 22:29:36] narunaru: あれ、そうでしったけ? +[2011/02/16 22:29:43] doi: こんばんは。 +[2011/02/16 22:29:49] 裕之: こんばんはー^^ +[2011/02/16 22:29:54] narunaru: こんばんわー +[2011/02/16 22:30:05] narunaru: 先ほどよこからメールして失礼しました。。。 +[2011/02/16 22:30:23] 裕之: いえいえじゃんじゃん入って活発に進めていきましょう! +[2011/02/16 22:30:26] doi: もともとは僕も横やりだったので・・・。 +[2011/02/16 22:30:27] 裕之: 大歓迎です^^ +[2011/02/16 22:30:38] doi: ありがとうございます。 +[2011/02/16 22:30:51] 裕之: 私もかならずどこかで誰かによこやりをいれるとここで宣言します。 +[2011/02/16 22:31:03] narunaru: そして、私はどうやら仕様の誤解釈をしていたようです。。。 +[2011/02/16 22:31:22] 裕之: いえいえ、仕様自体固まってないですから +[2011/02/16 22:31:51] 裕之: 自由な発想でいきましょう +[2011/02/16 22:32:26] narunaru: 上の話に戻るんですが、1クライアントから全員にブロードキャストする場合、サーバからのブロードキャストは何に使用するんでしょうか? +[2011/02/16 22:33:02] 裕之: 1プレイヤーの移動の情報ですね +[2011/02/16 22:33:17] 裕之: 攻撃の情報は、1対1で基本問題ないと思います +[2011/02/16 22:35:41] narunaru: すいません、あんまり理解出来ていないのですが、サーバからのブロードキャストに1プレイヤーの移動情報が通知される場合、他のクライアントからのブロードキャストは何に使用するんでしょうか?そもそもAクライアントからBクライアントへどのようにブロードキャストするんでしょうか? +[2011/02/16 22:36:06] narunaru: サーバを中継でしょうか? +[2011/02/16 22:36:14] 裕之: サーバ中継です +[2011/02/16 22:36:22] 裕之: 多分これしかないかなと思います +[2011/02/16 22:37:38] narunaru: ようやく理解しました。クライアントからクライアントへのブロードキャストというのは実際には存在しなく、すべてサーバからのブロードキャストってことですよね? +[2011/02/16 22:37:46] 裕之: ですです +[2011/02/16 22:38:00] 裕之: なので、実際にブロードキャストするのはサーバです +[2011/02/16 22:38:34] narunaru: で、ブロードキャストするのが1クライアントからのメッセージをサーバが受信したタイミングということでしょうか? +[2011/02/16 22:38:46] 裕之: そう思ってます +[2011/02/16 22:39:16] narunaru: そうでしたか。。。多分土肥さんが言っていたように破綻すると思います +[2011/02/16 22:39:20] narunaru: 。。 +[2011/02/16 22:39:38] 裕之: 現在のインフラでは適いませんかね^^; +[2011/02/16 22:41:21] 裕之: それ専用のサーバがずらずらとフロントで待ち受けることをイメージしてました。 +[2011/02/16 22:42:05] narunaru: 土肥さんのメールにも書いてありましたが、100対100の場合で1秒間に全員がなんらからの処理を行った場合、理論上クライアント端末は1秒間に199回のメッセージを受信することになると思います。なので現実的ではないきがします。。。。 +[2011/02/16 22:42:54] 裕之: そこで、半オートにすると、少なくとも1秒に一回を全員が、って事にはならないかなと思ったわけです +[2011/02/16 22:43:29] 裕之: あとは、 +[2011/02/16 22:43:43] narunaru: 半オートにしても開始地点(半オートでなんらかの処理を実行したタイミング)は全員違うため、 +[2011/02/16 22:44:05] 裕之: ゲームなので、厳密性は問われない仕様でパケットが落ちたりしても問題ないのかなと +[2011/02/16 22:44:09] narunaru: 上記のような現象が発生する可能性は十分にあると思います。。。 +[2011/02/16 22:44:45] doi: 裕之さん方式だとパケット落ちるとまずいです。 +[2011/02/16 22:45:08] doi: 半オートの内容はすべてのクライアントに必ず送信されないと問題になります。 +[2011/02/16 22:45:27] doi: 結果だけなら、ある時点での情報あ落ちても、次の時点で辻褄があえば問題ないのですが。 +[2011/02/16 22:46:25] 裕之: 見た目上、近くにいないはずの敵が、攻撃をしてくるってな事にはなりますよね +[2011/02/16 22:47:12] 裕之: 逆に、攻撃を与えてるはずなのに、相手が妙にピンピンしてるとか +[2011/02/16 22:49:25] doi: そこまで、パケットが落ち続ける前に、エラーにしないといけないでしょうね。 +[2011/02/16 22:50:42] 裕之: パフォーマンス的にボトルネックになるのは、端末のCPUとなりますか?? +[2011/02/16 22:52:49] narunaru: 今のサーバの仕様だと、端末の電池な気がします。 +[2011/02/16 22:53:31] 裕之: モバイルならではですね +[2011/02/16 22:53:54] 裕之: モバイルなので、TCP使っても通信は不安定です +[2011/02/16 22:56:33] narunaru: TCPって全く使わないんでしたっけ? +[2011/02/16 22:56:53] 裕之: 今の機能の部分では使わないと考えていて、 +[2011/02/16 22:57:41] 裕之: その他の、ユーザ情報とかの比較的静的なやりとりに使用すると思ってます +[2011/02/16 22:58:59] narunaru: う?ん。。。どうやら私はかなり誤認しているようです。。。私が思っていた仕様は以下な感じでした。 +[2011/02/16 22:59:39] 裕之: 前おこたねこさんと話してたときはこんな感じだったと思いますよ +[2011/02/16 22:59:52] narunaru: ・TCPはクライアントからのコマンドの発行(攻撃したとか)に使用する。 +[2011/02/16 23:02:17] narunaru: ・UDPは自分以外のプレイヤー情報を通知する。ただしサーバでは各クライアントから受けた通知の計算等は行わず、そのままクライアントへ通知する。UDPの発行タイミングは携帯のパフォーマンスから判断する。 +[2011/02/16 23:02:31] narunaru: だと思ってました。。。 +[2011/02/16 23:02:48] narunaru: 大きく勘違いしていました。。。 +[2011/02/16 23:04:06] 裕之: 認識に齟齬があっても、どちらか実現できる方法があれば、それがいいと思います +[2011/02/16 23:04:57] 裕之: そして、100対100クラスになって来ると、ポーリング方式でないとどうしても無理ということに間違いなさそうですかねー +[2011/02/16 23:05:40] doi: ポーリングかどうかというよりも、計算を誰がするかではないでしょうか。 +[2011/02/16 23:06:16] 裕之: クライアントの方が処理が重くなるなら、スケール可能なサーバ側にどんどん処理を持たせればいいと思ってます +[2011/02/16 23:08:36] doi: サーバ側で計算をするとすると、クライアントがサーバソケットを開いておくメリットがあまりないと思うのですが、いかがでしょうか? +[2011/02/16 23:08:48] 裕之: その通りだと思います +[2011/02/16 23:09:41] 裕之: 今のテクノロジーの現実を見て考えなければいけないと思うので、 +[2011/02/16 23:10:23] 裕之: いずれ目指すものを実現できるものが整ったときにいつの日かきっと。。。でOKだと思います +[2011/02/16 23:10:52] 裕之: LTEとか、クアッドコアAndroidとか出始めてきてますからね +[2011/02/16 23:11:14] 裕之: まだ若干時期尚早といったところでしょうか。 +[2011/02/16 23:13:42] 裕之: 一時は、クライアントで待ち受ける使用にしておいた方が、電池的に持ちがいいと考えて、今の方式に至ってます +[2011/02/16 23:16:08] narunaru: 多分自分が今受け持っている作業もおこたねこさんが受け持っている作業も通信方式と計算処理をどちらで行うかをある程度決めておかないと進めることが出来ないと思われるのですが、どうしましょうか? +[2011/02/16 23:16:32] 裕之: 決断は早い方がいいですね +[2011/02/16 23:17:41] 裕之: おこたねこさんが作成されているプログラムを見て判断する。というまでもなく、今の使用はやめておいた方がいいだろうというのが、今日の結論ということで良いですよね??? +[2011/02/16 23:17:51] 裕之: 使用⇒仕様 +[2011/02/16 23:18:08] narunaru: 100対100を実現したいなら難しいと思います。 +[2011/02/16 23:18:19] narunaru: 逆に人数がすくないなら可能かもしれません。 +[2011/02/16 23:18:58] 裕之: ちょっと話し変わりますが、Skypeが、画像つきのグループチャットをリリースしましたよね +[2011/02/16 23:19:16] 裕之: PC版ですけど。 +[2011/02/16 23:19:37] 裕之: それくらいのことが可能なら、、という期待はよしておいた方がいいでしょうか。 +[2011/02/16 23:19:55] narunaru: 画像=動画ですか? +[2011/02/16 23:20:03] 裕之: です^^; +[2011/02/16 23:20:06] 裕之: 動画です。 +[2011/02/16 23:21:40] narunaru: お、了解です。創造になりますが、フレームレートが15フレームとか位なら1秒間に15回程度の通信だと思われるので、100対100よりはるかにすくないと思います。 +[2011/02/16 23:22:11] 裕之: いままた天からアイデアが降ってきました。 +[2011/02/16 23:22:26] narunaru: お、きましたか^^ +[2011/02/16 23:22:30] 裕之: 来ました!! +[2011/02/16 23:22:38] 裕之: 人数を減らします +[2011/02/16 23:22:42] 裕之: で、 +[2011/02/16 23:23:11] 裕之: 世の中の進歩に伴って、入室可能な人数を増やしていく +[2011/02/16 23:23:18] 裕之: これでいかがでしょうか!? +[2011/02/16 23:23:47] 裕之: 3対3でも10対10でも、そんなところからスタートすればいいのかなと。 +[2011/02/16 23:27:37] narunaru: それもありだと思います。が一応自分の考えも書いておくと、TVが確か30フレームでよく出来たゲームでも60フレーム程度だったと思うので、どちらかというと1秒間のブロードキャスト回数を決めてしまったほうが良いように感じます。 +[2011/02/16 23:27:49] narunaru: あくまで個人的な考えですが。。。 +[2011/02/16 23:28:36] 裕之: 30フレームを落とすと、ぎこちなくなりますかねえ +[2011/02/16 23:29:07] 裕之: Skypeくらいって考えればいいんですね +[2011/02/16 23:29:17] 裕之: ぎこちないといえば季語地ないですね +[2011/02/16 23:29:30] 裕之: ん 漢字が^^; +[2011/02/16 23:29:40] narunaru: グラフィックパターンというかリソースは30フレームに耐えられるくらいあるんでしたっけ? +[2011/02/16 23:30:16] 裕之: 全然わかりません! +[2011/02/16 23:30:28] 裕之: doi先生ご存知でしょうか?? +[2011/02/16 23:31:32] 裕之: でもyoutubeは滑らかに映ってるっぽいので、30位はあるんじゃないでしょうか +[2011/02/16 23:31:52] narunaru: あ、難しい質問をしているわけではなく、1秒を30でわった場合、1秒間に行われる動作も30パターンあるはずで、それを変えられるだけのグラフィックのパターンが用意されているんでしたっけ?という質問でした。 +[2011/02/16 23:32:10] narunaru: 三国志に +[2011/02/16 23:32:18] 裕之: 三国志に!? +[2011/02/16 23:32:50] narunaru: あれ、30フレームでぎこちなくないかを聞いてたんじゃなかったんですか!? +[2011/02/16 23:33:42] 裕之: 30フレームはテレビくらいということなので、ぎこちないということはないと思ってますよ +[2011/02/16 23:34:26] 裕之: で、youtubuも滑らかに映ってるので、それくらいの仕様には耐えられるかな、と思ってます +[2011/02/16 23:35:00] 裕之: キャラの動きの話ですか?? +[2011/02/16 23:35:24] doi: ごめんなさい。一度、落ちます。 +[2011/02/16 23:35:33] 裕之: お、お疲れ様ですー +[2011/02/16 23:35:40] narunaru: お疲れ様ですー +[2011/02/16 23:36:04] 裕之: やっと意味がつかめました^^;多分;; +[2011/02/16 23:36:06] narunaru: あ、23:28分の書き込みを質問だと勘違いしました。 +[2011/02/16 23:36:11] narunaru: ^^; +[2011/02/16 23:36:57] 裕之: グラフィックは、考えて無かったです!! +[2011/02/16 23:39:16] narunaru: もし30フレーム毎に通信して、そのつどプレイヤーの見た目を変えたいなら、それ相応のパターン数のグラフィックが必要な気がします。 +[2011/02/16 23:39:23] *** 裕之がグラフィック例.gif,...を送信しました *** +[2011/02/16 23:39:31] 裕之: こんなんで考えてました。 +[2011/02/16 23:40:02] 裕之: 30もいらなくて、2つですね。これをピコピコ繰り返すって感じで +[2011/02/16 23:40:42] 裕之: 攻撃のときは槍を突き刺した画像が1枚 +[2011/02/16 23:40:48] 裕之: 移動に2つ +[2011/02/16 23:41:06] 裕之: あとは計略用に火が1枚 +[2011/02/16 23:41:09] 裕之: などなど +[2011/02/16 23:41:20] 裕之: 火は2枚くらいあれば良いかな +[2011/02/16 23:41:24] 裕之: などなど +[2011/02/16 23:41:39] 裕之: 1秒でアクションを表現するなら、 +[2011/02/16 23:42:10] 裕之: 前半のp0.5秒を小さい火、後半0.5秒を大きい火 +[2011/02/16 23:42:16] 裕之: こんくらいでいいと思いますよ +[2011/02/16 23:43:22] 裕之: このゲームは、そこにこだわりを設けるよりも、大人数が一つのフィールドで戦う事に重点が置かれていれば良いのかと思います +[2011/02/16 23:44:31] narunaru: 了解です。またまた意味を読み違えていたようです^^; +[2011/02/16 23:44:35] 裕之: 30枚画像を用意するのが面倒という点と、 +[2011/02/16 23:45:18] 裕之: 端末のリソースそこで使う意味もないかなあと思います。 +[2011/02/16 23:46:24] narunaru: はい、ぎこちないって書かれていたんで、そもそもグラッフィクがその枚数分あるのかが気になってしまったので質問しました^^; +[2011/02/16 23:47:15] 裕之: はい。グラフィックはこれからどっかから調達です。 +[2011/02/16 23:47:39] 裕之: [2011年2月16日 23:27] narunaru: + +<<< が一応自分の考えも書いておくと、TVが確か30フレームでよく出来たゲームでも60フレーム程度だったと思うので、どちらかというと1秒間のブロードキャスト回数を決めてしまったほうが良いように感じます。 +[2011/02/16 23:47:55] 裕之: これは今はあまり気にしなくて良いですか??? +[2011/02/16 23:48:14] 裕之: グラフィックはしょぼく行く方針で考えてましたので。 +[2011/02/16 23:48:48] narunaru: あ、すいません。そこからこの話になったんですね。私が言いたかったのは +[2011/02/16 23:49:44] narunaru: ブロードキャストの回数を人数でクライアントの人数できめるより、きめうちでいいのではないかという提案でした。そしてその回数は上記のような感じですという例です。 +[2011/02/16 23:50:19] narunaru: すいません。ブロードキャストの回数をクライアントの人数できめるより、です。 +[2011/02/16 23:51:06] 裕之: そちらの方がよさげですか??? +[2011/02/16 23:51:19] 裕之: 私は逆に人数で調整かなと思ってました。 +[2011/02/16 23:52:29] narunaru: 自分は決めうちでもいいのかなって思いました。たとえば、人数でやる場合ですが、 +[2011/02/16 23:53:25] narunaru: 人数が多くなると1秒間にブロードキャストメッセージを受ける回数がおおくなります。そしてブロードキャストメッセージを受信した場合、クライアントが +[2011/02/16 23:54:33] narunaru: なんらかの動作をした可能性があるため、必ずクライアント端末の描画処理がはしると考えられ、人数が増えるとフレームレートがあがることになるのではないかと思われます。 +[2011/02/16 23:55:55] 裕之: そうです。人数が多くなるとブロードキャスト回数が多くなるので、 +[2011/02/16 23:56:11] 裕之: 人数で調製するといい発想です +[2011/02/16 23:56:36] 裕之: この方が、あとでの変更が楽なのかと思ったわけです +[2011/02/16 23:57:04] 裕之: 基本的のほとんど仕様を変えずに、おそらく鯖側で人数制限のパラメーターをいじるだけになるかと思いますので。 +[2011/02/16 23:57:36] 裕之: とはいえ、200フレームとかどうなんでしょう +[2011/02/16 23:57:52] 裕之: いつの未来に実現可能になるんでしょうね +[2011/02/16 23:57:58] 裕之: ハイブリッドにしましょうか。 +[2011/02/16 23:58:13] 裕之: 人数を減らすのと、フレーム回数制限 +[0:00:15] narunaru: 多分、両方は結局、端末もサーバも変更しなくてはならなくなるのでどちらかにした方がいい気がします。 +[0:00:50] 裕之: いずれにしても、人数無制限というのは近い将来では適わないかと思いません?? +[0:01:07] 裕之: ということは、鯖には常に制限はあるはずです +[0:01:24] 裕之: そして、100対100というのも実際まだ根拠はないです +[0:01:44] 裕之: どちらにしてもこの数値は調製するものだと考えてました。 +[0:01:50] 裕之: 調整 +[0:01:58] 裕之: ということは?? +[0:02:38] narunaru: こっちが聞きたい感じです^^; +[0:03:27] 裕之: ハイブリッドがいい気がします。 +[0:03:39] 裕之: フレーム数も限界ってものがあると思うので、 +[0:03:48] 裕之: 調整する必要があると思います +[0:03:52] 裕之: ですが、 +[0:04:06] 裕之: フレーム数を調整するのって難しくないですか? +[0:04:57] narunaru: はい、難しいと思います。なのでソケットでUDPを受信したタイミングにすれば良いと思いました。 +[0:05:25] narunaru: 1秒間に何回も受信できるとこまるんですが。。。 +[0:05:59] 裕之: でもCPUの数が増えてくると話が変わってきますよね?? +[0:06:54] 裕之: 今は大半が1coreですけど先に話た様に、4coreが発表されてるくらいですから, +[0:07:21] 裕之: ムーアの法則にしたがって、1年半もすれば、かなりいけるようになってるのではないでしょうか。 +[0:07:24] narunaru: コアが増えると受信できる回数が増えるんですか?? +[0:07:55] narunaru: もしかして受信用のスレッドとかプロセスを何個も立ち上げるんですかね? +[0:08:13] 裕之: そうなりますね(また難しそうな^^;) +[0:09:18] narunaru: その情報を画面に反映する場合、結局待ち合わせが発生すると思われます。。。 +[0:11:28] narunaru: それともバッファリング的な事をしたい感じでしょうか?? +[0:12:38] 裕之: 来るコマンドを分散して処理できないかと考えてみました。 +[0:12:43] 裕之: 完全な思い付きです。 +[0:12:54] 裕之: 並列プログラミング +[0:13:03] 裕之: こんなので何とかならないのかなと +[0:13:23] narunaru: あー、でも確かに画面に反映しないような情報なら出来るのかもしれません。 +[0:13:30] 裕之: そこまでくるともはや私の知識の限界点 +[0:15:53] 裕之: 三国志PJを始めるまで開発に関する知識はほぼ皆無だったのが、自分なりに急成長したっぽいと思ってみたりする今日この頃です。 +[0:16:42] 裕之: ソケットを4つ用意して、そのフロントに、バーチャルのソケットがいて +[0:17:10] 裕之: こいつが4つのソケットに処理を割り振るというロードバランサ的な動きをクライアントで +[0:17:19] 裕之: おおおお +[0:17:23] たっき: こんばんは.. +[0:17:24] 裕之: たっきさんではないですか!! +[0:17:28] 裕之: こんばんは^^ +[0:17:34] narunaru: こんばんわ^^ +[0:17:44] たっき: ログと昼のメールを見てましたが +[0:17:48] 裕之: はい +[0:18:03] たっき: まずはシンプルなアルゴリズムで作るのがいいと思います +[0:18:20] たっき: 完成しないと何も始まらないし +[0:18:50] たっき: それと、昼問題になってたポーリング等の話は +[0:19:38] たっき: ソケット通信を知らない人が多くてHTTPのアクセスならって話で今の仕様になっていたかと +[0:20:47] たっき: 2.0意向でブロードキャストも使えるようになったからいろいろと通信まわりは変更できるとは思いますが +[0:20:56] たっき: 意向=以降 +[0:21:08] 裕之: どちらかというと、コンテストに間に合わせなければいけないけど時間がなくて、ソケット通信はやめたという経緯かと思ってました +[0:21:35] たっき: いや、ソケットをぐりぐり使ったことがないという話でした +[0:21:46] 裕之: あ、それは確かにそうですね +[0:22:26] 裕之: たっきさんはソケット派で、会議に臨んでたのも覚えてます +[0:23:31] たっき: それと当たり判定はサーバー側でやるべきだと思います +[0:24:27] 裕之: 当たり判定が入るということは、リアルタイム性のある仕様ということですね? +[0:24:44] narunaru: お、サーバ側ですか?全マスチェックしなくてはならなくなりませんかね? +[0:24:59] たっき: いや、もともとの仕様でも当たり判定は必須ですよね +[0:25:26] たっき: 全マスチェックは必要ないかと +[0:25:57] たっき: 敵味方しかいないので片側に対して近傍マスに敵がいないかを判定するだけかと +[0:27:04] narunaru: 自分のチームの人との重なりとかも判定が必要では? +[0:27:06] たっき: マスの数に対してキャラの数が少ない場合はリストに対して近傍判定するだけなのでそんなに計算量発生しません +[0:28:22] たっき: 完全に重なるのを判定するのは一番簡単かと +[0:28:33] たっき: そもそも移動時にマスを指定するので +[0:30:19] narunaru: 目的地を択して目的地につくまでの途中のかさなりは無視して突き進む感じでしょうか? +[0:30:44] narunaru: 択 = 選択です。 +[0:30:51] たっき: 仕様ではそうなっていたかと +[0:31:38] たっき: 私はnarunaruさんの言っているように途中で交差した場合はそこで戦闘が発生するのがいいと思いますが +[0:32:34] 裕之: その部分は複雑なので今は一旦突き進む、でいいということですね?? +[0:32:39] たっき: ただ、最初からあれもこれもと望んで物がなかなかできなくなるのもモチベーションが上がらないので +[0:32:57] たっき: まずはシンプルなルールで行くのがいいかと思っています +[0:33:42] たっき: リーダー、今週の週刊アスキー読みましたか? +[0:33:58] 裕之: いえ、読んでないです。。 +[0:34:11] たっき: 買って読んでください +[0:34:29] narunaru: 了解です。仕様をよく理解してませんでした。。。納得しました。 +[0:34:30] 裕之: アンドロイドアプリ簡単自作 ですね? +[0:34:40] たっき: です +[0:34:49] 裕之: 買います! +[0:35:02] narunaru: 多分自分も買ったほうがよさそうですね^^; +[0:35:59] たっき: 去年の今頃も同じようにあれもこれもと手を伸ばしすぎてコンテストにはちゃんとしたものを出せなかった経緯があるので今回は欲張らず最低限度でもちゃんと動く物を目指さないとと思います +[0:36:29] 裕之: その通りだと思います。 +[0:37:03] 裕之: 今回、手始めにおこたねこさんとnarunaruさんがもっとも根幹になるプログラムに手をつけて頂いてると思いますので、 +[0:37:38] 裕之: そこから絶対必須の機能を付け足して、まずは一巡するようにしたいと考えてます +[0:38:17] narunaru: 今の話からすると自分の作業は違うものに変わるのではないでしょうか? +[0:38:23] 裕之: 移動中に交差して?といったのは、機能として切り離し、後からでも組み入れることができるのであれば、 +[0:38:51] 裕之: 優先度は下げても構わないですよね +[0:39:08] 裕之: narunaruさんの作業ですが、 +[0:39:32] 裕之: たっきさんの思うアーキテクチャをまずお伺いして検討したいです +[0:39:49] 裕之: ズバリ、http通信に絞る +[0:40:00] 裕之: こんな認識で良いでしょうか? +[0:41:51] たっき: リーダーが作成した仕様があるのでそれに合わせるでよいかと +[0:42:05] たっき: 私はあそこからはなれたことは言っていないし +[0:43:10] 裕之: 了解です。では、narunaruさんに +[0:43:25] たっき: もう少しブレークダウンした仕様を作ればみんなハッピーなのかなと思います +[0:43:28] 裕之: 今の作業を継続して頂く方向でお願いしたく思います。 +[0:44:08] 裕之: ブレークダウンするのはもちろん戦闘部分ですよね +[0:44:17] 裕之: 移動、とか、機能、とか +[0:44:21] たっき: 私もリハビリかねてリーダーの仕様をもう一度見直してみます +[0:44:32] 裕之: 機能? じゃなくて、 攻撃 +[0:44:42] 裕之: はい。是非お願いします。 +[0:44:56] たっき: であ、明日も早いのでおやすみなさい +[0:45:11] 裕之: おやすみなさいー ありがとうございましたー +[0:45:15] narunaru: おやすみなさいー^^ +[0:45:29] 裕之: たいしたことないのですが、ここでアイデアを一つ +[0:45:43] narunaru: 作業を続ける場合、当たり判定はサーバ側になったのですが、何を入れ込めばいいのでしょうか? +[0:46:27] 裕之: 一番軸になるのは移動ですね +[0:47:22] 裕之: おこたねこさんと連携して、鯖を介してクライアント通しでそのやり取りも反映できるようになってればベストかとおもいます +[0:48:16] 裕之: 逆にnarunaruさんから、これの方が重要!とか +[0:48:38] 裕之: これやってみたい!などなどあれば、そちらを進めて頂くのでも全然OKです +[0:51:11] narunaru: いえ、とりあえず移動で大丈夫です^^当たり判定はとりあえず誰か他の人にお任せします +[0:51:35] 裕之: 当たり判定も必須ですからね^^ +[0:51:47] narunaru: そうですね- +[0:52:01] narunaru: とりあえず仕様を再確認しておきます^^; +[0:52:26] 裕之: はい。仕様に変更ない。という事でお願いします。 +[0:52:37] narunaru: 了解です^^ +[0:52:43] 裕之: ところで、プチアイデアですけども、 +[0:52:52] narunaru: はい +[0:53:00] 裕之: 裕之への質問表を用意する必要性を感じました。 +[0:53:20] 裕之: 仕様の多くが私の頭の中にいるので、 +[0:53:38] 裕之: とはいえ自分でも良くわかってなかったりするので、 +[0:54:08] 裕之: それこそ来た物にレスポンスすることで、いろんなことがブレークダウンしていけるのかなと +[0:54:30] 裕之: わからないものはまた、皆さん宛に質問とかしてですね。 +[0:55:04] narunaru: 確かに質問表は必要かもしれません。 +[0:55:44] 裕之: PJでもQA管理とかやったりしますよね それです +[0:55:56] 裕之: 仕事のPJでも、ですね +[0:57:38] narunaru: はい、そうですねー。少しだけ気になる点はMLで質問するとみんなが見てくれますが、excel等に質問を記載して記載しましただけのMLだと、わざわざExcelを開きに行かないので、質問が共有化されにくいかもしれません。 +[0:58:05] 裕之: できればオンラインで共有したいですよね +[0:58:12] narunaru: そうですねー +[0:58:34] 裕之: そうなると、SourceForgeのフォーラム(掲示板)ですかねー +[0:58:43] 裕之: 過去暦も見れますからね +[0:58:49] 裕之: 過去歴 +[0:59:17] 裕之: 書き込まれると全員にメールが飛びますからね +[1:00:13] narunaru: フォーラムに書き込むと書き込んだ内容がメール本文に記載されるんでしたっけ? +[1:00:30] 裕之: 記載されますよ +[1:01:21] 裕之: なので、メールでリアルタイムに飛んできて、フォーラムでは過去歴を見るなんていう使い方になってくるのかなと思います +[1:01:28] narunaru: それなら簡単に共有化できるのでいいかもしれませんね^^ +[1:01:42] 裕之: あ、でも書き込むのはあくまでもふぉーらむですね +[1:02:33] narunaru: はい、フォーラムに質問を書き込めばいいんですよね? +[1:02:47] 裕之: はい。今部屋を作ってみます。 +[1:04:02] 裕之: http://sourceforge.jp/forum/forum.php?forum_id=25311 +[1:04:05] 裕之: できました^^ +[1:04:57] 裕之: 使い方は民意に任せようかと思います +[1:05:22] 裕之: なので、なーんにもまだ中身はありません +[1:05:46] 裕之: ただ、ここでQAのやり取りしましょう!ってMLで私が宣言をして、スタートしようかと思います。 +[1:06:44] doi: 帰宅しました。 +[1:06:53] 裕之: おかえりなさいー +[1:07:04] doi: ちょっとログを呼んだのですが、リーダーの仕様書ってどこにあるやつですか? +[1:07:47] 裕之: https://svn.sourceforge.jp/svnroot/sangokushi/trunk/Documents/仕様書/Open三国志v1.0仕様書.ppt +[1:07:51] 裕之: ですよ +[1:08:08] doi: 了解です。 +[1:08:32] 裕之: 前に確認をお願いしたときから、中身は替えてないと思います。 +[1:08:42] narunaru: 歯磨いてました^^;QAのページみましたー +[1:09:15] 裕之: んー、QAは、MLでもいいような気も^^; +[1:09:40] doi: 通信方式がどうこうとたっきさんがおっしゃっていたので、別になにかあるのかと勘違いしました。 +[1:10:40] 裕之: 通信というよりも、まずは最低限の機能に絞って進めてくださいというご指摘と受け止めてます +[1:13:12] 裕之: それこそ、移動中に敵と重なった場合の処理など、複雑な部分には今は手をつけないといった具合です +[1:17:10] narunaru: 結局通信の仕様は仕様書のままでいくんですよね? +[1:18:25] narunaru: それともHttpのほうですか? +[1:18:51] 裕之: 100対100を忘れて、仕様のままでいきましょう! +[1:19:08] narunaru: 了解ですー +[1:19:17] 裕之: クライアントで待ち受けるのは、 +[1:19:36] 裕之: 飛んできたコマンドを即時反映させるためです +[1:21:56] 裕之: サーバ側で計算するという部分は、doiさんとたっきさんのお二人のご提案ですから、それで間違いないと思います。 +[1:23:21] 裕之: 話すとキリがなくなりますが、こうなって来ると、UDPはやめておいた方がいい機がします。 +[1:23:29] 裕之: 気がします。l +[1:26:37] narunaru: 了解ですー まだ決められなさそうな雰囲気だと感じたのですが、もしかして他のことを先にやったほうがいいのでしょうか? +[1:27:14] 裕之: もう、決めちゃって良いでしょう。 +[1:27:32] doi: 結局、サーバソケットをクライアントに持つのですか? +[1:28:15] 裕之: 仕様のまま、半オートで、計算はサーバ。計算結果ははサーバからプッシュ +[1:29:23] 裕之: 後から何とでもなりそうな部分であれば、まずはポーリングでいいと思いますが、影響のでかいものであれば、始めからクライアントにソケット +[1:29:46] 裕之: を持たせておく形が今日の結論かなと思ってます。 +[1:30:30] doi: 仕様書にアーキテクチャまで触れてましたっけ? +[1:30:50] 裕之: だいぶ始めの方に、 +[1:30:53] doi: サーバからのプッシュの利点がまだよく分からないのですが。 +[1:31:46] 裕之: 2.基本アーキテクチャ にざっくり書いてます。 +[1:31:50] 裕之: 利点は、 +[1:32:45] 裕之: 状態が即時反映できるという点と、電池が持ちそう???) +[1:33:35] 裕之: 電池の部分は雲行きが怪しくなってきましたが。。 +[1:33:46] doi: サーバ側の処理にも依存してしまいますが、即時反映とはどのような意味でおっしゃっていますか? +[1:34:36] 裕之: 受け取る側で、リアルタイムに状態が反映されるという意味合いです +[1:35:15] 裕之: これができると、把握した状態を元にコマンドを送信できるので、 +[1:35:32] doi: それはポーリングでも同じじゃないですか? +[1:36:16] doi: サーバ側をどう作るかですが、一定間隔ごとに状況を更新していく必要があるでしょうから、その間隔程度でポーリングさせれば、同じかと。 +[1:37:18] 裕之: サーバは送信されてくれコマンドを随時処理して、計算結果も随時送信するので +[1:38:16] 裕之: これはだいぶ様子が変わってくるかと思います +[1:39:00] doi: 戦場の状況は、クライアントからのコマンドだけで、即時反映されるものではないと思うのですが、特に、半オートということであれば。 +[1:41:11] 裕之: 複数のクライアントが非同期に移動を開始して、 +[1:41:44] 裕之: これまた非同期に目的地に到着なんかしたりするので、 +[1:42:17] 裕之: その一つ一つのクライアントの状態は即時とまでは行かなくとも、 +[1:43:28] 裕之: 細かな単位で,それぞれの結果を、クライアントで表現できると思うんですよね +[1:45:37] 裕之: 結局は、操作性、表現力のための解決策が、今検討したアーキテクチャに至ったということですね +[1:46:11] narunaru: すいません。横から失礼します、私が認識した内容だと土肥さんが言いたいのは短い間隔でポーリングするのと、サーバからのブロードキャストを受信するのは、間隔が同じであれば結局同じになるのでは?という意味だと感じたのですが。 +[1:46:59] 裕之: 私は、ブロードキャストに間隔を設けず、 +[1:47:25] 裕之: 計算が終わり次第ブロードキャストするものだと考えてます。 +[1:48:03] 裕之: もちろん、その裏でサーバは別の計算を処理しています。 +[1:48:16] doi: 僕が言いたかったのは、そういうことです。 +[1:48:42] 裕之: りかいできました^^; +[1:48:45] doi: 計算が終わり次第とのことですが、実際には一定間隔で計算をすることになるだろうと思うので、同等のことができるかなと。 +[1:50:18] doi: 後は、多分、考え方の違いだけなのですが、サーバがすべてで、クラインとはビューアというようなイメージを僕は持っています。その辺りの違いもあるかもですね。 +[1:50:31] 裕之: クライアントから、サーバにコマンドが飛んできたら、サーバはそれをすぐに処理を開始するという実装で考えてますけど、これってまずい?ですかね?? +[1:50:58] doi: 実は個人的には、ブラウザアプリとかを先に作ってから、Androidクライアント作った方が効率がいいのではとすら、思ってたりします。 +[1:51:17] doi: 非同期の処理はそれでいいと思うんですが、 +[1:51:23] 裕之: それについて前にも話しましたね。 +[1:52:05] 裕之: ただまあ、蔵鯖方式の方が自由度が高いのでOKなんてことをおこたねこさんにアドバイスをもらって、そうか!と思ってました。 +[1:52:27] 裕之: そして、非同期です! +[1:52:30] doi: A地点からB地点に移動するというコマンド発行時にサーバに命令を投げますが、その後、その中間地点に移動したという状況が発生するのですが、それは非同期ではなく、ある程度の一定間隔での処理になるのではないかと。 +[1:54:02] 裕之: 移動を開始してからn秒後に、目的地に到着するとした場合、 +[1:54:31] 裕之: 間隔という概念とはまた違うのかと思います +[1:55:57] 裕之: しかし、非同期でなければならないという考え方が先行するのは本末転倒ですので +[1:56:22] 裕之: 同期でどこまで表現できるか考えますね +[1:56:52] 裕之: 概ねいけそうというのがdoiさんのご意見だと思いますので +[1:58:55] narunaru: すいません。またまた横から失礼します。よく理解出来ていないのですが、リーダが言っている非同期/同期の話はどのぶぶんの事をいっているのでしょうか? +[1:59:17] 裕之: クライアントの動作です。 +[1:59:59] 裕之: 全クライアントの情報が、同じ間隔を持つかどうかというところです +[2:01:24] 裕之: 同期=ポーリングだと、どれくらいの間隔になるのかちょっとイメージがわかないので、 +[2:03:14] 裕之: 情報を細かく切って受け渡しする、非同期=ソケットの方がイメージが沸きやすいです +[2:03:27] narunaru: 多分ですが、土肥さんが質問しているのはAからBまで移動する際の中間地点では、今の仕様だと移動中のクライアントからはメッセージが来ない仕様になると思います。その場合、全員がとてつもなく長い距離を移動しようとすると、その間クライアント⇔サーバ間の通信が一切行われないので、ある程度の間隔でクライアント⇔サーバ間の通信が必要ということをいいたいのだと感じました。 +[2:03:54] 裕之: なるほどー +[2:04:22] 裕之: 確認的な通信が必要ということですね +[2:07:38] doi: ひょっとしてですが、裕之さんが思っている通信内容というのは、 +[2:07:45] 裕之: はい +[2:07:58] doi: あるクライアントが、A地点からB地点まで移動というコマンドを実行すると、 +[2:08:29] doi: もちろん、それがサーバに送られるわけですが、それをそのまま、他のクライアントに送信することをイメージしていましたか? +[2:08:44] 裕之: もともとはそうです +[2:09:35] 裕之: それが、1クライアントごとの単位で、他のクライアントに飛んでいきます。 +[2:10:39] 裕之: あ、1クライアントの移動の情報を、他の伝えるべきクライアントに渡すという意味です +[2:11:11] doi: 移動というのはどういう意味で使っていますか? +[2:11:22] doi: コマンドという意味ですが、マス目の変更という意味ですか? +[2:11:31] 裕之: そうです +[2:12:00] doi: コマンドのことですか?マス目の変更のことですか? +[2:12:22] 裕之: あ、マス目の変更です +[2:12:25] 裕之: 具体的には、 +[2:12:55] 裕之: クライアントAが、X1Y10に向かって移動を開始した +[2:13:13] 裕之: サーバで移動時間をカウント +[2:14:09] 裕之: 移動時間経過後、全クライアント(または伝えるべきクライアント)に、到着したことを送信 +[2:14:14] 裕之: こんなフローです。 +[2:15:44] narunaru: 今の話からすると距離から時間を割り出して、大体このくらいに着くだろうという時刻でカウントを終了してそこで全クライアントに通知という感じですか? +[2:16:25] 裕之: 1マス1秒に仮にするとして、 +[2:17:04] 裕之: 10マス分の移動なら、10秒をサーバでカウントして、 +[2:17:27] 裕之: 10秒経過後全クライアントに送信です。 +[2:17:39] 裕之: 話が前後しますが、 +[2:18:20] 裕之: 移動を開始する際には、開始したということ自体と、目的地の情報も送信しておかないと、 +[2:18:31] 裕之: クライアントでそれを表現できないのかと思ってます。 +[2:19:04] 裕之: 目的地の情報=目的地の座標です。 +[2:19:47] narunaru: それってつまり、クライアントAがXからYに移動したいときにYに移動が完了するまではサーバ上ではクライアントAはXにいることになるのでしょうか? +[2:20:00] 裕之: そう考えると、クライアント側で、常にクライアントの座標を常に持っていることになりますね +[2:20:33] 裕之: はい。とりあえずそうなると思います +[2:21:10] narunaru: その場合、長い距離逃げるとずっとそこにとどまっていることになり、移動が完了する前に必ずやられてしまうのではないでしょうか? +[2:21:33] 裕之: そのとおりです。追って、 +[2:22:15] 裕之: 移動中の、それこそ敵と交差したとき等と併せ、移動中の機能を実装して行く進め方ですね +[2:23:37] narunaru: 了解です。現状では上記の現象は起こるがおいおい改良するということですね +[2:24:05] 裕之: そうです。また、これはゲームなので、 +[2:24:35] 裕之: このゲームでは、長い距離を移動するとまずいことになるということは、プレイヤーが気づけば良いことなのかなと思います。 +[2:25:22] 裕之: 基本操作までは説明する必要があると思いますが、攻略法は、プレイヤー側で検討してもらえれば良いのではないかと思います。 +[2:25:24] doi: 個人的には、それなら、半オートはやめてしまった方がいい気がしてます。 +[2:25:43] 裕之: ぶっちゃけ私もうっすらそれを感じてたところです。 +[2:26:38] doi: ただ、その結論は本末転倒な気がしています。 +[2:26:44] narunaru: 後、今の仕様だと、移動中のあたり判定が無い点から移動中は攻撃できないことになりそうです。 +[2:27:30] 裕之: どちらかですね。移動元のところに当てるか、攻撃できないようにするか。 +[2:27:59] 裕之: 本末転倒というのは、攻略法の話ですか??・ +[2:28:15] narunaru: 半オートの移動の話だと思います。 +[2:29:21] 裕之: 半オートのメリットは、プレイヤーが操作に余裕を持てるということと、 +[2:29:33] 裕之: 通信料を減らせるというところだと思ってます +[2:29:39] 裕之: 通信量 +[2:29:42] 裕之: それと、 +[2:30:31] 裕之: プレーヤーが余裕をもてるということは、ゲームを優位に進めるために考える時間を持てると思うので、 +[2:30:46] 裕之: より戦略的なゲームになるのかという期待です +[2:32:23] doi: そういったユーザビリティを廃止にする原因が、アーキテクチャにあってはいけないのかなと。もちろん、どんなことをしても実現不可能なら別ですが。 +[2:33:31] 裕之: 最終的には、移動中もちゃんとフォローした内容を目指したいと思います。 +[2:34:29] 裕之: ただ、完成に至らなくても、ある程度回せて段階でリリースして、機能アップデートを繰り返していくということをイメージしてます。 +[2:34:51] 裕之: その中に、移動中の当たり判定などが、該当してくると思ってます +[2:37:59] narunaru: 了解です。ただ今日チャットをして思ったことは、仕様をもう少しブレイクダウンしないと実装できなさそうです。なので必須機能に関してはまずは要求仕様のブレイクダウンをまず行ったほうがいいかもしれません。 +[2:38:47] 裕之: その部分に関してはやや駆け足で進めたいですね。 +[2:39:44] 裕之: MLなり、先のフォーラムを活用して、QA方式でブレイクダウンしてくと助かります +[2:40:27] 裕之: 決まったことを、仕様書に随時書き足していきますので。 +[2:41:14] 裕之: 仕様ありきもありですし、プログラムありきという逆の発想もまたありかとも思ってます +[2:45:51] 裕之: まずは、使用上不明な点を、フォーラムに書き連ねて頂けますか?? +[2:46:01] 裕之: 仕様上 +[2:46:17] narunaru: 了解です。不明な箇所を書いておきますー +[2:46:25] narunaru: とりあえず、でも今日は寝ます^^; +[2:46:45] 裕之: お手数ですけど、宜しくお願いします。 +[2:47:04] 裕之: はい、お開きにしましょうー +[2:47:12] 裕之: お疲れ様でした! +[2:47:18] narunaru: おやすみなさい☆ +[2:47:25] 裕之: おやすみなさいー^^ \ No newline at end of file From sangokushi-svn @ lists.sourceforge.jp Sat Feb 19 10:57:06 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Sat, 19 Feb 2011 10:57:06 +0900 Subject: [Sangokushi-svn] [SVN_Comitted] [492] 20110218_Skype.txt Message-ID: <1298080626.833125.21586.nullmailer@users.sourceforge.jp> Revision: 492 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=492 Author: hryksbt Date: 2011-02-19 10:57:06 +0900 (Sat, 19 Feb 2011) Log Message: ----------- 20110218_Skype.txt Added Paths: ----------- trunk/IRC_ChatLog/20110218_Skype.txt Added: trunk/IRC_ChatLog/20110218_Skype.txt =================================================================== --- trunk/IRC_ChatLog/20110218_Skype.txt (rev 0) +++ trunk/IRC_ChatLog/20110218_Skype.txt 2011-02-19 01:57:06 UTC (rev 492) @@ -0,0 +1,305 @@ +?[0:11:02] 裕之: こんばんは +[0:11:36] 裕之: 週間アスキー買いました +[0:18:43] 裕之: どもー +[0:18:59] 裕之: narunaruさんは英会話ちゅうですか??? +[0:29:04] narunaru: こんばんわー +[0:29:09] narunaru: 英会話中でしたー +[0:29:14] narunaru: アスキー買ったんですねー +[0:29:17] 裕之: お疲れ様でしたー +[0:29:18] narunaru: どうですか? +[0:29:24] 裕之: 買いました! +[0:29:41] 裕之: コードを自動生成する +[0:30:03] 裕之: Googleが作った開発ツールが紹介されてます。 +[0:30:21] narunaru: そんなのあるんですね +[0:30:27] 裕之: です +[0:30:30] narunaru: なんていうツールですか? +[0:31:32] 裕之: http://www.itmedia.co.jp/news/articles/1007/12/news070.html +[0:31:39] 裕之: 無料です! +[0:32:22] narunaru: さすがgoogleですね +[0:32:29] 裕之: http://appinventor.googlelabs.com/learn/setup/setupwindows.html +[0:32:40] 裕之: ここにインストーラがあります! +[0:32:58] narunaru: インストールしてみたんですか? +[0:33:17] 裕之: 今ダウンロード中です! +[0:33:39] narunaru: 自分もDLしてみます。 +[0:34:51] 裕之: 是非是非^^ +[0:39:55] 裕之: 結構前からあったんですね +[0:40:01] 裕之: しらなかった。。 +[0:40:16] narunaru: そうなんですね +[0:40:29] narunaru: てか、なぜかdlが途中で止まりました。。。 +[0:40:46] 裕之: むむ +[0:40:58] 裕之: 今こちらはインストール中です! +[0:41:23] narunaru: 今、サイダウンロード中です +[0:41:34] 裕之: 頑張れ? +[0:41:48] 裕之: こちらは Fibish!! +[0:42:49] 裕之: この中にもエミュレータが入ってますね +[0:43:32] narunaru: インストール完了です。 +[0:43:48] 裕之: 起動の仕方がわかりません +[0:45:20] narunaru: 自分もです^^; +[0:45:53] 裕之: http://www.youtube.com/watch?v=8ADwPLSFeY8 +[0:45:58] 裕之: ですかね +[0:49:30] 裕之: わかりませんねえ +[0:49:33] narunaru: どうやらwebブラウザーでつくるっぽいです。 +[0:49:37] 裕之: 起動できない。。 +[0:49:41] 裕之: ん? +[0:49:50] narunaru: http://appinventor.googlelabs.com/learn/setup/hellopurr/hellopurrphonepart1.html +[0:51:27] narunaru: すいません。。。。ちがったようです^^; +[0:51:48] 裕之: むむむ +[0:52:57] narunaru: android端末が無いと駄目なんですかねー? +[0:53:18] 裕之: エミュレーターか端末って書いてますね +[0:55:43] 裕之: http://appinventor.googlelabs.com/ode/Ya.html +[0:55:48] 裕之: これですね??? +[0:56:02] narunaru: そこみたんですが、意味無かったです。 +[0:56:19] narunaru: 今はここをみてandroid端末が必要じゃないかと思いました。 +[0:56:27] narunaru: http://appinventor.googlelabs.com/learn/setup/phone.html +[0:57:21] 裕之: Set up your Android phone and build your first app with the phone, OR +Build your first app with the emulator +[0:57:39] 裕之: orなので 行けるのでないですかねー +[0:58:37] narunaru: お、確かにそうですね。最初の方だけよんでemuじゃだめなのかと思いました^^; +[0:58:53] 裕之: このエミュ軽くて良いですねー +[1:00:32] narunaru: 自分もようやくemuが立ち上がりましたー +[1:00:52] 裕之: いつものやつより早いですよね +[1:00:55] narunaru: 小さいのがいいですね^^ +[1:01:57] 裕之: web上でコード書いて開発できるツールってゆうのはないんですかねー? +[1:02:21] 裕之: これはブロック並べて作るんですよね??多分。。。 +[1:02:34] narunaru: 多分そうだと思いますー +[1:02:49] 裕之: http://www.infinity-dimensions.com/blog/archives/google-appinventor-development.html +[1:02:55] 裕之: 見ながらいじってます +[1:03:44] narunaru: 開発画面にアクセスって書いてますが、アクセスできました?? +[1:03:55] 裕之: 出来ましたよ +[1:04:01] narunaru: 自分は出来なかったので、ブラウザーじゃないと思いましたー +[1:04:19] 裕之: ふむふむ +[1:04:41] narunaru: あ、出来ました。。。さっきなんでアクセスできなかったんだろう。。。 +[1:04:59] 裕之: Mozilla Firefox 3.6 or higher +Apple Safari 5.0 or higher +Google Chrome 4.0 or higher +Microsoft Internet Explorer 7 or higher +[1:05:07] 裕之: これが条件なんですねー +[1:05:37] narunaru: googleだからchromeでアクセスしたんですがねー^^; +[1:05:52] 裕之: chromeで一発でした! +[1:06:39] narunaru: 分かりました。自分がアクセスしたのはトップページでそこから、myProjectタブを +[1:06:49] narunaru: クリックしなくてはいけなかったみたいです^^; +[1:11:21] 裕之: Block EditorはJavaアプレットですね +[1:11:23] narunaru: このツールすごいですね。 +[1:11:29] narunaru: はい、DLしました。 +[1:11:29] 裕之: すごいです +[1:11:38] narunaru: 考え方がすごいです。 +[1:12:03] narunaru: ただ、まだ使い方が分からない。。。 +[1:12:15] 裕之: ブラウザで動くeclipseというのを、いつか作りたいと思ってましたが、やられました。 +[1:12:31] 裕之: ブロックの配置とまではなかなか。。。 +[1:14:36] narunaru: ブロックにif文とかがあり、その組み合わせでプログラミングできるっぽく感じてますが、まだ使い方が分からない。。。 +[1:14:54] 裕之: ブロックの意味がわかれば色々いけそうですね +[1:15:23] narunaru: はい、ブロックの使い方が分かれば何か作れそうです。 +[1:15:51] 裕之: 細かいところはソースがいじれればいいんですけど、そうゆうものではないみたいですね +[1:18:21] narunaru: 全てブロックの組み合わせでこまかなところもコーディングするみたいですね。 +[1:18:33] 裕之: このエミュはちゃんと日本語もありますね +[1:19:27] narunaru: はい、ありました。 +[1:26:28] 裕之: ところで、仕様書のほう、意味はわかりました??? +[1:27:12] narunaru: あ、すいません。昨日は歯がやられてて何もしてないです^^; +[1:27:24] narunaru: 明日にでも見ておきます。 +[1:27:31] 裕之: 歯が来ましたか^^; +[1:27:48] narunaru: おとといの明け方から歯が痛くなって +[1:27:54] 裕之: ちょっと考えててたんですけど、 +[1:28:21] narunaru: 昨日の朝、病院で見てもらったら、どうやら親知らずが炎症してるみたいです。。。 +[1:28:22] narunaru: はい +[1:28:49] 裕之: お願いしている部分も、全体から見て、一つの部品という位置づけになるじゃないですか +[1:29:05] 裕之: app inventorで言うところのブロックですかね +[1:29:42] 裕之: なので、その部品を誰かが使いやすいようになってればいい名と思ってます +[1:29:49] 裕之: いいなと思ってます +[1:30:09] 裕之: 部品の動きの説明とAPIの仕様 +[1:30:15] 裕之: というか使い方 +[1:30:46] 裕之: こうゆう場合って、コードの仕様書を作るか、コメントを入れるか +[1:30:52] 裕之: どんな方法がいいと思います? +[1:31:37] 裕之: あとは、コミットするときにコメントという手もありますが、後から見るのが大変なので、これは避けたい |-) +[1:33:14] narunaru: オブジェクトの公開メソッドの仕様を書くのであれば、ソース内のかがみというか関数の説明をdoxygenとかjavadoc?(でしたっけ?)の形式にあわせて書いてもらうのが一番効率がいいですねー +[1:33:47] 裕之: そうなんですね +[1:34:04] 裕之: doxygenというのは初耳ですね +[1:34:11] narunaru: でももしそのオブジェクト自体を編集する人向けに何かを残すのなら、メソッドの看板だけではなく、ソースコメントの1ブロックに対してコメントを書いてもらうのが一番いいです +[1:34:40] 裕之: さすがです +[1:34:40] narunaru: 自分はdoxygen形式でしか書いたことがないです^^; +[1:34:54] narunaru: 組み込みだとdoxygen形式は多いですね +[1:34:56] 裕之: javaならjavadocですかね??? +[1:35:09] 裕之: phodocってのもあるっぽいんですよね +[1:35:14] narunaru: 多分そうだと思うんですけど詳しく分からないです^^; +[1:35:20] 裕之: phpdocでした +[1:35:34] narunaru: phpdocはphp用なんですかね? +[1:35:45] 裕之: そうです +[1:36:23] 裕之: で、 +[1:36:35] 裕之: 通信とか、移動もそうですが、 +[1:37:01] 裕之: 色んな部品を寄せ集めてゲームを作って行きたいと思ってます +[1:37:10] 裕之: 仕様よりも、部品先行です +[1:37:42] narunaru: 部品専攻は正直難しいですよ +[1:37:45] 裕之: なので、今ある仕様書は、どうゆう風に受け取って頂いてもOKです +[1:38:01] narunaru: 部品を結合した際に動かないことが多々あります。 +[1:38:18] 裕之: そうゆう進め方も、経験あるんですね? +[1:39:32] narunaru: う?ん、組み込みの仕事で、新規開発ではないですねー。例えば組み込みでも +[1:40:21] narunaru: 他の端末への移植とかになると、納期が短いので、今あるソースを解析してドキュメントなしで先に修正箇所のみ修正して、組み込んだことはあります。 +[1:41:02] 裕之: ソースを解析すればもう読み間違いさえなければまだ以上武装ですけどダメですか +[1:41:14] 裕之: 大丈夫そう +[1:41:36] 裕之: Wikipediaみたいな形で進めていと思ってるんですね +[1:41:47] 裕之: みんなですき放題編集しまくるんです +[1:42:20] 裕之: 何が起こるか予想がつかなくないですか??? +[1:42:44] narunaru: はい、予想がつかないですね^^; +[1:42:52] 裕之: narunaruさんが、 +[1:43:22] 裕之: こんなコードが使えそうなので、コミットしました!と言って、gitにコミットします +[1:43:40] 裕之: みんなが使えるように仕様をコメントしてですね +[1:43:44] 裕之: そうすると誰かが、 +[1:43:57] 裕之: いやいや、こうでしょー、と言って編集したり、 +[1:44:28] 裕之: この部品には、こんな部品をくっつければいー +[1:44:40] 裕之: なんていって新たなコードがコミットされたり +[1:45:13] 裕之: こんな感じで、自発的にプロジェクトが回っていくのを当初考えていたことを忘れてました。 +[1:45:36] 裕之: 言ってることは無茶苦茶なのはわかってますが、 +[1:46:30] 裕之: 自分が作ったコードを他の人がどんな風に使って、どうゆうプログラムが出来上がっていくのかわからないんですけど、 +[1:46:59] 裕之: それが進化していくのを見守るというのも、面白くないですか??? +[1:48:10] narunaru: うーん、それをライブラリーなどの開発に適用するならおもしろそうですが +[1:48:31] 裕之: はじめはライブラリーの開発に専念する形になりそうですね +[1:48:50] 裕之: 何に使うかわからないライブラリーがゴロゴロといる訳です +[1:49:20] 裕之: ライブラリー=ブロックですかね +[1:49:37] narunaru: それでいいなら面白いと思います。が、ライブラリーを寄せ集めても結合が上手くいかなければソフトにはならないですよー +[1:50:02] 裕之: 結合を楽しむことは出来ませんかね??? +[1:51:36] narunaru: うーん、難しい質問です。結合するためには誰かの作ったものを修正するならラッピングするなりして使わなくてはならないので、作った本人に不本意な修正が入る場合もありますね。 +[1:52:06] narunaru: もし、自分が開発者に作業を依頼する立場なら、ある程度の仕様は先に決めます。 +[1:52:46] 裕之: そうならないためにも、とにかく読みやすく、全部ソースを読まずとも、javadocなりで簡単に仕様を把握できることを、重視して部品作りを意識します。 +[1:53:16] 裕之: 因みに、大規模なオープンソースプロジェクトは、まじめにこの方式で開発を進めてるんですよね +[1:54:30] 裕之: narunaruさんの、移動機能の部品と、おこたねこさんの部品、それと、doiさんが試しに作った、 +[1:54:38] 裕之: MobileIPの部品 +[1:55:05] 裕之: この3つからスタートして、どんな風に育っていくのかは闇の中 +[1:55:42] 裕之: 私も、サーバサイドの何かをコミットしたいと思ってます +[1:55:48] narunaru: 言いたいことがようやく分かりました。 +[1:55:54] 裕之: おお +[1:56:10] narunaru: でもまだその部品を作れるだけの仕様が決まっていないというのが私の意見です。 +[1:56:20] 裕之: ですので、 +[1:57:02] 裕之: 部品の仕様でわからないところは、narunaruさんの解釈で作っていただいてもいいし、 +[1:57:35] 裕之: 私も含め関係者と相談しながら進めるのももちろんありだと思います。 +[1:57:51] 裕之: 相談するのは、アイデアをもらうという要素が強くて、 +[1:58:54] narunaru: 上記のような進め方でソフトを開発したいのなら、多分ゲームは向いていないと自分は思っていて、その理由は以下です。 +[2:02:05] narunaru: ゲームというのは基本的に楽しむもので、楽しむためにはユーザが面白いと思う仕様を考えなくてはならないです。そしてそれはみんなでバラバラに考えてこんな仕様がいいと思って作っても、結局他の人の部品と組み合わせた結果、ゲームとしての楽しむどころか、まともに動かないものが出来上がる気がします。 +[2:03:40] 裕之: その通りだと思います。 +[2:04:13] 裕之: なので、本流にコミットを全員で行うのは厳しいかもしれません +[2:05:27] narunaru: もし、上記のような方法でゲームを作りたいなら、 +[2:05:37] 裕之: 一流のゲームプロデューサーがいる訳ではないというのがポイントだと思ってます +[2:05:56] 裕之: そうゆう隠れた素養を持っている方がいるかもしれませんが、 +[2:06:05] 裕之: 現時点ではそれはわかっていません +[2:06:32] 裕之: どぞ、続けてください +[2:07:13] narunaru: はい、なのでひろゆきさんがプロデューサー代わりをやらなくてはならないかもしれません。それはつまりみんなが作った部品を +[2:08:10] narunaru: 整理し、上手く組み合わせてゲームとしてなりたつように調整などをしなくてはならなくなると思います。 +[2:08:38] 裕之: そうゆう進め方になると思います +[2:09:10] 裕之: また、それをやりたいという方がいれば、是非その方にもその部分に混ざって頂く形ですね +[2:10:37] 裕之: このやり方で、絶対うまく行くかどうかという保証はないです。あくまで一つの実験であって、それに混ざって頂けるかどうか、 +[2:11:26] 裕之: という事で、できるか出来ないかは、なるべく考えずに進めることが出来るといいんですね +[2:13:31] 裕之: ゲームをオープンソースで分散開発するということ自体が、多分例がないので、 +[2:14:00] 裕之: 出来るかできないかは、これからわかってくるのかなと思うわけです +[2:14:41] narunaru: なんとなく分かりましたが、前回たっきさんの助言とは方向性がずれる気がします。 +[2:15:17] 裕之: 当初考えていたことを私が忘れていたことが原因です +[2:16:25] narunaru: 多分、一度何人かで意識あわせをして方向性を決めたほうがいいかもしれません。 +[2:16:54] 裕之: narunaruさんはどうですか? +[2:17:56] narunaru: うーん、ちょっと待ってください。整理して考えて見ます。 +[2:18:34] 裕之: たっきさんは、私が知らない仕様をいろいろと考えてます +[2:19:24] 裕之: 以前に、DBのスキーマ設計を進めて頂いたこともありましたが、 +[2:19:34] 裕之: 1人で全部設計してしまいました。 +[2:20:11] 裕之: こんなところです。 +[2:20:56] 裕之: 今も、UIについて、色々仕様を練っておられます +[2:21:40] 裕之: これはまあ、ご参考まで。なのですが、 +[2:22:09] 裕之: もちろん、仕様を考えない方が、参加できないなんてことにもしたくないので、 +[2:22:43] 裕之: そうゆう場合は、開発を進めているところに混ざったり、 +[2:23:18] 裕之: まだ開発されてないけど、仕様だけは固まっているものに手をつけたりと、 +[2:23:21] 裕之: 色々あると思います +[2:25:06] narunaru: ひろゆきさん的には、どちらかというとみんなが好きに作って、 +[2:25:31] narunaru: 上手く動いてくれればラッキー的な感じで進めたいっていう方向性であってます? +[2:25:53] 裕之: ちょっと違いますかね +[2:26:16] 裕之: うまく動くまで続けるんですね +[2:26:45] narunaru: それはつまり、みんなが好きに作るとは相反する形になるとおもうのですが +[2:26:57] 裕之: 言い方を変えれば、終わりはないですよ +[2:28:34] narunaru: 上手く動くまで続けて、上手く動いたものを安定バージョンとかにして、随時バージョンアップですよね? +[2:29:00] 裕之: そうですね +[2:31:40] narunaru: それはやはり、自分が感じたたっきさんの助言とは違っていて、たっきさんはどちらかというと機能を絞って動く物を作る 。なので、たっきさんとひろゆきさんでは進め方が違うと感じていて、そこはお互い話し合って方向性を合わせないといけないのかなとやはり自分は思います。 +[2:32:29] narunaru: 自分はどちらかというとみんなの意識があっていれば、進め方はどちらでも大丈夫です。 +[2:32:33] 裕之: もちろん、この場で2人で話していても、全体での共有が難しいので、 +[2:32:46] 裕之: MLとフォーラムで展開します +[2:33:28] 裕之: もし、反対をする方の中に、チームを引っ張れる意思のある方がいて、 +[2:34:12] 裕之: それが大多数であれば、もはや私はほぼ機能しないので、1メンバーになった方がいいですね +[2:34:39] 裕之: その方に引っ張っていってもらうほうがいいと思います +[2:36:03] narunaru: 反対派がいればひろゆきさんが説得して、ひろゆきさんが引っ張っていくほうが、自分はいいと思います^^ +[2:36:14] narunaru: そのためのリーダーなので +[2:37:12] narunaru: ただ、リーダーと重要なメンバーのたっきさんの考え方がずれているのは、船長が二人居る船にのってるみたいで、周りは困惑します^^; +[2:37:19] 裕之: 私は、皆さんに楽しんでもらうことが使命だと思ってるので、どうゆう形での参加にはあまりこだわってないんですよね +[2:38:08] 裕之: といいつつも、皆さんにリーダーという事を認めてもらってるので、 +[2:39:01] 裕之: あんまりこう、仕様などに責任を持つような形ではないけど、支援は最大限に行っていくなんてのも形としてはありかもしれませんね +[2:40:13] 裕之: あとは、何でも、反対意見がないと、ものの本質が見えにくいと思うので、 +[2:40:31] 裕之: 率直に皆さんに意見を言ってもらえた方がいいですよね +[2:43:44] 裕之: ひとまずですが、 +[2:44:42] 裕之: 今ある仕様は、色々ぶれながらも基準になっていくものだと思うので +[2:44:57] 裕之: 見てみてください +[2:45:15] 裕之: 移動については、 +[2:45:23] narunaru: はい、了解ですー +[2:45:34] 裕之: 11のとこに書いてます +[2:46:00] 裕之: 超大ざっぱなので是非、妄想を膨らませ、 +[2:46:16] 裕之: 最終的には、金髪美女をゲットしてください。 +[2:46:49] 裕之: 明日もお仕事ですか?? +[2:48:23] narunaru: いえ、明日は無事に休みをゲットしました^^でも歯痛が辛くて楽しめなさそうです。。。 +[2:48:41] narunaru: 今日も会社の飲み会だったんですが、料理がまともに食べれませんでした。。。 +[2:48:59] 裕之: あれまXO +[2:49:21] 裕之: 明日は歯医者ですか?? +[2:50:20] narunaru: 歯科口腔外科に言ったんですが、しばらく薬でごまかすしかないみたいです。。 +[2:50:39] narunaru: とりあえず、3月に抜歯の予約はしましたー +[2:50:54] 裕之: 親しらずですね?? +[2:50:58] narunaru: はい +[2:51:10] narunaru: 親知らずが化膿してるらしいです。 +[2:51:20] 裕之: 自分はもう、ちょっと痛くなってすぐ抜いちゃいました。。。 +[2:51:47] 裕之: 可能止めと痛み止めは飲んでますか??? +[2:52:27] narunaru: はい、飲むと多少よくなりますが、結局ご飯を食べれるほど口をあけられません^^; +[2:52:53] 裕之: それはひどいですね。。 +[2:53:01] 裕之: 寝れなそう +[2:53:23] 裕之: というか、お酒飲むと、炎症が加速するので辛いですよね +[2:53:35] narunaru: はい、あまりの痛さに夜中の4時ごろに目が覚めて、そこから寝れませんでした。。。 +[2:53:49] 裕之: 相当来てますね。。 +[2:54:01] 裕之: それでいて毎日遅い。。 +[2:54:04] narunaru: かなり最悪ですよー +[2:54:17] 裕之: そんなnarunaruさんに… +[2:55:35] narunaru: 人生で一番痛い思いをしたかもしれない位の痛みです^^; +[2:55:56] narunaru: ひろゆきさんは、さっさと抜いて正解だと思います +[2:56:09] 裕之: 3本抜きました +[2:56:33] narunaru: 抜くときは痛いんですか? +[2:57:08] 裕之: 麻酔をガンガンでお願いします。とオーダーしたので、無痛でしたよ +[2:57:40] narunaru: 自分もそうします^^ 治療後の一日が辛いときいたんですが、大丈夫でした? +[2:58:11] 裕之: 最強の痛み止めを出してくださいとお願いしたので +[2:58:26] 裕之: 全くではないですけど大丈夫でした +[2:58:45] 裕之: ボルタレンをお願いするといいですよ +[2:59:27] 裕之: 効いてる時と効いてない時の差がすごいです。 +[2:59:45] narunaru: 了解です。それにします! +[2:59:51] 裕之: 1日3回だと1日中持ちませんから、 +[3:00:22] 裕之: 4回×1週間くらい出してもらえばいけると思います。 +[3:00:43] *** 裕之が2011-02-16 12.10.12.jpg,...を送信しました *** +[3:00:57] 裕之: この写真を見て頑張ってください。 +[3:01:00] narunaru: お、了解です。それを処方してもらいます。てか今はロキソニン飲んでますが、全く聞きません。。。 +[3:01:43] narunaru: 行ったんですか? +[3:01:53] 裕之: ボルタレンで効かなかったらもう、次はモルヒネとかになるらしいですよ +[3:01:59] narunaru: あの写真見ればがんばれそうです(笑) +[3:02:13] 裕之: いえ、一緒に行ってくれる人がいません +[3:02:26] narunaru: 残念です^^; +[3:02:32] 裕之: たまたま発見したので、写真を撮っていたら、 +[3:02:43] 裕之: 中から店員が怪しそうに見てました +[3:03:09] 裕之: 自分の店がどうゆう存在かあまり良くわかってないみたいです。 +[3:03:15] 裕之: きゃくs +[3:03:29] 裕之: 客層も探りましたが、普通のおじさんばかりでした。 +[3:03:42] 裕之: いや、普通のおじさんではないんでしょうね +[3:03:51] narunaru: なるほど^^ +[3:04:12] narunaru: ぜひともチャレンジしてみてください。 +[3:04:47] narunaru: とりあえず、仕様は明日見るとして、今日はそろそろ寝ますねー +[3:04:54] narunaru: おやすみなさい☆ +[3:04:55] 裕之: はい +[3:04:58] 裕之: ボルタレンは +[3:05:05] 裕之: 錠剤がいいです +[3:05:12] narunaru: 不味いんですか? +[3:05:13] 裕之: カプセルは +[3:05:26] 裕之: 長持ちするんですけど、効果が出るのが遅いので、 +[3:05:40] narunaru: あ、そうなんですね。了解です。 +[3:05:50] 裕之: 寝る前向きです。 +[3:05:59] narunaru: なるほど +[3:06:39] 裕之: http://www.jah.ne.jp/~kako/frame_dwm_search.html +[3:06:44] narunaru: 来週も痛かったら、病院行ってボルタ連もらってきます。 +[3:06:48] 裕之: これも見てよく研究しておいてください +[3:07:20] narunaru: 了解です-ありがとうございます^^ +[3:07:37] 裕之: ではでは遅くなってしまいましたが、 +[3:07:45] 裕之: またー^^ +[3:07:52] narunaru: はいまたー^^ +[3:08:03] 裕之: おやすみなさいー ((ninja)) \ No newline at end of file From sangokushi-svn @ lists.sourceforge.jp Sun Feb 20 22:48:38 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Sun, 20 Feb 2011 22:48:38 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzQ5M10gIOapnw==?= =?utf-8?b?6IO944GU44Go44Gu5YWo5L2T5Zuz44KS5L2c44Gj44Gm44G/44G+44GX44Gf?= =?utf-8?b?44CC?= Message-ID: <1298209718.729978.3909.nullmailer@users.sourceforge.jp> Revision: 493 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=493 Author: hryksbt Date: 2011-02-20 22:48:38 +0900 (Sun, 20 Feb 2011) Log Message: ----------- 機能ごとの全体図を作ってみました。 内容は仮ですが、今後このようなものをアップデートしていけば、全体をつかみ易いと思います。 Added Paths: ----------- trunk/Documents/全体布陣.xls Added: trunk/Documents/全体布陣.xls =================================================================== (Binary files differ) Property changes on: trunk/Documents/全体布陣.xls ___________________________________________________________________ Added: svn:mime-type + application/octet-stream From sangokushi-svn @ lists.sourceforge.jp Sun Feb 20 23:06:37 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Sun, 20 Feb 2011 23:06:37 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzQ5NF0gIOOBoQ==?= =?utf-8?b?44KH44GT44Gj44Go44Ki44OD44OX44OH44O844OI?= Message-ID: <1298210797.690178.30440.nullmailer@users.sourceforge.jp> Revision: 494 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=494 Author: hryksbt Date: 2011-02-20 23:06:37 +0900 (Sun, 20 Feb 2011) Log Message: ----------- ちょこっとアップデート Modified Paths: -------------- trunk/Documents/全体布陣.xls Modified: trunk/Documents/全体布陣.xls =================================================================== (Binary files differ) From sangokushi-svn @ lists.sourceforge.jp Sun Feb 20 23:40:25 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Sun, 20 Feb 2011 23:40:25 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzQ5NV0gIOiCnQ==?= =?utf-8?b?5b+D44Gu5pW15ZGz5pa544GM44Gq44GL44Gj44Gf44Gu44Gn6L+95Yqg44GX?= =?utf-8?b?44G+44GX44Gf44CC?= Message-ID: <1298212825.850226.27728.nullmailer@users.sourceforge.jp> Revision: 495 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=495 Author: hryksbt Date: 2011-02-20 23:40:25 +0900 (Sun, 20 Feb 2011) Log Message: ----------- 肝心の敵味方がなかったので追加しました。 Modified Paths: -------------- trunk/Documents/全体布陣.xls Modified: trunk/Documents/全体布陣.xls =================================================================== (Binary files differ) From sangokushi-svn @ lists.sourceforge.jp Mon Feb 21 02:13:12 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Mon, 21 Feb 2011 02:13:12 +0900 Subject: [Sangokushi-svn] [SVN_Comitted] [496] 20110220_Skype.txt Message-ID: <1298221992.332433.22440.nullmailer@users.sourceforge.jp> Revision: 496 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=496 Author: hryksbt Date: 2011-02-21 02:13:12 +0900 (Mon, 21 Feb 2011) Log Message: ----------- 20110220_Skype.txt Added Paths: ----------- trunk/IRC_ChatLog/20110220_Skype.txt Added: trunk/IRC_ChatLog/20110220_Skype.txt =================================================================== --- trunk/IRC_ChatLog/20110220_Skype.txt (rev 0) +++ trunk/IRC_ChatLog/20110220_Skype.txt 2011-02-20 17:13:12 UTC (rev 496) @@ -0,0 +1,426 @@ +?[2011/02/19 22:53:38] 裕之: ダウンロード失敗した方へ +[2011/02/19 22:53:55] 裕之: 名古屋にあるしょーもない喫茶店の写真です +[2011/02/19 22:54:46] 裕之: http://park7.wakwak.com/~nymidi/mountain/ +[2011/02/19 22:54:50] 裕之: こんな店です。 +[2011/02/20 22:08:22] 裕之: こんばんは! +[2011/02/20 22:08:40] 裕之: narunaruさん英会話中? +[2011/02/20 22:08:44] 裕之: doiさん +[2011/02/20 22:43:46] *** 裕之が全体布陣.xls,...を送信しました *** +[2011/02/20 22:43:59] 裕之: こうゆうのを書いてみました +[2011/02/20 22:44:29] 裕之: 内容は仮ですけど、全体がつかみ易いかと思います。 +[2011/02/20 22:49:38] narunaru: こんばんわー +[2011/02/20 22:49:47] 裕之: ばんわです^^ +[2011/02/20 22:50:05] 裕之: 上のファイル覗いてみてください +[2011/02/20 22:50:14] narunaru: 了解です^^ +[2011/02/20 22:50:41] 裕之: ナイスダウンロードです。 +[2011/02/20 22:52:39] 裕之: どうですかあああ!? +[2011/02/20 22:52:57] narunaru: 良いと思います^^ +[2011/02/20 22:53:18] narunaru: ひろゆきさんも担当もつんですね +[2011/02/20 22:53:20] 裕之: よかたです +[2011/02/20 22:53:46] 裕之: 私は、誰もやりたくなそうなものに手をつけます +[2011/02/20 22:53:57] narunaru: なるほど +[2011/02/20 22:54:15] 裕之: ヘルプとか作るの面倒じゃないですか +[2011/02/20 22:54:38] narunaru: たしかにめんどいですよねー +[2011/02/20 22:54:47] 裕之: そうゆうとこです。 +[2011/02/20 22:55:00] 裕之: あとは、マップチップを調達したり、 +[2011/02/20 22:55:16] 裕之: プレーヤーのステータスを調製したりなどなど +[2011/02/20 22:55:22] 裕之: 色々あるわけです +[2011/02/20 22:55:35] 裕之: 三国志マニアなら喜んで参加してくれそうですね^^ +[2011/02/20 22:55:52] narunaru: そうですね^^ +[2011/02/20 22:56:10] 裕之: 今日は久々に波乗りしてきました +[2011/02/20 22:56:20] 裕之: 帰りにラーメン食べたので、喉が渇きます +[2011/02/20 22:57:49] narunaru: サーフィンしてるんですか? +[2011/02/20 22:58:49] 裕之: あれ言いませんでしたっけ? +[2011/02/20 22:59:09] 裕之: narunaruさんも?? +[2011/02/20 22:59:20] narunaru: はい、初耳です^^てかまだ寒くないんですか? +[2011/02/20 22:59:28] narunaru: いえ、自分はやったことないです +[2011/02/20 22:59:33] 裕之: 武装すれば平気ですよ +[2011/02/20 22:59:40] 裕之: 着替えるときだけ寒いです +[2011/02/20 22:59:41] narunaru: やってみたいですが、難しそう +[2011/02/20 22:59:50] narunaru: そうなんですねー +[2011/02/20 22:59:50] 裕之: めちゃくちゃ難しいです +[2011/02/20 22:59:59] narunaru: すぐに立てるようになるんですか? +[2011/02/20 23:00:14] 裕之: はじめは、前に漕ぐ事すらで来ません +[2011/02/20 23:00:34] 裕之: 毎日やって1週間くらいで、崩れたところに立てるようになります +[2011/02/20 23:00:58] 裕之: 1年くらいで、波の上を走れるようになります +[2011/02/20 23:01:01] narunaru: そんなに難しいんですねー +[2011/02/20 23:01:07] 裕之: そうなるともう、中毒です +[2011/02/20 23:01:13] narunaru: おもしろそう^^ +[2011/02/20 23:01:31] 裕之: 最初の1年で3分の2の人たちがやめますよ +[2011/02/20 23:01:36] 裕之: 辛いんですよ +[2011/02/20 23:01:44] narunaru: そうなんですね +[2011/02/20 23:01:48] 裕之: おぼれそうになるし、日焼けもひどい +[2011/02/20 23:02:27] 裕之: 波が来るたびに始めの頃は100%巻かれて、ゴボゴボでス +[2011/02/20 23:02:32] narunaru: あぁ、日焼けは辛そうですね。。。少し違うかもしれませんが、自分も南半球に行ったときに、日焼けでえらいめにあいました。 +[2011/02/20 23:02:45] narunaru: そうなんですねー +[2011/02/20 23:02:45] 裕之: 南半球はひどいですよね +[2011/02/20 23:03:01] narunaru: はい、紫外線の強さがはんぱなかったです。 +[2011/02/20 23:03:24] 裕之: オーストラリアですか? +[2011/02/20 23:03:37] narunaru: ニューカレドニアです +[2011/02/20 23:03:44] 裕之: おーー +[2011/02/20 23:03:59] 裕之: 意外と、住んでる人は欧米系? +[2011/02/20 23:04:44] narunaru: 本島は白い人が多かったですが、ウベア島とかってとこはもう現地の人っぽい人しか住んでない感じでした。 +[2011/02/20 23:05:37] 裕之: 仕事で言ったんですか?? +[2011/02/20 23:05:52] narunaru: いえ、ちょっとした旅行です +[2011/02/20 23:06:18] 裕之: リッチな旅行ですよね +[2011/02/20 23:06:55] narunaru: そうですねー ちょっと奮発した感じです +[2011/02/20 23:07:30] 裕之: 因みに、さっきの図ですけど、あれを見るまでは、全体のイメージが良くわからない感じでした??? +[2011/02/20 23:08:36] narunaru: あ、全体像は分りましたー。あれをブレイクダウンしていけば、設計書に使えると思います。 +[2011/02/20 23:08:59] 裕之: 機能単位と、機能ごとの連携ですよね +[2011/02/20 23:09:34] narunaru: そうですね +[2011/02/20 23:10:20] 裕之: ここまでを最小限としておけばいいのかと思います。 +[2011/02/20 23:10:39] 裕之: Socketの部分はちょっとおいておいて。 +[2011/02/20 23:11:13] 裕之: 二次開発では、コミュニケーションツールとか、 +[2011/02/20 23:11:22] 裕之: WordPressとの +[2011/02/20 23:11:31] 裕之: 連携を強めたいですね +[2011/02/20 23:11:48] 裕之: あとはアイテムか +[2011/02/20 23:12:24] 裕之: ここまで網羅すると、今の仕様書の分は全部盛り込んだかなって感じになると思います。 +[2011/02/20 23:13:29] narunaru: アイテムって結局消費型なんでしたっけ?それともずっとあるんでしたっけ? +[2011/02/20 23:13:41] 裕之: はい。いい質問ですね +[2011/02/20 23:14:05] 裕之: 考えてません。 +[2011/02/20 23:14:08] doi: こんばんは。 +[2011/02/20 23:14:26] doi: ちょっとしかいれないと思いますが、ドキュメント見てみますね。 +[2011/02/20 23:14:33] 裕之: はいー +[2011/02/20 23:14:49] 裕之: 今ダウンロード失敗しちゃいましたよね +[2011/02/20 23:15:06] doi: SVNからとりますよ +[2011/02/20 23:15:10] 裕之: Skypeで公開中に、更新したからだと思います +[2011/02/20 23:15:17] 裕之: はい、お願いしますー +[2011/02/20 23:16:53] 裕之: お、戦闘終了時の機能もあった。。 +[2011/02/20 23:16:57] 裕之: 必須ですね +[2011/02/20 23:26:42] 裕之: 図を描いてみてわかりましたけど、 +[2011/02/20 23:27:05] 裕之: やっぱり、戦闘の処理関係は鯖でないとダメっぽいですね +[2011/02/20 23:27:22] narunaru: そうなんですねー +[2011/02/20 23:27:52] narunaru: サーバ側多分大変になると思いますよー +[2011/02/20 23:28:16] 裕之: 開発ボリュームですか??? +[2011/02/20 23:28:52] narunaru: ボリュームもそうですが、それよりもロジックを考えるのが大変そうです。 +[2011/02/20 23:29:18] 裕之: クライアントはそうですか?? +[2011/02/20 23:29:26] 裕之: どうですか?? +[2011/02/20 23:30:09] 裕之: http://www.amazon.co.jp/MMORPG%E3%82%B2%E3%83%BC%E3%83%A0%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Game-developer-%E3%83%8A%E3%83%A0-%E3%82%B8%E3%82%A7%E3%82%A6%E3%82%AF/dp/4797328460/ref=sr_1_1?ie=UTF8&qid=1298212183&sr=8-1 +[2011/02/20 23:30:21] 裕之: こんな本もあるんですねー +[2011/02/20 23:30:53] narunaru: はい、ありますねー。でもあんまり役に立たないってレビューに書いてあったんでスルーしました +[2011/02/20 23:31:01] 裕之: おおお」 +[2011/02/20 23:31:23] 裕之: これのゲームエンジンプログラミングが、今家にあります +[2011/02/20 23:32:00] narunaru: そうなんですねー。自分は黄色やつなら実家にあります。 +[2011/02/20 23:32:06] narunaru: タイトルは忘れましたが^^; +[2011/02/20 23:32:10] 裕之: ゲームの実装面よりも設計面に重きを置いた本です。プラグイン設計や +モジュール分割など、ちょっと複雑なゲームを作るときに必要な +ノウハウが解説されています。一見難しそうなスクリプトエンジンの +開発も、非常にわかりやすく簡潔なコードで解説されており、 +理解しやすいと思います。 +[2011/02/20 23:32:24] 裕之: 読んでみます! +[2011/02/20 23:32:46] narunaru: はい、ぜひ読んでみて下さい。 +[2011/02/20 23:32:59] 裕之: 設計が重要ですからね +[2011/02/20 23:33:26] narunaru: 自分はどちらかというと自身の情報はクライアント側で処理するというか、 +[2011/02/20 23:34:22] narunaru: 1クライアントからしてみたら、他のプレイヤーはCPUと変わらないので、普通のネットワークゲームとは違うものと同じ考え方でつくれるんじゃないかと思ってます。 +[2011/02/20 23:34:51] 裕之: ふむふむ +[2011/02/20 23:35:04] narunaru: なのでサーバ側で全てやらなくてもいいんじゃないかなって思ってますね。 +[2011/02/20 23:35:05] 裕之: たしかにそれはいえますね +[2011/02/20 23:36:16] narunaru: 後、クライアント側でやると負荷分散も出来るので、それを考慮するとクライアント数が増えても通信回数は増えるけど計算量はあまり増えない気がします。 +[2011/02/20 23:36:44] narunaru: なのでサーバにやさしいです。 +[2011/02/20 23:37:02] 裕之: クライアントの負荷は、上限があるんですが、鯖には上限はないんですよね +[2011/02/20 23:37:30] 裕之: 鯖は簡単ではないですけど、増設できるので。 +[2011/02/20 23:38:11] narunaru: はい、でも上の理論で行くとクライアントで計算するのは自身の情報のみなで他のクライアントの分は関係ないため、問題ないと思います。 +[2011/02/20 23:38:17] 裕之: なので、負荷は鯖に偏らせた方がいいって、一時期はなしてたことがあるんでしょ +[2011/02/20 23:38:28] 裕之: ですよ +[2011/02/20 23:38:46] 裕之: でしょ⇒ですよ +[2011/02/20 23:38:57] narunaru: はい、大丈夫です^^ +[2011/02/20 23:39:25] 裕之: いずれにしても、他のクライアントの情報は受け取りますからね +[2011/02/20 23:39:32] 裕之: その受け取った情報を、 +[2011/02/20 23:39:47] 裕之: どっちが結果として返す処理を行うかだと思うんですけど、 +[2011/02/20 23:39:53] 裕之: たいしたことないですかね???? +[2011/02/20 23:41:06] narunaru: 私の考えでは他のプレイヤーの情報を受け取るのは、他のプレイヤーの情報表示するのみと考えてます。それはCPUの情報を表示するのと同じでその情報が自身に存在しているのか、サーバから送られてくるかだけの違いしかない気がします。 +[2011/02/20 23:43:06] 裕之: 理解できました。 +[2011/02/20 23:43:11] narunaru: あー、結果の判定はサーバ側のほうが良いと思います。 +[2011/02/20 23:43:13] 裕之: 攻撃については、 +[2011/02/20 23:43:19] 裕之: あ、そうゆうことですね +[2011/02/20 23:43:23] 裕之: あくまで移動だけ +[2011/02/20 23:45:28] *** 裕之が全体布陣.xls,...を送信しました *** +[2011/02/20 23:45:34] 裕之: こんなかんじですかねー +[2011/02/20 23:46:21] 裕之: はやとちりでしたら So sorryです +[2011/02/20 23:46:39] *** 裕之が全体布陣.xls,...を送信しました *** +[2011/02/20 23:46:49] 裕之: こっちでした。計略もHttp側 +[2011/02/20 23:48:31] narunaru: そうですねー そんな感じだと思います。 +[2011/02/20 23:49:01] 裕之: オンラインゲームってゆうと、必ずSocketがカラムっぽいような感じに見えますね +[2011/02/20 23:49:10] 裕之: さっきの本のシリーズだと +[2011/02/20 23:49:29] narunaru: 普通に売ってるゲームは間違いなくソケットでしょうね。 +[2011/02/20 23:49:37] narunaru: 自分がDLNAの開発をしたときは +[2011/02/20 23:49:41] narunaru: ソケットでしたし。 +[2011/02/20 23:49:47] 裕之: 最近は、ブラウザものが多いですからね +[2011/02/20 23:50:44] narunaru: 確かにそうですねー +[2011/02/20 23:50:56] 裕之: AV関係の通信にはソケットでしょうねー +[2011/02/20 23:51:28] 裕之: いや違うか +[2011/02/20 23:51:50] 裕之: これはそうとも言い切れませんね +[2011/02/20 23:55:40] narunaru: そうですねー。DLNAはHTTPでも十分かもしれないと思ったんですが、ペアリングのときにHTTPでどうやってやるのかって言う疑問に今ぶちあたりました。 +[2011/02/20 23:55:53] narunaru: なのでなんともいえないです。 +[2011/02/20 23:56:09] 裕之: 両方ともhttpサーバだったりして +[2011/02/20 23:56:21] narunaru: というと? +[2011/02/20 23:56:39] 裕之: いや、両方ともhttpで受け取れるように、 +[2011/02/20 23:56:47] 裕之: するだけの話です。 +[2011/02/20 23:57:18] 裕之: 前に、三国志作るときに、一時期この方式も検討に上がりました。 +[2011/02/20 23:57:38] 裕之: そうすりゃ鯖からプッシュ出来るじゃん +[2011/02/20 23:57:43] 裕之: ってかんじで^^ +[2011/02/20 23:59:48] narunaru: うーん、よく分からなくなってきました。。。もしかしたら自分のHTTPの認識がずれてるのかもしれません。 +[0:00:19] 裕之: 端末の方もHttp Serverにしちゃうんですよ +[0:00:53] narunaru: それだとペアリングが出来るんですか? +[0:01:04] 裕之: ペアリングってどんなかんじですか? +[0:01:44] narunaru: サーバがブロードキャストしてくるものに対して返答するみたいな形だった気がします。自分がつくったやつは。 +[0:02:18] narunaru: クライアントはペアリング待ち状態にしてですね。 +[0:02:29] 裕之: ふむふむ +[0:03:08] 裕之: まあ、さっきの話は、プロトコルをhttpにして、クライアントで受け取るにはって話ですから +[0:03:24] 裕之: 要件は違うでしょうねー +[0:04:19] narunaru: はい、ペアリング完了後ならいけそうですね +[0:05:28] 裕之: 方式どうしましょかねー +[0:05:53] 裕之: narunaruさん方式で問題ないか、ブロードキャストしてみましょうか +[0:06:29] narunaru: いえ、売ってるゲームはソケットというだけなので、今回はHTTPでいくならそれで良いとおもいます。 +[0:07:11] doi: ちょっと思ったことだけですが、 +[0:07:14] 裕之: はい +[0:07:45] doi: 作る内容を決める前に、全体布陣.xlsのような資料があると、どうなんだろうという気がしています。 +[0:08:10] 裕之: といいますと??? +[0:08:35] doi: 作るものによって設計が変わるのは当然ですが、作るものがあいまいなままに設計が進んでいるというか。 +[0:09:28] doi: 企画と設計と実装方式とレベルの違うものを一度に扱おうとしているのではないかなと。 +[0:10:44] 裕之: 内容はまだ仮の状態です +[0:12:45] 裕之: ま、確かに色々無理懲り突っ込んだような資料ですね +[0:13:12] 裕之: でも、全体がわかる一つのアプローチとしてはありなのかなと思ってます。 +[0:13:45] doi: 個人的には不要な固定化をしてしまうだけなのかなと。 +[0:14:18] 裕之: ふむふむ +[0:14:22] doi: 作るものを決める前に、システムの全体像を決めてしまうと、作るものが構造によって変わるというのは本筋じゃないかと。 +[0:14:38] doi: もちろん、実現不可能なために、内容を変える必要はあるとは思いますが、 +[0:14:55] doi: 作るものを決定し、それに対して、適切な構造をアサインして、 +[0:15:02] 裕之: 作るものは大筋決まってると思いますよ +[0:15:21] doi: 構造的な制約から内容にフィードバックはありだと思うんですが。 +[0:15:32] doi: その「大筋」っていうのが曲者かなと。 +[0:15:53] doi: それによっては、クライアントで計算が不可能ではないかもしれないですし、 +[0:16:03] doi: 逆にサーバですべてやらないとだめかもですし。 +[0:16:05] 裕之: 今はどちらかというと、それをどう実装するかの話になっていると思ってました +[0:16:40] doi: 例えばですが、移動方式も、逐次なのか、半オートなのかとか未定ですよね? +[0:17:08] 裕之: もともとは半オートで考えてましたが、実装が難しそうなので、 +[0:17:21] 裕之: 逐次に変更したり、 +[0:17:39] 裕之: いや、大丈夫そうという意見もあったので +[0:17:47] 裕之: うーん、、となってます +[0:17:58] doi: ですが、決定しないと次に進めないと思います。 +[0:18:15] 裕之: できる方でいいと思うんです +[0:18:23] doi: そこは技術ではなく、企画の問題でしょう。 +[0:18:44] 裕之: 私は半オートがいいと思いますが、出来ないなら、逐次方式です +[0:18:50] doi: 僕は動くアプリではなく、使われるアプリを作りたいので。 +[0:19:00] 裕之: では半オートです +[0:19:54] 裕之: 私の企画では。ですけどね。もっとよさげなものがあるならそれがいいですけど、 +[0:20:19] 裕之: 今のところ出てきてないので、半オート。これでいきましょうか +[0:22:34] narunaru: もう少し仕様をブレイクダウンしていって設計出来るレベルまで持っていけば、アーキテクチャとかも決まるかもしれませんね。 +[0:22:37] doi: すいません。勝手なことばかり言って。 +[0:22:47] 裕之: いえいえ。 +[0:23:02] 裕之: ぜんぜんそーとは思ってなくて、 +[0:23:19] 裕之: ブレイクダウンは、ある程度までしか私には出来ないんですよね +[0:23:42] 裕之: 機能レベルになると、皆さんのようなプロフェッショナルな方々でないと +[0:23:52] 裕之: めちゃくちゃなことになります +[0:23:55] narunaru: はい、自分もそう感じていて、設計者がある程度ブレイクダウンさせるしかないと思ってました。そして最初に作った人の部品に +[0:24:09] narunaru: あわせて他のひとが作りこむっていうやりかたにせざるおえないと +[0:24:16] narunaru: 私は理解しました。 +[0:25:17] 裕之: 開発者が、こっちの方がいいだろうと、経験や勘に物を言わせてもらえば、いいものができるのかなと思ってます +[0:25:20] doi: 進め方次第だと思いますが、「ユーザからみたアプリの詳細な挙動」を定義してあげることが、まず、最初かなと。 +[0:25:56] doi: それが固定されれば、設計や実装に関しては勘を頼りにというのもありだとは思います。進め方次第ですが。 +[0:26:29] 裕之: どちらかというと、どう転んでも必須になる機能から手をつけていき、 +[0:26:54] 裕之: それと一緒に仕様もブレイクダウンする形で考えてます +[0:27:05] doi: なるほど。 +[0:27:27] narunaru: 仕様を決めるのが最初だと思っていたのですが、2011-02-19のチャットでは実装が先と考えられているようでしたので。。。 +[0:27:29] 裕之: そうなれば、一つ一つ私も具体的に考え易いんですね +[0:28:18] 裕之: 何にもなさ過ぎても、それこそ何も仕様がないので、 +[0:28:38] doi: 気になるのは、個別機能の組み合わせであぷりができるなら問題ないのですが、その依存関係を扱い切れるかでしょうね。 +[0:28:41] 裕之: ほんと大雑把な流れは仕様書として書いたとは思ってます +[0:28:50] doi: 具体的には、 +[0:28:54] 裕之: はい +[0:29:15] doi: 半オートという機能から、サーバで全て決めましょう。という設計をして作ったにも関わらず、 +[0:29:40] doi: リアルタイム性(詳細は不明)の理由のために、サーバ処理では不可能。 +[0:29:46] doi: そういうことってあるのかと思います。 +[0:30:44] 裕之: doiさんの意図が理解できました。 +[0:30:51] 裕之: 先ほどの表ですけど、 +[0:31:05] narunaru: はい、そういうことはあると自分も感じました。そもそも各個人が勝手に作って上手く結合できるのかというのも疑問でしたが、部品先行で作ってそれをカスタマイズしていくっていうのが、リーダの考えだと認識しました。 +[0:31:13] 裕之: これでガチ決まりではなくて、その都度編集していくものだと思ってください。 +[0:31:15] 裕之: なので、 +[0:31:45] 裕之: 決まってる部分だけ、記載することにしたほうがいいですね +[0:32:11] 裕之: 私もアレから色々考えてましたが、 +[0:32:34] 裕之: ある程度は作ってから、部品を組み込む方tの方がいいかもしれないとも考えてます +[0:32:48] 裕之: 方t→形 +[0:33:18] doi: 進め方の判断はどなたかが決定しないといけないと思います。 +[0:33:43] doi: あと、仕様に関しては大雑把には書かれていますが、網羅的ではないと思っています。 +[0:34:13] doi: 今の仕様でいうと、各要素の説明の部分を充実させる必要があるかなと思っています。 +[0:34:20] 裕之: 触れてない部分に関しては、是非突っ込みをお願いしたく思います +[0:34:29] doi: 移動中に敵と遭遇するとどうなるのか、 +[0:35:05] doi: 攻撃設定した相手に対して、どのような条件下だと攻撃するのか? +[0:35:16] doi: そんなところが決まると、方式も考えやすいのかなと思います。 +[0:35:20] 裕之: ですね +[0:35:35] 裕之: そこで、QAフォーラムを作りました。 +[0:35:35] doi: 以前に、その辺りのゲームの設計をという話しだったと思っていたのです。 +[0:35:46] doi: 言われて、何もしていない僕もよくないのですが・・・。 +[0:35:55] 裕之: 1件1件気づきベースでコメントしてもらえればと思います +[0:36:20] doi: というところで、今日は休ませていただきますね。 +[0:36:32] 裕之: はい お疲れ様でしたー +[0:36:40] doi: おやすみなさい。 +[0:36:43] 裕之: あ、 +[0:36:44] doi: ログは後でみますね。 +[0:36:46] narunaru: お疲れ様でしたー +[0:37:06] 裕之: http://sourceforge.jp/forum/forum.php?forum_id=25311 +[0:37:23] 裕之: がQAフォーラムですー。ッて事で。^^; +[0:37:57] narunaru: 移動の件ですが、やはりチャットで話したことをまずはまとめないといけないですね。 +[0:38:19] narunaru: 今、どいさんから質問された件ってすでに方向は決まっている件じゃないですか? +[0:38:24] 裕之: わたしは、半オート方式が結局できるのか出来ないかが良くわからないんですよね +[0:38:48] narunaru: なので、チャットから一度仕様を抜き出さないといけないですね。 +[0:39:15] narunaru: 一応、自分がたっきさんとリーダとチャットして、今理解している仕様は +[0:39:21] narunaru: ・半オート +[0:39:31] narunaru: ・移動中は攻撃されない。 +[0:39:40] narunaru: ・移動中の敵とのぶつかりもない。 +[0:40:17] 裕之: ・移動中は、移動前の座標に対して攻撃が当たる +[0:40:23] 裕之: 出なかったでしたっけ? +[0:40:39] narunaru: いえ、どっちにするかきまってなかったと思います。 +[0:40:49] 裕之: (でないと、移動され続けると攻撃できない) +[0:40:57] narunaru: はい、そうなるとおもってました。 +[0:41:02] 裕之: では移動前の座標に、今ここで決めます +[0:41:11] narunaru: 了解です。 +[0:41:16] 裕之: なので、上記4つですね +[0:41:41] 裕之: 仕様書に反映させます +[0:41:50] narunaru: はい、お願いしますー +[0:42:05] 裕之: あと、また不明な点があれば、QAにお願いしますね +[0:42:25] 裕之: そうそう、 +[0:42:39] narunaru: はい、QAを出すか仕様をまとめたものをリーダに送ります。 +[0:42:53] narunaru: 認識間違っていれば、指摘していただけば直します。 +[0:43:04] 裕之: 私は、お客さんではないので、無茶区茶な要件は出さないです +[0:43:24] 裕之: 出来なければ、無理!と言いきっちゃってOK「ですし、 +[0:43:35] 裕之: そのへんはOKですよね??? +[0:45:04] narunaru: はい、大丈夫です^^自分は仕様のブレイクダウンは行っても良いですが、全員への周知や、各機能の結合はリーダのほうにお任せしたいと思ってますが、大丈夫ですか?結合のほうはとりあえず矛盾が無ければOK的なレベルまでならリーダでも全然いけると思うので。 +[0:45:21] 裕之: それはもちろんです +[0:45:41] 裕之: ん?各機能の結合??? +[0:45:49] 裕之: これはどんなのでしょ?? +[0:46:03] 裕之: 周知はいいんですけど^^; +[0:47:09] 裕之: ドキドキ +[0:47:24] narunaru: あ、インターフェイスレベルの結合ではなく、例えば、HTTP通信を使う想定なのに、クライアント側がソケットで待ち受けしているとか、後は、サーバ側で当たり判定するはずなのに、クライアント側で当たり判定しているとか +[0:47:34] narunaru: そんなレベルです^^; +[0:47:46] 裕之: あー、だいたいまあ大丈夫だと思います +[0:48:06] 裕之: だめなときは、何とかするので問題無しです +[0:48:21] narunaru: はい、後はリーダー内に矛盾が無ければなんとかなる気がします +[0:48:31] 裕之: OKです +[0:48:35] 裕之: なんとかしましょう +[0:48:51] 裕之: 超アバウトでいいんですけど、 +[0:49:10] 裕之: どれくらいで出来上がると思います?1次開発のところまでで。 +[0:49:21] narunaru: 全然分らないです^^; +[0:49:25] 裕之: 主に時間的な話です。 +[0:49:33] narunaru: なんせアンドロイドで作ったことないので^^; +[0:49:49] 裕之: 因みに、今アップされてるのは、約10名がかりで1ヶ月です。 +[0:51:42] narunaru: 普通なら少し短くなりますが、今回はターンせいからリアルタイムに変わるのと、通信がもしかしたら、Http⇒ソケットに変わるので、もしかしたら上記より長くなるかもしれないですねー +[0:51:56] 裕之: 絶対長くなります +[0:52:01] 裕之: 機能が増えてますしね +[0:52:11] narunaru: 機能増えてるんですか? +[0:52:15] 裕之: ソケットに変わるかは、これから決まると思います +[0:52:31] 裕之: 増えてないですかね??? +[0:53:03] 裕之: 属性が増えてますね +[0:53:06] narunaru: すいません、どんな前のがどんな機能があったのかよくわかってないせいか増えた気がしてなかったです^^; +[0:53:58] 裕之: 計略も、1次か2次のどちらに組み込むかわかりませんけど +[0:54:00] narunaru: 属性ってでもまだ仕様まったくないですよね^^;あれって一次にいれるんですか? +[0:54:14] 裕之: 省いちゃいましょうか。 +[0:54:18] 裕之: そうすると、 +[0:54:35] narunaru: 自分は最小限だと思ってました^^; +[0:54:35] 裕之: 今アップされてるもので、移動と攻撃方式さえ変えれば、 +[0:54:48] 裕之: 完成じゃないですか。 +[0:55:05] narunaru: 後はターンせいを辞めることですね。 +[0:55:05] 裕之: それが重たいのかもしれないですけど^^; +[0:55:20] narunaru: 多分ターンせいを辞めるのが重そうです^^; +[0:56:25] 裕之: doiさんの言うように、使われるアプリを作るためにも、そこはやめて行きたい!! +[0:56:34] 裕之: ターン制撲滅運動 +[0:56:46] 裕之: 臨場感のためにも +[0:57:12] narunaru: はい、そうですね^^ +[0:57:23] 裕之: ポーリング方式でも、 +[0:57:36] 裕之: ターン制は脱出できますよね +[0:57:44] narunaru: 出来ると思います。 +[0:57:47] 裕之: ただ即時反映されないだけで +[0:57:50] 裕之: ですね +[0:57:59] 裕之: 実際、数秒間隔?? +[0:58:10] narunaru: ポーリングですか? +[0:58:19] 裕之: です。ポーリング間隔 +[0:58:24] 裕之: 5秒とか +[0:58:36] 裕之: 因みに今アップしてるものは、20秒です +[0:58:38] narunaru: ポーリングにする場合にパフォーマンスを見て決めるんじゃないんですか? +[0:58:58] 裕之: あ、えーと、世の中的に、 +[0:59:25] 裕之: 短いポーリング間隔を採用してる場合、どんな紋なのかという感覚がないので、聞いてみました。 +[0:59:58] 裕之: サーバだけなら3秒とかありますね +[0:59:59] narunaru: アクションとかだと1/60秒だと思います。 +[1:00:06] 裕之: ほー +[1:00:09] 裕之: ほー +[1:00:14] 裕之: すいごいですね +[1:00:17] 裕之: すいごい +[1:00:24] narunaru: ただポーリングはしてないと思いますが^^;あくまでするとすればです +[1:00:40] narunaru: じゃないと60fpsにならないので +[1:01:11] 裕之: 1/60秒で、データを取って、 +[1:01:36] 裕之: 画面に反映させて2/60になって +[1:01:57] 裕之: それくらいは当たり前の世の中なんでしょうか??? +[1:03:15] narunaru: 画面の描画とデータの受け取りは実際には非同期になっていて、キューか何かでやりとりしてると思います。そうですねー、多分ですが上記のようになってると思います。 +[1:03:29] 裕之: そこは非同期で出来るんですね +[1:03:41] 裕之: なら全然問題なしですね +[1:04:30] 裕之: アクションほどのリアルタイム性は要求されないのでせいぜい1?3秒もあれば、体感的に問題ないと思います +[1:04:58] 裕之: 連打とかないですし +[1:05:27] narunaru: そうですね。プレイヤーの移動速度と通信パフォーマンスをみて決めればいいような気がしてます。 +[1:05:38] 裕之: ですね +[1:06:08] 裕之: おこたねこさんに相談します。 +[1:06:33] narunaru: ん?ポーリングにするんですか? +[1:06:33] 裕之: 通信の実証に手をつけてるのでいまのうちに^^; +[1:06:55] 裕之: ポーリングの方が、実装が早いと思ってましたし、 +[1:07:47] 裕之: narunaruさんも、今日ではなくて、前にdoiさんも含めて、ポーリングでいいんじゃないかという話をしてたので +[1:08:28] narunaru: 了解です。ただあーきのはなしなんで、チャットで決めるのではなくまずはMLに流したほうが良いと思います +[1:08:31] 裕之: ソケットだと、Mobile IPが必須なんですよねー +[1:08:59] 裕之: なので、きょうたっきさん宛に流してみてます。 +[1:09:41] narunaru: はい、変更するなら、関係者全員に流したほうがいいと思うので、よろしくですー +[1:10:09] 裕之: おこたねこさんへの相談も含めMLでー +[1:10:19] narunaru: 了解ですー +[1:10:31] 裕之: そうそう、アーキテクチャは、 +[1:10:50] 裕之: 私が率先して決めるもんじゃないですよね +[1:11:05] 裕之: 決めてって言われたら決めますー +[1:11:38] 裕之: 要は第3者的にです +[1:11:48] narunaru: まあ、今回は確かにそうかもです^^;りーだの考えでは話あいのなかで仕様をブレイクダウンしたいんですもんね。 +[1:12:05] 裕之: そうしたいです +[1:12:31] narunaru: そうであれば、通信機能を設計する人がある程度ブレイクダウンすればいいじゃないでしょうか? +[1:12:42] 裕之: いいですねー +[1:12:44] narunaru: まずはですが。 +[1:12:53] 裕之: おこたねこさん?? +[1:13:02] narunaru: ってことになるかもしれません。 +[1:13:12] 裕之: は、できるか出来ないかを実証はしてますけど +[1:13:24] 裕之: ついでにお願いできればベスト^^ +[1:13:55] narunaru: 誰が設計するかはリーダが振ればベストなのかなって思います。それかやりたい人にまかせるかですかねー +[1:14:16] 裕之: もちろん後者がいいですよー +[1:14:40] 裕之: でもきまならければ任せてください +[1:14:53] 裕之: これは自信があります +[1:15:40] narunaru: お、ではやりたいひとが居なければリーダが担当でいい気がします^^ +[1:15:56] 裕之: 出来るならやりますが^^; +[1:16:23] 裕之: 割り振りに自信があります 8-) +[1:16:42] narunaru: あ、すいません。誤認しました^^;なるほど、了解ですー +[1:17:11] 裕之: 私はご存知の通りマルチタレントではないですので^^; +[1:17:34] narunaru: 自分はむしろ芸が無いです^^; +[1:17:45] 裕之: いやいやいやいや +[1:18:12] 裕之: 組み込みの世界で開発してるというだけですごいですよ +[1:19:05] narunaru: でも、正直このシステムだけは誰にも負けないっていうものは持ってないです^^;自分は色々なプロジェクトに参加してるタイプなので、浅く広くになってしまいました^^; +[1:19:54] 裕之: やったことあるのとないのでは大違いですからねー +[1:20:24] 裕之: 自分もどっちかというとそっちよりですね +[1:20:40] 裕之: 何が得意?といわれても、うーむ。。。 +[1:20:56] narunaru: はい、色々なものに触れたいっていうのは自分の希望なんで、仕方ないですが、でも若干後悔もしてます^^; +[1:21:31] 裕之: 色々なものの触れたさに、三国志にも^^; +[1:21:53] 裕之: そうゆう人が多いのかもしれませんね +[1:21:56] narunaru: はい、実際に出来上がったら経歴に入れたいと思います^^ +[1:22:21] 裕之: 携帯見せてホラーーーって出来ますからね +[1:22:33] 裕之: そこで、おおおおと言わせれば価値です +[1:22:37] 裕之: 勝ちです +[1:23:15] narunaru: そうですねー。実際出来あがって動作すれば、企業にもアピールできそうですしねー。 +[1:23:22] 裕之: おおおおと言われなければこれは一重に私の責任でしょうねー +[1:24:04] 裕之: 一番いいのは、 +[1:24:09] narunaru: 大丈夫です。おおおといわれなくても十分経歴にはなると思いますのでー +[1:24:36] 裕之: あ、あのゲーム作ってんの??超スゲー と、見せるまでもない状態に持っていくことですね +[1:24:55] narunaru: それが出来たら確かにすごいですね^^ +[1:25:20] 裕之: いつかわかりませんけど、そこに持っていきます +[1:25:52] narunaru: はい、そのためにも色々頑張って下さいねー +[1:26:40] 裕之: 無償で労力を提供して頂いてますが、こういった形での見返りはあるべきだと思うんです +[1:26:53] 裕之: 楽しんでもらう以外にもですね +[1:27:13] 裕之: 見返りの形はさまざまだと思いますが +[1:27:34] 裕之: 何かのときに話のネタになるだけでも +[1:27:49] narunaru: はい、それが自分には大きいと思うので大丈夫です^^ +[1:27:51] 裕之: 小さな見返りですよね +[1:28:17] 裕之: ではそんなところで +[1:28:33] 裕之: 明日、MLに流したり、仕様書を編集しますね +[1:29:14] narunaru: はい、お願いしますー^^ ちなみに移動の仕様変更はまだまだ全然ありなので、もし変えたくなったら言ってください +[1:29:23] narunaru: ではおやすみなさい☆ +[1:29:35] 裕之: 了解ですー +[1:29:41] 裕之: お休みなさい ((ninja)) \ No newline at end of file From sangokushi-svn @ lists.sourceforge.jp Tue Feb 22 01:06:09 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Tue, 22 Feb 2011 01:06:09 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzQ5N10gIO+8nE9w?= =?utf-8?b?ZW7kuInlm73lv5d2MSAuIDDku5Xmp5jmm7jvvJ4=?= Message-ID: <1298304369.046662.26287.nullmailer@users.sourceforge.jp> Revision: 497 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=497 Author: hryksbt Date: 2011-02-22 01:06:08 +0900 (Tue, 22 Feb 2011) Log Message: ----------- <Open三国志v1.0仕様書> 移動方式を半オートに変更 逐次移動方式の書かれた仕様書は、バックアップとして「old」フォルダに移動 Modified Paths: -------------- trunk/Documents/仕様書/Open三国志v1.0仕様書.pdf trunk/Documents/仕様書/Open三国志v1.0仕様書.ppt Added Paths: ----------- trunk/Documents/仕様書/old/Open三国志v1.0仕様書(20110208版).pdf trunk/Documents/仕様書/old/Open三国志v1.0仕様書(20110208版).ppt Modified: trunk/Documents/仕様書/Open三国志v1.0仕様書.pdf =================================================================== (Binary files differ) Modified: trunk/Documents/仕様書/Open三国志v1.0仕様書.ppt =================================================================== (Binary files differ) Added: trunk/Documents/仕様書/old/Open三国志v1.0仕様書(20110208版).pdf =================================================================== (Binary files differ) Property changes on: trunk/Documents/仕様書/old/Open三国志v1.0仕様書(20110208版).pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Documents/仕様書/old/Open三国志v1.0仕様書(20110208版).ppt =================================================================== (Binary files differ) Property changes on: trunk/Documents/仕様書/old/Open三国志v1.0仕様書(20110208版).ppt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream From sangokushi-svn @ lists.sourceforge.jp Mon Feb 28 22:32:01 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Mon, 28 Feb 2011 22:32:01 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzQ5OF0gIOenuw==?= =?utf-8?b?5YuV44KE44CB5pS75pKD44Gr6Zai44GZ44KL5LuV5qeY44KS44OW44Os44Kk?= =?utf-8?b?44Kv44OA44Km44Oz44GX44Gf6LOH5paZ?= Message-ID: <1298899921.351644.29789.nullmailer@users.sourceforge.jp> Revision: 498 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=498 Author: hryksbt Date: 2011-02-28 22:32:01 +0900 (Mon, 28 Feb 2011) Log Message: ----------- 移動や、攻撃に関する仕様をブレイクダウンした資料 Added Paths: ----------- trunk/Documents/仕様書/commands.ppt Added: trunk/Documents/仕様書/commands.ppt =================================================================== (Binary files differ) Property changes on: trunk/Documents/仕様書/commands.ppt ___________________________________________________________________ Added: svn:mime-type + application/octet-stream From sangokushi-svn @ lists.sourceforge.jp Mon Feb 28 22:33:04 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Mon, 28 Feb 2011 22:33:04 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzQ5OV0gIOWFiA==?= =?utf-8?b?44Gu44OV44Kh44Kk44Or44GuUERG54mI?= Message-ID: <1298899984.596907.31148.nullmailer@users.sourceforge.jp> Revision: 499 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=499 Author: hryksbt Date: 2011-02-28 22:33:04 +0900 (Mon, 28 Feb 2011) Log Message: ----------- 先のファイルのPDF版 Added Paths: ----------- trunk/Documents/仕様書/commands.pdf Added: trunk/Documents/仕様書/commands.pdf =================================================================== (Binary files differ) Property changes on: trunk/Documents/仕様書/commands.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream From sangokushi-svn @ lists.sourceforge.jp Mon Feb 28 22:34:43 2011 From: sangokushi-svn @ lists.sourceforge.jp (OpenSangokushi commit ML) Date: Mon, 28 Feb 2011 22:34:43 +0900 Subject: [Sangokushi-svn] =?utf-8?b?W1NWTl9Db21pdHRlZF0gWzUwMF0gIOenuw==?= =?utf-8?b?5YuV44Go5pS75pKD44Gu5LuV5qeY44Gr44Gk44GE44Gm56K66KqN?= Message-ID: <1298900083.016933.739.nullmailer@users.sourceforge.jp> Revision: 500 http://sourceforge.jp/projects/sangokushi/svn/view?view=rev&revision=500 Author: hryksbt Date: 2011-02-28 22:34:42 +0900 (Mon, 28 Feb 2011) Log Message: ----------- 移動と攻撃の仕様について確認 Added Paths: ----------- trunk/IRC_ChatLog/20110227_Skype.txt Added: trunk/IRC_ChatLog/20110227_Skype.txt =================================================================== --- trunk/IRC_ChatLog/20110227_Skype.txt (rev 0) +++ trunk/IRC_ChatLog/20110227_Skype.txt 2011-02-28 13:34:42 UTC (rev 500) @@ -0,0 +1,400 @@ +?[2011/02/27 23:16:48] 裕之: こんばんはー^^ +[2011/02/27 23:17:19] narunaru: こんばんわー^^おひさしぶりですー +[2011/02/27 23:17:37] 裕之: おひさです? +[2011/02/27 23:17:50] *** 裕之がcommands.ppt,...を送信しました *** +[2011/02/27 23:18:04] 裕之: まだつめ切れてないですけど、 +[2011/02/27 23:18:24] 裕之: doiさんとこんな感じのを作ってます +[2011/02/27 23:18:57] narunaru: お、そうなんですねー。中身見てみますー^^結局通信はどうなったんですか? +[2011/02/27 23:19:22] 裕之: doiさん方式がいい気がします +[2011/02/27 23:19:44] narunaru: では、ポーリングですね^^ +[2011/02/27 23:20:09] 裕之: udpはない方がよさそうですね +[2011/02/27 23:20:32] narunaru: そうなんですねー。ちなみになぜですか? +[2011/02/27 23:21:19] narunaru: 固定IPじゃないからですか? +[2011/02/27 23:22:33] 裕之: どちらかというと、位置情報を伝えるようなUDPの使い方が、返ってパフォーマンスに響くのかと思いました。 +[2011/02/27 23:23:05] 裕之: なので、ソケットを使用するにしても、TCPで、移動先を教えて、 +[2011/02/27 23:23:21] 裕之: 移動事態の処理はクライアントで行うか、 +[2011/02/27 23:23:47] 裕之: サーバがHttpで待ち受けして、全て処理をサーバで行うか +[2011/02/27 23:23:55] 裕之: このどちらかかと思うんですけど、 +[2011/02/27 23:24:11] 裕之: 開発効率を考えれば後者ではないかな、と思います +[2011/02/27 23:24:15] 裕之: 違いますかね??? +[2011/02/27 23:26:49] narunaru: TCPでいくのは全然良いと思うのですが、判断理由がよく分からなかったので、そこを教えて頂きたいです。なぜUDPで位置情報を伝えるような使い方のほうがパフォーマンスが悪くなるのでしょうか? +[2011/02/27 23:27:07] 裕之: 通信頻度ですね +[2011/02/27 23:27:08] narunaru: この辺りのイメージがつかめませんでした。 +[2011/02/27 23:27:34] narunaru: 頻度? +[2011/02/27 23:27:37] 裕之: パケットが落ちてもいいような使い方をする場合、 +[2011/02/27 23:27:45] 裕之: つまりUDPですけど、 +[2011/02/27 23:27:48] narunaru: はい +[2011/02/27 23:28:17] 裕之: この場合は、パケットが落ちてもいい分、沢山通信を送信するそうです +[2011/02/27 23:28:25] 裕之: サーバはそれでいいですけど、 +[2011/02/27 23:28:45] 裕之: それを受けるクライアントは、つまりずーーーっと通信を受け続けてることになるので、 +[2011/02/27 23:28:58] 裕之: それがパフォーマンスに影響するのではないかと思いました。 +[2011/02/27 23:29:33] narunaru: なるほど、確かに一理ありますね。ですが、別な考え方も出来ます。あくまで一例なので参考程度に聞いて下さい。 +[2011/02/27 23:29:39] 裕之: ぜひぜひ +[2011/02/27 23:33:34] *** 裕之がcommands.ppt,...を送信しました *** +[2011/02/27 23:33:49] 裕之: 最終ページに1行追加しました。 +[2011/02/27 23:34:08] narunaru: まず、前提として色々な計算処理をサーバで行う場合のケースで話をします。サーバ側で計算等を行う場合、クライアント⇒サーバへは確実に情報を届けなくてはならないため、信頼性を加味してTCPで通信したほうが良いと思います。そしてサーバ⇒クライアントの通信がUDPで、たとえ、パケットが上手く伝わらなくも矛盾が発生するのは一クライアント端末のみです。しかも計算処理はサーバ側で行われているため、サーバ内での矛盾は発生しなくなります。そして次のUDP通知が届いた際にはきちんと結果が反映されるので、あまり問題は無いきがします。いわゆるユーザはらぐったとしか感じないのではないかと思います。 +[2011/02/27 23:34:59] 裕之: TCPの再送機構に任せた方がいいと言うのはどうでしょうか? +[2011/02/27 23:35:56] 裕之: それと、 +[2011/02/27 23:36:10] narunaru: ユーザ数が増えるとTCPは再送機構などがある分、一つのクライアントにデータを通信する処理が非常に重くなると懸念されます。これはユーザ数が増えた場合に致命的になると私は考えてました。 +[2011/02/27 23:37:19] 裕之: 通信が途切れたとき、 +[2011/02/27 23:38:09] 裕之: サーバのHttpソケットのみの構成の場合、クライアントの方が、通信の制御を行っているはずなので、 +[2011/02/27 23:38:47] 裕之: MobileIPのような仕組みも不要になり、校正がシンプルで開発が早い +[2011/02/27 23:39:04] 裕之: 私が考えたのはこんなところです +[2011/02/27 23:39:29] narunaru: あ、HTTPプロトコルを使用する前提なんですね。それなら了解です。そもそもUDPは使えないと思うので。 +[2011/02/27 23:40:18] 裕之: Androidでは、Httpとソケットの両方がサポートされてて、HttpClientの標準ライブラリが使えるんですよね +[2011/02/27 23:40:55] narunaru: はい、今の三国志はHTTPXXXXっていうクラスを使ってますねー +[2011/02/27 23:41:04] 裕之: そです さすが +[2011/02/27 23:42:23] narunaru: では通信はTCPでHTTPプロトコルということでおおむね決定ですね +[2011/02/27 23:42:43] 裕之: あとは、ポーリング間隔で、多人数になったときの処理の重さを調整でしょうか +[2011/02/27 23:42:52] 裕之: doiさん案なんですけど、 +[2011/02/27 23:43:05] 裕之: たとえば移動中に敵に遭遇した場合、 +[2011/02/27 23:43:16] 裕之: どちらかの攻撃があったとして、 +[2011/02/27 23:43:33] 裕之: そのダメージ数の結果はすぐには出さずに、 +[2011/02/27 23:44:40] 裕之: ぼこぼこと煙を立てたりなんかした後に、ダメージ(=攻撃による兵力の現象)の結果表示をするとか +[2011/02/27 23:45:08] 裕之: それからこれは私の考えですが、 +[2011/02/27 23:45:40] 裕之: 人数が多くてどうしようもなくなったときに、通信方式を一新する +[2011/02/27 23:46:01] 裕之: それまでは、開発の軽量な方式でまずはスタートするのがいいのかなと思いました +[2011/02/27 23:48:00] narunaru: 煙の案は良いと思います。ただ一つ疑問があって、すぐに結果を反映しない場合に、結果を反映させるタイミングはいつになるのでしょうか +[2011/02/27 23:48:32] 裕之: いつがいいでしょうかねえ +[2011/02/27 23:48:51] 裕之: まず、サーバから情報をゲットして、 +[2011/02/27 23:49:13] 裕之: ん +[2011/02/27 23:49:15] 裕之: 違うか +[2011/02/27 23:49:36] narunaru: はい、サーバから攻撃された情報をゲットしないと、まず煙がだせません。 +[2011/02/27 23:49:58] narunaru: そこから、どのタイミングで結果を反映させるのかが、疑問です。 +[2011/02/27 23:50:18] 裕之: ポーリングなので、 +[2011/02/27 23:50:32] 裕之: そのとき得た瞬間の情報を反映させることになりますよね +[2011/02/27 23:51:24] 裕之: なので、クライアントで結果を表示してる頃には、サーバ上の情報はもっと更新されてる +[2011/02/27 23:51:53] narunaru: はい +[2011/02/27 23:52:13] 裕之: ちと、doiさんと話してた内容を見てますのでおまちをー +[2011/02/27 23:52:20] narunaru: 了解ですー +[2011/02/27 23:53:54] 裕之: お待たせです +[2011/02/27 23:54:53] 裕之: 攻撃を仕掛けた側が、すぐに結果表示することは出来ないので、その間を煙でごまかすという作戦ですね +[2011/02/27 23:55:27] 裕之: ぼこぼこの煙の間に、攻撃対象が攻撃の射程範囲外に移動してしまっていた場合は、 +[2011/02/27 23:55:34] 裕之: 攻撃失敗となります +[2011/02/27 23:57:06] narunaru: あー、もしかして攻撃する際のサーバへ送るHTTPリクエストの応答に結果はのせない方針ですか?つまり、結果は全てポーリングしているソケットで受信するということでしょうか? +[2011/02/27 23:57:37] 裕之: そうゆうイメージだと思いますよ +[2011/02/27 23:57:45] narunaru: 了解です。 +[2011/02/27 23:58:31] 裕之: 結果の受信と、自分の行動の送信も全てサーバのHttpソケットに対して、クライアントから問い合わせる形ですね +[0:00:15] narunaru: 自分の行動の送信を問い合わせるという考え方が良くわからなかったです。 +[0:00:46] 裕之: あ、普通にHttpで送信することです +[0:02:21] narunaru: あ、了解です。まだ決まってないのかもしれませんが、一応確認です。クライアント側のHTTP用のソケットはポーリングでデータを受信するものと、自分の行動の送信用のHTTP用のソケットの2種類をもつイメージであってますか? +[0:02:57] narunaru: それとも一種類で両方やるのでしょうか? +[0:03:30] 裕之: どちらかというとdoiさんのアイデアなので、多分と言うところまでしか言えないのですが、2種類持つほうだと思います +[0:04:19] narunaru: 了解ですー +[0:07:14] narunaru: マスの概念なくなったんですか? +[0:07:24] 裕之: そのほうがいいのかなと +[0:08:05] 裕之: マス目があるほうが、当たり判定が難しそう、と言うことだそうです +[0:08:37] narunaru: うーん、どうなんでしょう。マスが無い場合、どこを当たり判定にするのか自分は不明です。 +[0:09:13] 裕之: 移動の直線と直線がクロスするところが当たりになるんでしょうね +[0:10:14] narunaru: プレイヤーとプレイヤーの当たり判定ですか?それって無いんじゃなかったでしたっけ? +[0:10:29] 裕之: 無い??? +[0:10:41] 裕之: あーーー +[0:10:45] 裕之: そうか +[0:10:45] narunaru: はい、プレイヤー同士が交差する場合、すり抜けるとおもってましたが。。。 +[0:11:45] 裕之: 将来的には実装する設計はしておきたい、と言うところです +[0:12:48] narunaru: 了解です。でもマスが無い場合のほうが難しい気もしますけど。。。どっちなんでしょうねー。 +[0:13:04] 裕之: narunaruさんはアルゴリズムマニアですよね +[0:13:36] 裕之: 2つの点が時間をかけて直線を描くときに、 +[0:14:04] 裕之: 点同士がある一定の距離以下になった場合、辺りとする +[0:14:11] 裕之: 当たりとする +[0:14:31] 裕之: おそらくこんなプログラムになるんじゃないかと思いますけど、 +[0:14:45] 裕之: マスがあるとどうなんでしょう +[0:15:18] 裕之: X1Y1から、X3Y7に移動すると決めたときに、 +[0:15:23] narunaru: マスで考えた場合に、難しいのは多分横に3縦に1とか +[0:15:28] 裕之: どのマスを通るのか +[0:15:28] 裕之: そうですよね +[0:15:35] 裕之: 多分同じ事を +[0:17:15] narunaru: はい、同じことを考えてるんだと思います。これは一応自分の中ではある程度せりできていて、斜めに移動する際にきれいにセルに入らない場合は一番パーセンテージの多いマスに居ることにして、そこから当たり判定をするのがいいのかと思ってました。 +[0:17:36] 裕之: それでも全然いいと思います +[0:18:22] 裕之: どちらが作りやすいかと言うところと、どちらが処理が軽いか、ですよね +[0:19:16] 裕之: それと、どちらが見た目がかっこいいか +[0:19:29] narunaru: そうですねー。作りやすいのはマスに置き換えたほうがやりやすい気がします。マスの概念をなくしても結局は1ドット単位のマスなので。 +[0:19:42] narunaru: あー、見た目はマスが細かいほうがかっこいいかもしれないですねー +[0:19:53] narunaru: いわゆるマスなしに見えるほうが +[0:20:23] 裕之: ドットの概念にはなってしまいますかねー +[0:20:37] 裕之: 作り方次第なのかなと思ってたんですけど +[0:21:18] narunaru: 当たり判定という計算をする上では、結局は自分がどこにいて、どことあたったかは、マスになると思います。 +[0:21:29] 裕之: そうですかー +[0:22:42] narunaru: はい、現実世界でもGPSとかはマスというか緯度、経度みたいな情報であらわしていると思います。 +[0:23:02] 裕之: 2つの点が描く直線通しの最小公倍数みたいなやり方ではいかんですかねえ +[0:23:47] 裕之: 若干言ってることが意味がわからないかもですが^^; +[0:24:25] narunaru: 言いたいことは直線の角度に時間をかけて何秒後にあたるのか計算して出すっていう方法でしょうか? +[0:24:55] 裕之: そうですね +[0:25:18] narunaru: それもXがどこ、Yがどこていうのが決まってないと、角度が出ないと思います。 +[0:25:38] narunaru: 結局はマスなんじゃないかと思います。 +[0:25:44] 裕之: なるほど +[0:26:05] 裕之: doiさんのアイデアを聞いてみたいですね +[0:26:18] 裕之: 細かいマスになるんでしょうかねえ +[0:26:36] 裕之: もしくは何か別の面白そうなアイデアがあるかもです +[0:27:09] narunaru: そうですねー。じぶんはマスしか考えてなかったので、他の人は別なアプローチを思いついているのかもしれませんね。 +[0:27:37] 裕之: マスの大きさが1x1なら点になりますけど +[0:28:45] 裕之: プレイヤーのマップチップが48x48だとして、 +[0:29:31] 裕之: 必ずしもプレイヤーのチップと、計算上のマスのサイズは一致しないと言うことかもしれませんね +[0:30:19] 裕之: そうであれば、 +[0:30:41] 裕之: 48x48よりも細かく計算した方がよりリアルですねー +[0:30:58] narunaru: そうですねー。ただそれだとめんどくさいだけのような気がします^^;結局はプレイヤー用のマスとマップ用のマスを両方持たないといけないので。 +[0:31:36] 裕之: でもその方がかっこいいですよ +[0:32:05] 裕之: マスの概念は無い方がいい←気になりますねー +[0:32:14] narunaru: 確かにそうですが、それならプレイヤー同士の当たり判定だけではなく、攻撃する際もそうしたほうがいい気がします。 +[0:33:11] 裕之: もちろんですね +[0:33:29] 裕之: マップ上の見た目も、滑らかに +[0:33:48] 裕之: ぬるぬると、マップ上を移動して欲しいものです +[0:34:09] 裕之: 攻撃も微妙な角度から +[0:34:15] 裕之: 角度も距離も +[0:35:01] narunaru: はい、多分リーダが求めてるあたり判定は格闘ゲームとかシューティングゲームレベルの細かい当たり判定ってことですよね? +[0:35:10] 裕之: まああ +[0:35:27] 裕之: そこまでこまかーくはなくてもいいと思いますけどね +[0:37:11] 裕之: たとえば48のプレイヤーのチップに対して、マップは16とか +[0:37:35] 裕之: それだけでも、だいぶ違いそうな気がします +[0:37:41] 裕之: 24でも +[0:37:59] 裕之: 全然余裕なら8とか4とか +[0:39:00] narunaru: ん?すいません、話がよく分からなくなりました^^;余裕なら8とか4っていうのはなんでしょうか? +[0:39:24] 裕之: 判定の単位と言いますか +[0:39:52] 裕之: また、移動における座標の制度 +[0:39:54] 裕之: 精度 +[0:40:11] 裕之: わかります?? +[0:40:14] narunaru: 大きいほうが細かいであってます? +[0:40:32] 裕之: ちいさいほうが細かい +[0:40:33] 裕之: です +[0:40:42] 裕之: 48がプレイヤーで、 +[0:41:02] 裕之: 計算処理上は +[0:41:17] 裕之: 例えば先ほどの16ッで言うならば +[0:41:44] 裕之: 16x16が9個、48x48の中にいる +[0:42:03] 裕之: 絵で描きましょうか +[0:42:27] narunaru: はい、よく分からなかったのでお願いします^^; +[0:45:51] *** 裕之がああああ.xls,...を送信しました *** +[0:47:13] 裕之: Excle上の1マスは16x16だと思ってください +[0:47:56] 裕之: 縦横3つずつなので、48x48になりますよね +[0:48:14] 裕之: で、隣の座標と言うのは、16であって +[0:48:19] 裕之: 48ではない +[0:48:54] 裕之: 余計わからなくなりましたかね^^; +[0:48:55] narunaru: 黄色は何を表しているのでしょうか? +[0:49:11] 裕之: 黄色がプレイヤーです +[0:49:29] narunaru: エクセルの大きい四角がマスですか? +[0:49:45] 裕之: 赤の矢印に沿って時間が経過していきます +[0:49:50] narunaru: はい +[0:50:14] 裕之: Excleのセル1つが16x16です +[0:50:31] narunaru: ↑ドットということですよね? +[0:50:35] 裕之: さっき説明してた16です +[0:50:41] 裕之: ドットかピクセルか +[0:50:47] narunaru: はい、了解です。 +[0:51:02] 裕之: なので数値が細かいと精度も細かくなる +[0:51:41] narunaru: 了解です。逆に考えてました。自分は分母のことをいってるのかと思ってたんですが、分子だったんですね。 +[0:51:54] 裕之: です +[0:53:46] narunaru: 上記だと辺り判定はやはり難しくないですかね?結局は左上、右上、右下、左下のどの辺とあたったか判定しなくてはいけない気がするんですが。 +[0:55:12] narunaru: ↑前提としてプレイヤーの大きさを含めて考えた場合ですが +[0:55:41] 裕之: 難しいですかね +[0:56:24] narunaru: はい、難しい気がします。なので話を最初に戻すと簡単にするためにマスを無くすって言う方法に対する結論にはならないきがします。 +[0:56:25] 裕之: プレーヤーの中心の座標で考えるというのであれば、 +[0:56:32] 裕之: 同じなのかなと思いました +[0:57:14] narunaru: 点と四角形では違いますよー +[0:57:26] 裕之: プレイヤーの見た目上は48x48ですけど、 +[0:57:51] 裕之: 辺り判定の計算上は真ん中の16x16で +[0:58:06] 裕之: これなら、いけませんかねー? +[0:58:50] narunaru: それならいけますが、それって見た目当たってるけど、全然当たらないってことになりますが、それでもOKってことでしょうか? +[0:59:42] 裕之: そこまでアクションなゲームでも無いのかなと思ってます +[1:00:08] narunaru: 話を元に戻してしますようですが、それならマス目でいいのではないでしょうか? +[1:00:43] 裕之: なので、doiさんがどのようなアイデアで、そのように仰っていたか、これがポイントですね +[1:01:05] narunaru: そうですねー +[1:02:04] 裕之: マス目でいくにしても、今私が提示したような案が取り入れられると、多少はリアルになるのかなと +[1:02:22] 裕之: 思うところであります +[1:03:01] narunaru: はい、リアルにはなると思います。ただ実装を簡単にするためっていうのが理由だったので、最初の理由にはなっていないと思いました。 +[1:03:29] 裕之: あくまでもバランスの話なので、 +[1:04:01] 裕之: それがどーんと膨らむような要素であれば、今の実装からは除外しないといけないと思いますけど +[1:04:19] 裕之: たいしたこと無いものであれば +[1:04:31] 裕之: 盛り込みたいですね +[1:05:21] narunaru: そうですねー、リアルさを追求したほうがゲームバランスが良くなるなら、実装が難しくなっても盛り込むっていうのは賛成です +[1:05:56] 裕之: 実装が簡単で、リアルさを表現できるものは今の段階で盛り込むです +[1:06:27] 裕之: むずいのは後回しー^^ +[1:06:55] narunaru: では簡単に盛り込む方法をどいさんが検討してくれていることに期待しましょう +[1:07:07] 裕之: そして段々と趣味の世界に… +[1:07:20] 裕之: ですね +[1:07:41] narunaru: はい、自分には簡単に盛り込む方法が思いつかないので^^; +[1:07:57] 裕之: ちなみにこれとは逆の話で、 +[1:08:08] 裕之: 本流の設計開発とは別に、 +[1:08:29] 裕之: こうゆう細かい機能の開発を進めることも出来るので、 +[1:08:59] 裕之: それはそれで +[1:09:36] 裕之: 動いてくれると、早いペースで完成度を上げていくことができますね +[1:10:20] 裕之: なぜなら、今のところ、上位設計は3人で、という事になりましたですが、メンバーは50人くらいですからね +[1:11:11] 裕之: 47人が浮いてる状態なので +[1:12:17] 裕之: 本流の増員と、細かいところの開発は本流の進みを見て検討したいところです +[1:13:50] narunaru: すいません、結論が読み取れませんでした^^;;47人も開発に参加させれたらいいなっていう話でしょうか? +[1:14:38] 裕之: みなさん一度は開発に参加したいと思って、集まって頂いてますからね +[1:15:26] 裕之: 何もしないで知らぬうちに進んでいってしまうよりは、何かお願いできないことが無いかを考えてます +[1:16:12] narunaru: お、いいことですね^^是非皆さんにも何らかの意見や機能開発に参加していただきたいですねー +[1:17:11] 裕之: いずれは、一人歩きするようにしたいですね +[1:18:03] narunaru: 一人歩きってどうやったら出来るんでしょうね。よく考えてみると難しいですよね。 +[1:18:33] 裕之: 開発に興味を持ってもらうことが最初に必要だと思います +[1:18:58] 裕之: それと、コミットされているコードが理解しやすいこともそうですけど、 +[1:20:03] 裕之: こうゆう機能があったらもっと面白いのに!とおもっている開発者がいて、コードをコミットしてもらう。というのを延々と繰り返していけば +[1:20:21] 裕之: 一人歩きしていると言えると思います +[1:23:09] narunaru: うーん、そうですねー確かにそれは一人歩きですね。なんとなく自分の中で納得できました^^ +[1:23:37] 裕之: まま、今すぐの話ではありませんから^^ +[1:24:03] narunaru: はい、将来的にはそうなるといいですね^^ +[1:24:53] 裕之: もちろん、何でもかんでも、組み込むわけには行かないでしょうから、 +[1:25:24] 裕之: そのときは、然るべきメンバーで、こんなコードが送られてきたんだけどどうしましょ、的な検討をして、 +[1:25:58] 裕之: 本流にコミットするかどうかを決めたりすすと思うんですけど、これも今の話しで無いのでまたそのときが来たら、宜しくお願いします +[1:28:46] narunaru: はい、自分も上記のような現象の場合、入れるか入れないのかを判断してしまうと勝手に機能が盛り込まれている(一人歩き)という状態では無いのかと考えていたのですが、仕様を入れるかどうか判断するのは必ずしもひろゆきさんでは無いので、ひろゆきさんから見たら一人歩きしてるように見えるのかなと自分で自分を納得させました^^; +[1:30:05] narunaru: すいません、単純に一人歩きの定義で悩んでいただけです^^;忘れてください^^; +[1:30:31] 裕之: ま、そのときが来たらの話ですからね^^ +[1:30:37] narunaru: そうですねー +[1:30:53] 裕之: ではじかんもじかんですからそろそろZZしましょうかー +[1:31:04] narunaru: はい、おやすみなさいー +[1:31:11] 裕之: お疲れ様でしたー +[1:31:19] 裕之: おやすみなさいー ((ninja)) +[1:31:32] narunaru: どいさんから良い当たり判定の方法聞けたら教えてくださいー +[1:31:36] narunaru: ではおやすみなさいー +[1:31:42] 裕之: 教えてくださいーー +[1:41:32] doi: こんばんは。遅かったですね。 +[1:42:10] 裕之: お、 +[1:42:14] 裕之: こんばんは! +[1:42:25] 裕之: 今布団にもぐってたトコでした^^; +[1:42:45] doi: ログ見てないですが、辺り判定が問題でした? +[1:42:52] 裕之: そうですね +[1:43:25] 裕之: マス目の概念をなくして考えるのは、実際どうやるんだろう、というところで +[1:43:40] 裕之: どうやるんでしょうねーって色々話してたトコです +[1:43:53] doi: マス目が嫌だった理由は粒度の問題です。 +[1:44:32] doi: narunaruさんがちょっと触れていたように重複領域が大きいマス目にっていうのもありだと思うんですが、カクカクした移動になったり、 +[1:44:45] doi: しばらく動かなくなったりするのかなと思っています。 +[1:45:25] doi: 仮にサーバ側では連続的な座標系で把握していたとしても、表示が離散的だと、 +[1:45:49] doi: ユーザからみた場合に同じ状況でも内部状態が違うというのは混乱を招くのではないかというのがその理由でうs。 +[1:46:04] 裕之: ということは、プレイヤーの見た目上よりも、計算処理上は、もっと細かい粒度のマス目があるということですね? +[1:46:17] doi: そうですね。 +[1:46:34] 裕之: スッキリです +[1:46:36] 裕之: あとは、 +[1:47:14] 裕之: サーバと通信する際は、自分の行動の送信と、他のプレイヤーの行動の受信は、 +[1:47:38] 裕之: 日とるの通信で行うのか、分けるのか、 +[1:47:49] 裕之: この辺りも、narunaruさんが気にしてました +[1:47:59] 裕之: 日とる⇒一つ +[1:49:14] doi: その辺は全体像が決まってからとは思っていますが、 +[1:49:24] doi: 僕の中でイメージしているものとしては、 +[1:50:42] doi: コマンドを送信するだけの単発のリクエストと、状況を通知する継続的なコネクションとをもつことを想定していました。 +[1:51:08] doi: コマンドの方は、座標(x,y)に移動というものを、ユーザが指定した時点で発行します。 +[1:52:02] doi: その上で、継続的なコネクションから、定期的に状況を取得していて、自分は今は(a,b)にいるとか、Xtoiu +[1:52:15] doi: というユーザは(c,d)にいるという情報を受け取ります。 +[1:52:28] 裕之: 状況を通知する、と言うのは、状況を受け取る、つまり、クライアントからサーバに状況を取りにいくという意味ですよね? +[1:53:07] doi: 継続的なコネクションを張ってしまえば、どちらでも一緒だと思っています。 +[1:53:41] doi: PULL型の方が端末がビジーで一回だけ、処理をはしょるとかできていいかなとは思ってますが。 +[1:53:54] 裕之: おー、そうなると、Httpだとしても、ちょっとしたテクニックを使うんですよね? +[1:54:07] doi: HTTPは考えてませんでした。 +[1:54:16] 裕之: おー +[1:54:49] doi: そして、欲を言えば、位置だけでなく、何をしようとしているかも取得して、それはクライアントでもう少し細かい時間で表示を変更して、定期的な通知でずれた分を補正とうい感じにできたら +[1:54:54] doi: いいかなという風に考えています。 +[1:55:47] 裕之: なるほど。そうなると、クラサバの両方でソケットを持つことになりますか? +[1:56:32] doi: ソケットとは、サーバソケットを指していますか? +[1:57:11] 裕之: Http以外の通信となると、Androidでは他にサポートされるものが無いと思ってましたので +[1:57:40] doi: と言いますと? +[1:58:04] 裕之: 要するに、データを受け取るには、その仕組みを自作するしかないのかなと思ってました +[1:58:12] 裕之: クライアントで、です +[1:58:33] doi: HTTPライブラリはあるけど、他のプロトコルのライブラリはないということですか? +[1:58:41] 裕之: そうです +[1:58:52] 裕之: そんなことを本で読んだ気がします +[1:59:43] doi: どういう言い方をすればいいか分かりませんが、 +[1:59:58] 裕之: Androidでは、Httpとソケットによる通信がサポートされてます的な。 +[2:00:04] doi: ServerSocketクラスは使いませんが、Socketクラスは使いますってことで回答になっています? +[2:00:23] doi: もちろん、HTTPに乗っけてもいいですが。 +[2:00:40] 裕之: ServerSocketとSocketの違いは良くわかってないです +[2:00:58] doi: 待ち受けソケットか、そうでないかという感じでしょうか。 +[2:01:41] 裕之: 一度コネクションを張れば、クライアント側はSocketクラスでOKと言うことでいいでしょうか? +[2:02:49] 裕之: 一番初めはサーバのServerSocketに対してコネクションを張りにいくという意味です +[2:03:33] doi: サーバ側のサーバソケットに対してコネクションを張るために、Javaの実装ではSocketクラスを使います。 +[2:03:39] doi: という感じでしょうか。 +[2:03:58] 裕之: たぶんOKだと思います +[2:04:04] doi: 概念と実装との言葉が入り混じってて紛らわしいですが。 +[2:04:29] doi: 僕がカタカナで書いているのは概念の方だと思ってください。 +[2:04:53] 裕之: [2:03] doi: + +<<< Javaの実装ではSocketクラスこれはクライアント側ですね? +[2:05:00] doi: です。 +[2:05:11] 裕之: OKです +[2:06:45] 裕之: それと、私がアレンジしたdoiさんの資料ですが、いかがでしょうか? +[2:07:02] doi: きちんと書いて頂きありがとうございます。 +[2:07:26] 裕之: 攻撃にせよ、移動にせよ、予め共通して迎撃と回避を選択した上で +[2:08:05] 裕之: 攻撃ないしは移動を行うといった形で、さらに操作がシンプルになるのではないかと思ってます +[2:08:24] doi: その方が分かりやすいと思います。 +[2:08:45] 裕之: あ、攻撃の場合は、迎撃も回避も無くて、攻撃のみですね +[2:09:06] 裕之: でも、目標の敵に近づく前に、他の敵と接触する可能性もあるので、 +[2:09:11] doi: ただ、迎撃は本当にいいのかってのは気になったりしてました。 +[2:09:18] 裕之: その場合を考慮して、迎撃と回避 +[2:09:20] 裕之: を +[2:09:34] doi: 1対1ならいいんですが、 +[2:09:34] 裕之: 迎撃はまずいでしょうか。 +[2:09:53] doi: 囲まれたりしたときに、 +[2:10:25] doi: ある敵に対して、迎撃を実行中に、別から攻撃されそうになって、迎撃をしてとかとなると、何もできなくなるかなと。 +[2:10:52] 裕之: その状態になってから回避に切り替えるとか +[2:10:57] 裕之: 遅いですかねえ +[2:11:13] doi: それはそれで、ありだとは思うんですけどね。 +[2:11:19] 裕之: だれか助けに来てくれるかもしれないし +[2:11:26] doi: 囲まれて、右往左往しているわけですから。 +[2:11:45] 裕之: ほかの味方の狙っていた敵が、自分を囲んでるかもしれないし +[2:12:29] doi: 単に僕はコマンド自体が切り替わるコマンドの仕様にはしていなかっただけなので、あるコマンドは特定の状況下で違うコマンドに切り替わるというのはありだと思います。 +[2:13:01] 裕之: 戦況を見て的確な判断を下すのが、指揮官の役割ですからねw +[2:13:16] doi: 自動的にコマンドを切り替える方がいいのか、 +[2:13:29] doi: 状況をみてユーザにコマンドを切り替えさせるのがいいのか、 +[2:13:38] 裕之: そこまでは自動化しなくてもいんじゃないですかねえ +[2:13:42] doi: それは考える余地がありそうですね。 +[2:14:18] 裕之: 自動化すると、囮作戦とか出来なくなりそうです +[2:14:34] 裕之: 適当に突っ込んで、誘い出して、退却するみたいな +[2:15:22] 裕之: そして戻る(つまり移動先変更)した先には、見方が大勢いるという作戦を出来る当にしたいじゃないですかw +[2:15:56] 裕之: 出来る当⇒出来る様 +[2:16:04] doi: そうですねぇ。 +[2:16:17] 裕之: ちなみに、迎撃のときは、 +[2:16:41] doi: そいうことをやるなら、敵ユニットも見えないで、斥候とかで確認できるとかにしないとバレバレな気がしますけども。 +[2:16:47] 裕之: 敵が引けば、また目的地に向かって移動を再開すると思ってマスが、 +[2:16:59] 裕之: これはdoiさんも同じ考えですか? +[2:17:13] doi: あ、僕は迎撃って概念じゃないんです。 +[2:17:19] doi: あくまで、突撃なのでw +[2:17:32] 裕之: 突っ込むんですねえw +[2:17:49] doi: 犠牲を払って確率的でも最短経路をとる移動、確実な経路をとる移動 +[2:17:50] 裕之: 相手がつぶれるまでですか^^; +[2:17:54] doi: その2種類で考えてました。 +[2:18:20] 裕之: 兵が多少へってすり抜けるわけですね +[2:18:26] doi: どちらかというと、確率的に相手の陣を突き抜けるイメージでした。 +[2:19:12] doi: 趙雲の単騎駆けのイメージですw +[2:20:09] 裕之: そうゆう意味では、私の考える回避は、突撃に近いかもですね +[2:20:26] 裕之: 攻撃を受けながら、進路を目指しますから +[2:20:47] doi: で、僕が迂回と表現したのは攻撃範囲という意味ではないです。 +[2:20:56] 裕之: これに対して迎撃は売られたけんかは買いますよモードです +[2:21:04] doi: 相手ユニットにも大きさを持たせていいのかなと思ってたので。 +[2:21:28] 裕之: これはなかなかまた検討どころですね +[2:21:36] 裕之: 大きい=兵力が多いので +[2:21:42] doi: 将来的に陣形なんかも考えるとそういうこともあるかなと。 +[2:21:49] doi: 突破されやすいけど、大きいとか。 +[2:21:59] doi: 突破されにくいけど、小さいとか。 +[2:22:09] doi: 攻撃力強いけど、打たれ弱いとか。 +[2:22:12] 裕之: つまり、プレイヤー通しに力の差がある時点でのスタートでしょうかね +[2:23:00] 裕之: 大きさと兵力がイコールでなければ、あまり問題に葉ならなそうです +[2:24:06] doi: http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Hachijin.svg +[2:24:25] doi: 図は決して同じ兵力ではないですが。 +[2:25:06] doi: 長蛇の陣形を敵が敷いていれば、迂回は簡単とか。 +[2:25:39] doi: 自分が鏑矢の陣形だと、突撃の確立が上がるとか、そいういうのをイメージしていました。 +[2:26:02] 裕之: 大きさというよりは形ですね +[2:26:49] doi: ここまでこだわる方がいいのか分かりませんが。 +[2:27:11] doi: それに、もちろん兵力によっても大きさは変わるべきでしょうしね。 +[2:27:41] 裕之: 一つのプレイヤーで陣を形成するのか、複数のプレイヤー通しで陣を形成するのか +[2:27:58] 裕之: 後者の方は新しいですよね +[2:28:28] 裕之: 話し合って、雁行で行こうぜみたいにw +[2:28:48] 裕之: そうなると +[2:29:05] doi: 一人で複数の小隊を持つっていう考え方もありますよ。 +[2:29:16] doi: という風に話していると発散して、方向が定まらないのでなんですが。 +[2:29:34] 裕之: ですねw +[2:32:42] doi: ともあれ、この辺の動きは他の人の話しも聞きたいですね。 +[2:32:59] 裕之: では一旦、いまの資料の状態でコミットしてみましょうか +[2:33:37] doi: ん?。どうなんでしょう。あくまで案に過ぎないという気もしつつ、そうしないと、すすまないような気もしつつなのですが。 +[2:34:06] 裕之: まず進めておきたいですね +[2:34:48] 裕之: 私のイメージも案に過ぎないと思ってましたけど、 +[2:35:16] 裕之: 具体化できてきてますし、 +[2:35:22] 裕之: tpつ劇ですよ +[2:35:27] 裕之: 突撃 +[2:35:28] doi: その辺りはおまかしてしまっていいです? +[2:35:47] 裕之: それはもうもちろんです^^ +[2:35:59] doi: 資料も細かく作って頂きましたし。 +[2:36:26] 裕之: 次のステップについてまた考えましょう +[2:37:56] 裕之: 今日はこの辺でzzzさせて頂きますね +[2:38:05] doi: はい。 +[2:38:16] doi: 呼びとめてしまいすみません。 +[2:38:17] 裕之: お疲れ様でした! +[2:38:21] 裕之: いえいえ +[2:38:23] doi: お疲れ様でした。 +[2:38:26] doi: おやすみなさい。 +[2:38:34] 裕之: おやすみなさいー \ No newline at end of file