約 2,165,169 件
https://w.atwiki.jp/megamanactionprogram/pages/40.html
・概要 ・各種地形・敵の影響(1)・・概要 ・各種地形・敵の影響(2)・・概要 ・・敵との接触判定の影響 ・・地形に挟まれることによる即死・・・概要 ・・・左右の地形に挟まれることによる即死 ・・・上下の地形に挟まれることによる即死 ・・敵・アイテムの出現判定用のMCとの接触判定がない場合の即死 [部分編集] ・概要 ゼロが「各種地形・敵の影響」を受けた場合の処理は、「各種地形・敵の影響(1)」「各種地形・敵の影響(2)」のように分割されている。 なお、どちらに記述しても特に問題がない処理もある。 [部分編集] ・各種地形・敵の影響(1) ・・概要 「方向の反転・移動」「各種地形・敵との接触判定」などの処理の前に行う処理となる。 主に、速度・移動関連の処理が行われる。つまり、速度・移動関連の処理は、「方向の反転・移動」「各種地形・敵との接触判定」などの処理の前に行う必要がある。 ASのファイル:zero_effect_landform_enemy_1.txt ︙(省略) ・傾斜床(補助):傾斜床(補助)を参照。 ・梯子:梯子を参照。 ・沈む地形:沈む地形を参照。 ・貫通可能な床:貫通可能な床を参照。 ・氷の床:氷の床を参照。 ・風、コンベア:風、コンベアを参照。 ・バネ:バネを参照。 ・フレーム移動:フレーム移動を参照。 [部分編集] ・各種地形・敵の影響(2) ・・概要 「方向の反転・移動」「各種地形・敵との接触判定」などの処理の後に行う処理となる。 主に、敵との接触の影響や即死関連の処理が行われる。これは、「敵との接触判定」があった場合、即座に、その影響に関する処理を行うためである。 ASのファイル:zero_effect_landform_enemy_2.txt ︙(省略) ・即死(地形):即死(地形)を参照。 ・敵との接触判定:「・・敵との接触判定の影響」を参照。 ・地形に挟まれることによる即死:「・・地形に挟まれることによる即死」を参照。 ・敵・アイテムの出現判定用のMCとの接触判定がない場合の即死:「・・敵・アイテムの出現判定用のMCとの接触判定がない場合の即死」を参照。 ・破壊関連の処理:破壊(操作キャラクター)を参照。 ・・敵との接触判定の影響 各種地形・敵との接触判定の「・敵との接触判定」において、「敵との接触判定」が付加された場合は、被ダメージ状態に移行し、ノックバックのカウントをリセットする。 この処理は、「即死(地形)」の処理の後に行う必要がある。その理由は、ボディチップの「・ストロング」を参照。 ASのファイル:zero_effect_landform_enemy_2.txt if(_root.zero_hit_enemy!=0){ _root.zero_action="damage"//被ダメージ状態に移行 count_zero_damage_knockback_time=0//ノックバックのカウントをリセット } ・・地形に挟まれることによる即死 ・・・概要 ゼロは、地形に挟まれることにより、即死する。 ・・・左右の地形に挟まれることによる即死 地形に挟まれることによる即死判定(壁(右、左))に関しては、壁の「・地形に挟まれることによる即死判定(壁(右、左))」を参照。 ↓左右の地形に挟まれることによる即死。 ASのファイル:zero_effect_landform_enemy_2.txt if((_root.zero_hit_wall_right!=0 and caught_wall_left!=0) or (caught_wall_right!=0 and _root.zero_hit_wall_left!=0)){_root.zero_life=0}//左右の地形に挟まれることによる即死 ここでは、「壁(右)」と「地形に挟まれることによる即死判定(壁(左))」のみを解説する。「壁(左)」と「地形に挟まれることによる即死判定(壁(右))」も、ほぼ同様の処理を行っている。 ・「_root.zero_hit_wall_right!=0」:壁(右)との接触判定がある。 ・「caught_wall_left!=0」:地形に挟まれることによる即死判定(壁(左)がある。 ・「_root.zero_life=0」:ゼロのライフ残量を0にする。この処理により、破壊関連の処理が行われることになる。 ・・・上下の地形に挟まれることによる即死 地形に挟まれることによる即死判定(床、天井)に関しては、床の「・地形に挟まれることによる即死判定(床)」、天井の「・地形に挟まれることによる即死判定(天井)」などを参照。 ↓上下の地形に挟まれることによる即死。 ASのファイル:zero_effect_landform_enemy_2.txt else if((_root.zero_hit_floor!=0 or _root.zero_hit_sloped_floor!=0) and caught_ceiling!=0){_root.zero_life=0}//上下の地形に挟まれることによる即死(1) else if((_root.zero_hit_ceiling!=0 or _root.zero_hit_sloped_ceiling!=0) and caught_floor!=0){_root.zero_life=0}//上下の地形に挟まれることによる即死(2) ここでは、(1)のみを解説する。(2)もほぼ同様の処理を行っている。 ・「_root.zero_hit_floor!=0 or _root.zero_hit_sloped_floor!=0」:床・傾斜床との接触判定がある。 ・「caught_ceiling!=0」:地形に挟まれることによる即死判定(天井)がある。 ・「_root.zero_life=0」:ゼロのライフ残量を0にする。この処理により、破壊関連の処理が行われることになる。 ・・敵・アイテムの出現判定用のMCとの接触判定がない場合の即死 ゼロは、「敵・アイテムの出現判定用のMC」との接触判定がない場合、即死する。これは、落下死の判定に用いている。 ↓「敵・アイテムの出現判定用のMC」(灰色の矩形)との接触判定がない場合の即死。 ASのファイル:zero_effect_landform_enemy_2.txt if(this.hitTest(_root.enemy_item_appearance_hitrect)==false){_root.zero_life=0} ・「_root.enemy_item_appearance_hitrect」:敵・アイテムの出現判定用のMC。
https://w.atwiki.jp/sanosoft/pages/202.html
MySQL8.0のインストール【AlmaLinux 8】 MySQL8.0をインストールします。 1. インストール dnfのリポジトリの追加登録方法【CentOS 8】で「MySQL」のリポジトリを追加して、MySQLの8.0をインストールします。 # dnf --disablerepo=appstream --enablerepo=mysql80-community install mysql-community-server 2. MySQLの設定 (1) DBの初期化 DBの初期化を行います。 # mysqld --initialize --user=mysql --datadir=/var/lib/mysql ※5.6までは「mysql_install_db」コマンドで行いましたが、5.7からは変更になりました。 このコマンドで初期化を行うと、初期ユーザとして「root@localhost」が作成されます。 また、初期パスワードが「/var/log/mysqld.log」に書き込まれます。 ちなみに「mysqld --initialize-insecure」とすると、パスワードは空となります。 (2) /etc/my.cnfの設定 MySQLの設定ファイルは、「/etc/my.cnf」ですが、カスタム設定は「/etc/my.cnf.d」フォルダに「*.cnf」ファイルを作成することで設定を追加できます。 # vi /etc/my.cnf.d/server.cnf [mysqld] innodb_data_home_dir = /var/lib/mysql/ innodb_log_group_home_dir = /var/lib/mysql/ character_set_server=utf8mb4 collation-server=utf8mb4_0900_ai_ci expire_logs_days = 30 # Error log log_error="mysqld.log" log_warnings=1 # Query log general_log = 0 general_log_file="sql.log" # Slow Query log slow_query_log = 0 slow_query_log_file="slow_query.log" log_queries_not_using_indexes log_slow_admin_statements long_query_time=5 [client] default-character-set=utf8mb4 general_log:「0」:ログを出力しない、「1」:ログを出力する slow_query_log:「0」:ログを出力しない、「1」:ログを出力する ※「Query log」や「Slow Query log」を有効にすると、ファイルサイズがかなり大きくなる可能性がありますので、必要時のみ有効にして下さい。 ■collation-server utf8mb4_0900_ai_ci (MySQL 8.0のデフォルト)。アクセントの違い(「は」と「ぱ」など)および大文字・小文字を区別しない。 utf8mb4_bin 大文字・小文字を含めて、すべて区別。 utf8mb4_general_ci 大文字・小文字は区別しない。他は全て区別。 utf8mb4_unicode_ci 大文字・小文字および全角・半角を区別しない。 (3) MySQLの起動 設定が完了したら、MySQLのサービスを起動します。 # systemctl start mysqld.service (4) 自動起動設定 サーバを再起動した場合に自動的にサービスが起動するようにします。 # systemctl enable mysqld.service (5) mysql_secure_installationの実行 MySQLのセキュリティを向上させるために「mysql_secure_installation」を実行します。 # /usr/bin/mysql_secure_installation MySQLのセキュリティを向上させるために「mysql_secure_installation」を実行します。 # /usr/bin/mysql_secure_installation ■現在のrootパスワードの入力 現在のrootのパスワードを入力します。 Enter current password for root (enter for none) インストール時に「/var/log/mysqld.log」に記載されている初期パスワードを入力します。 ■新しいパスワードの登録 初期パスワードから新しいパスワードに変更します。 The existing password for the user account root has expired. Please set a new password. New password Re-enter new password 「New password 」と「Re-enter new password 」に任意のパスワードを入力します。 ■VALIDATE PASSWORD プラグインのインストール パスワードがポリシーに従っているかのチェックを行うプラグインです。 VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No プラグインをインストールしないので「No」を入力します。 ■rootパスワードの変更 rootパスワードを変更するかどうかの質問です。 Using existing password for root. Change the password for root ? ((Press y|Y for Yes, any other key for No) ここでは変更しないので「N」を入力します。 ■匿名アカウントの削除 パスワードのない匿名アカウントを削除するかどうかの質問です。 Remove anonymous users? (Press y|Y for Yes, any other key for No) 削除するので「Y」を入力します。 ■rootアカウントのリモートログインの不許可 Disallow root login remotely? (Press y|Y for Yes, any other key for No) rootアカウントのリモートログインは許可しないので、「Y」と入力します。 ■testデータベースの削除 どのユーザからでもアクセスできるtestデータベースを削除するかどうかの質問です。 Remove test database and access to it? (Press y|Y for Yes, any other key for No) 削除するので「Y」を入力します。 ■特権テーブルのリロード すぐに特権テーブルをリロードして反映させるかどうかの質問です。 Reload privilege tables now? (Press y|Y for Yes, any other key for No) すぐにリロードするので「Y」を入力します。 3. rootパスワードの変更 インストール直後は、「root」ユーザにテンポラリーパスワードが設定されているので、パスワードを変更します。 ※前述の「mysql_secure_installation」を実行した場合には不要です。 MySQLにログインします。 # mysql -u root -p Enter password パスワードを変更します。 mysql SET PASSWORD FOR root@localhost= xxxxxx ; mysql exit; ※従来の「SET PASSWORD FOR root@localhost=PASSWORD( xxxxxx );」だとSyntaxエラーが発生します。 変更したパスワードでログインできることを確認します。 # mysql -u root -p Enter password ログインできればOKです。 4. その他のコマンド (1) ユーザ作成 CREATE USER (ユーザID) @ localhost IDENTIFIED WITH mysql_native_password BY (パスワード) ; GRANT ALL PRIVILEGES ON (テーブル名).* TO (ユーザID) @ localhost ; ※※【注意事項】※※ 「my.cnf」で「skip-name-resolve」を指定している場合には、ホストの名前解決ができないため「localhost」ではエラーとなる。その場合には「127.0.0.1」と記述すること。 5. cronでの実行の場合 定期バックアップなどでコマンドラインからMySQLを実行する場合に、パスワードをコマンドラインに含めると警告が発生しますし、またセキュリティ上問題があります。 そこで、設定ファイルを作成して、コマンドラインから読込みます。 (1) 設定ファイルの作成 「/etc/.mysql_config」という設定ファイルを作成します。 # vi /root/.mysql_config 内容は以下の通りです。 [client] user = root password = (パスワード) host = localhost 「root」以外読めないようにします。 # chmod 400 /root/.mysql_config (2) コマンドラインでの実行 「--defaults-extra-file」オプションで設定ファイルを読み込みます。 【例】 for DBNAME in `ls -p /var/lib/mysql | grep / | tr -d /` do # mysqldump if [ "$DBNAME" = #innodb_temp ] then continue; fi if [ "$DBNAME" = performance_schema ] then /usr/bin/mysqldump --defaults-extra-file=/root/.mysql_config --skip-lock-tables --skip-extended-insert $DBNAME $DBNAME.dump else /usr/bin/mysqldump --defaults-extra-file=/root/.mysql_config --events --skip-lock-tables --skip-extended-insert $DBNAME $DBNAME.dump fi done 6. MySQLのコマンド (1) mysqldump ■データベースを出力 mysqldump --defaults-extra-file=/root/.mysql_config -c -skip-extended-insert (DB名) (出力ファイル名) ■テーブルを指定して出力 mysqldump --defaults-extra-file=/root/.mysql_config -c -skip-extended-insert (DB名) (テーブル名) (出力ファイル名) (2) mysql ■ダンプファイルをインポート mysql --defaults-extra-file=/root/.mysql_config (DB名) (ダンプファイル名)
https://w.atwiki.jp/is01next/
このWikiはIS01のハック情報についてのまとめです。特権が必要な操作をできるようにしたり(root化)、どのようなことが可能なのか(root化で可能なこと)等がまとめられています。 現在は別のシステムに入れ替えられる(ROM焼き)ようにするのが目標です。 ■ニュース 2011/1/5、ついにIS01でFlash10.1が動く!!! ニコ生やタイムシフト視聴もOK。デュアルタッチにも対応。NV◆2DWoI42Bv.氏 & RO178◆lUGXrEr3C5L氏、ありがとう。IS01 Android2.2 (froyo) とりあえずデュアルタッチ 2010/12/29、ベースバンド1.00.10でもroot化に続き、カーネルの入れ替えが可能になったようです。NV◆2DWoI42Bv.氏、ありがとう。modules_enabler_plus v1.00 2010/12/23、Android2.2_r1.3 起動成功!!! RO178◆lUGXrEr3C5L氏、ありがとう。Froyo(2.2)への道 ※時系列を確認する ■進行状況 項目 状況 備考 root化 可能 root化で可能なこと カーネルコードの実行 可能 カーネルの入れ替え プロセストレーサの実行 (DECKARD LSMモジュールの回避) 可能 カーネルの入れ替え ROM焼き (NAND保護の回避) 進行中 Froyo(2.2)への道 ■現行スレ 【ROM焼き】au IS01 root4 ~穴は塞がれた。だが~ http //hibari.2ch.net/test/read.cgi/smartphone/1295706307/ 【ROM焼き】au IS01 root~応援・雑談スレ~Part4 http //hibari.2ch.net/test/read.cgi/smartphone/1295352804/ 【ROM焼き】 au IS01 root2.3 ~応援・雑談スレ~ 4 http //hibari.2ch.net/test/read.cgi/smartphone/1295353565/ ■Android2.2_r1.3 起動成功!!!(2010/12/23 05 27) ■総統閣下はIS01の扱いにお怒りのようです
https://w.atwiki.jp/megamanactionprogram/pages/115.html
・概要 ・loadの処理・・チャージエフェクトのMCの出現 ・・判定、カウント ・バスターのチャージ判定・・概要 ・・チャージのカウントのリセット ・・チャージのカウントの増加 ・・チャージ判定 [部分編集] ・概要 ここでは、チャージ判定に関して、バスターを例にして解説する。セイバーにおいても、全く同様の処理をしている。 ASのファイル:zero_buster.txt zero_attack="buster" #include "zero_AS/zero/zero_attack_charge.txt" 以下の記述では、「zero_attack」は「"buster"」に置き換えられる。 [部分編集] ・loadの処理 ・・チャージエフェクトのMCの出現 チャージエフェクトのMCは、loadの処理で出現させている。 ASのファイル:zero_load.txt _parent.attachMovie("zero_buster_charge_effect","zero_buster_charge_effect",_root.depth_zero_buster_charge_effect)//チャージエフェクト(バスター)のMCを出現させる ・・判定、カウント 「・バスターのチャージ判定」を参照 ASのファイル:zero_load.txt _root.zero_charge_buster;_root.zero_charge_saber//チャージ判定(バスター,セイバー) _root.count_zero_charge_buster;_root.count_zero_charge_saber//チャージのカウント(バスター,セイバー)(maskに初期値を記述) count_zero_charge_plus_quick_charge_lv0=1//チャージのカウントが増加する値(通常) ︙ count_zero_charge_semi=40//セミチャージまでに必要とされるカウント count_zero_charge_full=120//フルチャージまでに必要とされるカウント [部分編集] ・バスターのチャージ判定 ・・概要 バスターキーの入力がある場合は、バスターのチャージを行う。 オートチャージに関しては、ヘッドチップの「・オートチャージ」を参照。 ・・チャージのカウントのリセット バスターキーの入力がない場合は、チャージのカウントをリセットする。 ASのファイル:zero_attack_charge.txt if((_root["zero_tip_head_auto_charge_"+zero_attack]==-1 and this["keydown_"+zero_attack]==0) or (_root["zero_tip_head_auto_charge_"+zero_attack]==1 and this["keydown_new_"+zero_attack]==1) and _root.event_pause==0){_root["count_zero_charge_"+zero_attack]=0}//バスター・セイバーキーの入力がない場合(オートチャージ装着中,バスター・セイバーキーの入力がある場合),チャージのカウントをリセット(イベント停止判定がある場合は不可能) このような記述をしているため、(被ダメージ状態、拘束状態などにおいて)バスターが発射されなかった場合においても、チャージのカウントがリセットされる(原作準拠)。 ↓拘束状態における、チャージのカウントのリセット。バスターは発射されないが、非チャージ判定に戻る。 「チャージのカウントのリセット」は、「チャージ判定」の前に行う必要がある。そのような順序にしない場合は、チャージバスターを発射しても、1フレームだけチャージ判定が残ることになる。 ・・チャージのカウントの増加 バスターキーの入力がある場合、チャージのカウントを増加させる。 ASのファイル:zero_attack_charge.txt if(this["keydown_"+zero_attack]==1 or _root["zero_tip_head_auto_charge_"+zero_attack]==1){//バスター・セイバーキーの入力がある場合,オートチャージ装着中の場合 _root["count_zero_charge_"+zero_attack]+=this["count_zero_charge_plus_quick_charge_lv"+_root.zero_tip_head_quick_charge]//チャージのカウントを増加させる } ここでは、クイックチャージを考慮しないので、「チャージのカウントが増加する値(通常)」が、カウントに加算されることになる。 ・・チャージ判定 チャージのカウントの値に応じて、チャージ判定を変化させる。 ・チャージのカウントが、「セミチャージまでに必要とされるカウント」未満の場合は、「非チャージ判定」。 ・上の条件を満たさず、チャージのカウントが、「フルチャージまでに必要とされるカウント」未満の場合は、「セミチャージ判定」。 ・上の2つの条件を満たさない場合、つまり、チャージのカウントが、「フルチャージにまでに必要とされるカウント」以上の場合は、「フルチャージ判定」。 ASのファイル:zero_attack_charge.txt if(_root["count_zero_charge_"+zero_attack] count_zero_charge_semi){_root["zero_charge_"+zero_attack]="none"}//非チャージ判定 else if(_root["count_zero_charge_"+zero_attack] count_zero_charge_full){_root["zero_charge_"+zero_attack]="semicharge"}//セミチャージ判定 else{_root["zero_charge_"+zero_attack]="fullcharge"}//フルチャージ判定
https://w.atwiki.jp/javadsge/pages/9500.html
import sys import tkinter def play(event) print("hello") root = tkinter.Tk() root.title("Software Title") root.geometry("500x500") canvas = tkinter.Canvas(root, width = 300, height = 350) canvas.place(x=0, y=0) canvas.create_text(50, 50,font=("",50), text = hello, world! ) root.mainloop()
https://w.atwiki.jp/megamanactionprogram/pages/29.html
・概要 ・loadの処理・・壁蹴りの初速度の算出 ・・壁蹴りのカウント ・モーション ・壁蹴りのカウント ・速度・・概要 ・・ダッシュ属性、x方向の速度 ・・y方向の速度 ・他のアクションへの移行・・ジャンプへの移行 [部分編集] ・概要 「壁蹴り」は、壁に近接・接触している場合に、壁と逆側の斜め上方向に上昇するアクションを指す。 ↓壁蹴り。 [部分編集] ・loadの処理 ・・壁蹴りの初速度の算出 算出法に関しては、ジャンプ開始の「・loadの処理」を参照。 ASのファイル:zero_load.txt zero_jump_wall_kick_ymax=44//最高点の高さ(壁蹴り) zero_jump_wall_kick_time_top=17//最高点に到達するまでに要する時間(壁蹴り) ︙ velocity_zero_wall_kick=zero_jump_wall_kick_ymax/zero_jump_wall_kick_time_top+1/2*_root.gravity*zero_jump_wall_kick_time_top//壁蹴りの初速度 ・・壁蹴りのカウント 「・壁蹴りのカウント」を参照。 ASのファイル:zero_load.txt count_zero_wall_kick=0//壁蹴りのカウント count_zero_wall_kick_max=7//壁蹴りのカウントの最大値 [部分編集] ・モーション 通常状態とほぼ同様の処理を行っている。 ASのファイル:zero_action_wall_kick.txt if(_root.zero_buster=="none" and _root.zero_saber=="none"){_parent.zero_AA.gotoAndStop("zero_AA_wall_kick")}//攻撃中ではない場合 [部分編集] ・壁蹴りのカウント 壁蹴り中は、壁蹴りのカウントを増加させている。 この値は、「速度」や「他のアクションへの移行」に関する条件に用いられている。「・速度」「・他のアクションへの移行」を参照。 ASのファイル:zero_action_wall_kick.txt count_zero_wall_kick++//カウントを増加させる カウントのリセットに関しては、各種の値のリセットの「・壁蹴り関連」を参照。 [部分編集] ・速度 ・・概要 カウントが1の場合は、速度を付加する。 ASのファイル:zero_action_wall_kick.txt if(count_zero_wall_kick==1){//カウントが1の場合 ︙ } エフェクト関連は、アクションと直接的に関係がないので、解説は省略する。 ・・ダッシュ属性、x方向の速度 ダッシュキーの入力がある場合、ダッシュ属性を付加し、速度を付加する。ダッシュキーの入力がない場合、ダッシュ属性を解除し、速度を付加する。 ダッシュ属性がある場合の速度は「ダッシュの速度」、ダッシュ属性がない場合の速度は「歩きの速度」としている(原作準拠?)。 ゼロの向きと逆側に速度を付加することに注意。 ASのファイル:zero_action_wall_kick.txt if(keydown_dash==1){_root.zero_dash=1;_root.velocity_zero_x=-velocity_zero_dash*_root.zero_direction}//ダッシュキーの入力がある場合,ダッシュ属性を付加,速度を付加 else{_root.zero_dash=0;_root.velocity_zero_x=-velocity_zero_walk*_root.zero_direction}//ダッシュキーの入力がない場合,ダッシュ属性を解除,速度を付加 ゼロの向きと逆側に速度を付加するため、「-velocity_zero_dash」のように「-」の符号を付けている。 ・・y方向の速度 初速度を付加するための記述は、ジャンプ開始とほぼ同様なので、ジャンプ開始の「・速度」を参照。 ASのファイル:zero_action_wall_kick.txt _root.velocity_zero_y=-velocity_zero_wall_kick//初速度を付加 [部分編集] ・他のアクションへの移行 ・・ジャンプへの移行 「カウントが最大値以上」「天井・傾斜天井との接触判定がある」「ジャンプキーの入力がない」のうち、いずれか一つでも満たされた場合、ジャンプに移行する。 ↓ジャンプへの移行(天井との接触判定がある場合)。 ↓ジャンプへの移行(ジャンプキーの入力がない場合)。 ASのファイル:zero_action_wall_kick.txt if(count_zero_wall_kick =count_zero_wall_kick_max or _root.zero_hit_ceiling!=0 or _root.zero_hit_sloped_ceiling!=0 or keydown_jump==0){_root.zero_action="jump"}//カウントが最大値以上の場合,天井・傾斜天井との接触判定がある場合,ジャンプキーの入力がない場合,ジャンプに移行 ・「count_zero_wall_kick =count_zero_wall_kick_max」:カウントが最大値以上。 ・「_root.zero_hit_ceiling!=0 or _root.zero_hit_sloped_ceiling!=0」:天井・傾斜天井との接触判定がある。 ・「keydown_jump==0」:ジャンプキーの入力がない。 ・「_root.zero_action="jump"」:ジャンプに移行。
https://w.atwiki.jp/javadsge/pages/9513.html
import time import tkinter import numpy as np def dog(event) print("hhhh") root = tkinter.Tk() root.title("アニメ") root.geometry("500x500") root.bind(" Motion ", dog) can = tkinter.Canvas(root, width = 300, height = 300) can.place(x=0, y=0) x=0 dx=10 mode=0 while mode 50 x=x+dx if x 250 dx=-10 if x 50 dx=10 time.sleep(0.1) can.create_rectangle(0, 0, 300, 300, fill = green ) can.create_rectangle(0, 0, x, x, fill = red ) can.pack() can.update() root.mainloop()
https://w.atwiki.jp/msse/pages/52.html
コンテキストメニューからMicrosoft Security Essentialsが消えるのですが 原因 「Windows Vista および Windows 7 用の Windows Live OneCare PC セーフティ」 http //onecare.live.com/site/ja-jp/center/whatsnew.htm 上記サイトで フルスキャン をするとMSEのコンテキストメニュー項目が削除対象になることが確認できました。 ( Vista Ultimate64(sp2) で確認しました。XP Pro(sp3) では削除対象にはならずこの問題も起こりません。 ) 削除対象のチェックを外す事で回避できます。 コンテキストメニューに追加する方法 「Microsoft Security Essentialsでスキャンします...」がエクスプローラー上で対象(ドライブ、フォルダー、ファイル)を右クリックすると表示あれるコンテキストメニューに表示されます。 この設定はレジストリで指定されています。 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\ShellEx\ContextMenuHandlers\MSSE] @="{0365FE2C-F183-4091-AC82-BFC39FB75C49}" [HKEY_CLASSES_ROOT\Directory\ShellEx\ContextMenuHandlers\MSSE] @="{0365FE2C-F183-4091-AC82-BFC39FB75C49}" [HKEY_CLASSES_ROOT\Drive\ShellEx\ContextMenuHandlers\MSSE] @="{0365FE2C-F183-4091-AC82-BFC39FB75C49}" 情報源 「Microsoft Security Essentialsでスキャンします」の項目がありません
https://w.atwiki.jp/keisks/pages/237.html
cf. https //www.youtube.com/watch?v=hLsrPsFHPcQ def test(t) t += $ root = {} for i in xrange(len(t)) cur = root for c in t[i ] cur[c] = {} cur = cur[c] curは(nested dictionaryの中の)current positionというイメージで良いのかな?
https://w.atwiki.jp/mugencns/pages/280.html
戻る→SC-/Projectile・Helper技術 長らく放置していたので暫定的にページ作成。※未検証部分多数※ ■更新Proj型・Projectile更新方式飛び道具 SC-/Projectileを1Fずつ更新する方式の飛び道具。 短い通称は無いがここでは更新Proj、もしくは2FProjと称する。 基本的にはHelperから使う。 毎F更新するためProjectileの欠点である更新できない点は解消できる。 基本的な原理 1.1Fだけ判定を持った2Fだけ残るProjを射出する。(基本Helperから) 2.そのProjが残っている場合、Projを再発射しつづける。 以下詳しく 攻撃判定開始のタイミングで最初の1Fだけ判定をもったSC-/Projectileを射出する。アニメ定義では最初の1Fに攻撃判定があれば良い。 その際ProjRemovetime=1とする。これにより次のフレームまで残る。 PauseTimeの自分側は0とする? ※ProjRemoveTimeでの消滅は残り時間が無くなった次のフレームの最後のためProjRemoveTime=1設定ならステート内換算で2F分残る。 ※攻撃の判定はProjRemoveTimeで指定した時間分のみ。 次のフレームで射出したProjが残存している場合、再度Projを発射する。命中すると、命中フレーム時点で消滅するため更新も終わる。 Projの消滅を確認後、親の動作を終了(Helperなら消滅させる) 攻撃判定のみならoffset=(vel X),(Vel Y)で速度分位置補正だけする。 独立飛び道具ならOffsetを更新ごとに調整し、飛んでいるように見せる。 独立飛び道具型で表示をOwnPal=0にしたい場合はSC-/Explodを同じ座標へ重ねる。Explodを重ねると命中消滅は1F遅れるが、それは通常のHelper型飛び道具と同様。 主な利用方法 攻撃判定をProjにし、SC-/ReversalDefを無効化する。 アニメには最初のフレームに判定だけつけ画像は基本的につけない。 基本的にSC-/Helperの飛び道具の基本と組み合わせて使う。Targetが本体管理になるためヒットカウントリセットバグが起きない。 Juggleの管理も本体基準のためJuggle値での制限が可能になる? 本体へPauseTimeが適応できないため、本体での使用は特殊な場合に限る。 別々の相手への時間差の複数ヒットが管理できない。一段型の飛び道具なら問題ないが連続ヒットタイプでは若干挙動が違う。 SC-/HelperからProjの座標を管理し単一のHelperで大量の飛び道具を管理する。 アニメには判定と画像を付ける。画像をExplod化するなら画像は別アニメに。 攻撃判定Proj化と同じメリットがある。 Helperから管理することでProjのみではできない挙動を行わせる事が可能。 SC-/Helperには固定の上限数があるがProjはいくらでも増やせる。これにより大量の特殊な挙動をする飛び道具を実現できる。 特殊な管理にすれば常駐させたHelperを使い回すこともできる。 注意点 SC-/Projectileなどの注意点も参照。 Projectileの向きは進行方向向き固定なので向きの管理には注意 Proj,ExplodはSC-/AngleSetのように回転させることができない。回転させたいなら回転用のアニメを別途登録する必要がある。 SC-/HitDefとSC-/Projectileでは一部ヒットの管理が異なる。HitDefでは時間を置いても一回の指定で複数の相手へヒットするが、 Projでは指定回数分しかヒットせず、時間を置いてヒットしていない相手にヒットさせることは通常できない。 SC-/PauseSC-/SuperPauseの効果中は本体が動けない場合Projも動かない。Helperとの連動も考慮してPauseMoveTimeなどの設定は基本0が望ましい。 後なんだろ… ■射出条件記述について ※記述については検証不足。ミスあるかも※ ※[State ]ステコン宣言を抜いています。コピペ時には要注意※ ProjIDについて Projを再射出する際root,NumProjID(xxx)=1で判定を行うため、 他管理のProjとIDが重複してしまうと上手く処理を行うことができない。 全て本体管理のため別々のHelperからでもProjIDが同じだと重複してしまう。 ProjIDは重複することが無いよう(xx00+ID)などで管理すること。 単一Helperから複数Projを出す場合は、xx00のxx桁部分で区別する。 なおT-/IDの値は上限がほぼ無いため+100や+200と言った数値になる可能性もある。そうした高い数値になっても重複しないように気をつけること 本体などから固定のProjIDで射出するProjのProjIDはIDを足して使うProjIDよりも低い数値にすること。 どうしても高い数値にしたいときは十万台くらいから。 ■HitDef攻撃判定差し替え型飛び道具 ■Helperの攻撃判定差し替え用・HitDef→Projへの差し替え type=HitDefをtype=Projectileにするというタイプの例 ※画像はHelper側で表示し、Projのアニメは攻撃判定のみにすること ※PauseTimeの自分側は0に変えること ヒットポーズの動作停止を再現したい場合T-/ProjContactTime()の条件で 基本処理を止め、SC-/PosFreezeを実行するなど自前で処理を停止させると良い。 ;出来れば入れておいた方がいいパラメータProjEdgeBound = 10000 ;画面外射程・基本親Helper側で管理するので大きい数値にProjHeightBound = -10000,10000 ;画面上下射程ProjStageBound = 10000 ;ステージ外射程 なおSC-/HitDefを使わないため、T-/MoveTypeをAにする必要は無いが 慣例として攻撃HelperはT-/MoveTypeはAである方が望ましい。 ■単発・時間経過消滅タイプ Type = Projectile ; HitDefTrigger1 = !Time ;射出開始Trigger1 = Root,NumProjID(1200 + ID) = 0; 重複を防ぐTrigger2 = Time 180 ;再射出終了タイミングTrigger2 = Root,NumProjID(1200 + ID) = 1; 再射出ProjID = 1200 + ID ;★ ProjIDPosType = P1 ;射出位置Offset = (Vel X),(Vel Y) ;速度補正ProjAnim = 1201 ;★攻撃判定表示用アニメProjRemoveTime = 1 ;固定; HitDef用のパラメーターも含めて記述する。 ■多段型・時間更新タイプ ;PauseTimeを再現したい場合は他のステコンへ処理停止記述を入れる事。 Type = Projectile ; HitDefTrigger1 = ( AnimElem = 2 ) || ( AnimElem = 7 ) || ( AnimElem = 12 );射出タイミング・再射出タイミングTrigger1 = Root,NumProjID(1300 + ID) = 0; 重複を防ぐTrigger2 = Root,NumProjID(1300 + ID) = 1; 再射出ProjID = 1300 + ID ;★ProjIDPosType = P1 ;射出位置Offset = (Vel X),(Vel Y) ;速度補正ProjAnim = 1301 ;★攻撃判定表示用アニメProjRemoveTime = 1 ;固定; HitDef用のパラメーターも含めて記述する。 ■多段型・ヒット数タイプ ※var必須 ;PauseTimeを再現したい場合は他のステコンへ処理停止記述を入れる事。 Type = Projectile ; HitDefTrigger1 = !Time || Root,ProjContactTime(1400 + ID) 15 Var(50) 3 ;ヒット後15F再射出停止Trigger1 = Root,NumProjID(1400 + ID) = 0; 重複を防ぐTrigger2 = Root,NumProjID(1400 + ID) = 1; 再射出Trigger3 = Root,ProjContactTime(1400 + ID) = 1 ;命中直後Trigger3 = var(50) = var(50) + 1 ;ヒットをカウントtrigger3 = 0 ;射出はしない。ProjID = 1400 + ID ;★ ProjIDPosType = P1 ;射出位置Offset = (Vel X),(Vel Y) ;速度補正ProjAnim = 1401 ;★攻撃判定表示用アニメProjRemoveTime = 1 ;固定; HitDef用のパラメーターも含めて記述する。 ■応用・Helper固定式・更新Proj型飛び道具 ■Helper固定してProjectileを射出する方式 Helperから射出座標の方を動かして飛び道具を飛ばすタイプの例 Helperを基準位置として座標をしていするのでHelperは動かさない ※Helperの射出位置も考えて記述を組んでいくこと。 ※Helperの画像は消して、ProjもしくはExplodで画像を表示する ※画像をアニメーションさせたい場合は、Anim定義を複数用意して、 射出のAnim指定で制御を行うこと。その場合Explodの方が望ましい。 ※HelperのPauseMoveTime,SuperMovetimeは0にしておいた方が良い Varを利用するとより柔軟に射出座標をコントロールできる。 Varを管理する場合は「 =代入」を利用してProjの条件式内で記述をしたい。 なるべくProj更新のタイミングでVar代入をすると、処理を安定させやすい、はず。 ヒットポーズの動作停止を再現したい場合T-/ProjContactTime()の条件で Projの処理を停止するようにすること。 また停止中はProjが消えるためExplodで停止中の画像を表示する必要がある。 ※Projの「向き」は速度に合わせて勝手に切り替わってしまう。 速度が可変するタイプを制御するならExplodの方が向きを調整しやすい。 固定した親Helperからは複数の更新Projを出すことができる。Projを増やせばHelperの上限数を超える数の特殊な飛び道具を扱うこともできる。 消失タイミングについて HitDef代替型はHelperでの消失管理になるがコチラは微妙に異なる。 Helperの位置は変わらないためProjの位置によって消去したい場合は、 ProjEdgeBound = 40 ;画面外射程・カメラの外側に出ると消える。ProjHeightBound = -10000,10000 ;画面上下射程ProjStageBound = 10000 ;ステージ外射程 ProjEdgeBoundなどで消滅処理をさせると良い、はず。 時間で消滅させたい場合はVarで時間を数えて消滅させる感じ。 親となるHelperは、そうしたProjなどが全て消えた後に消滅させる。 ■Helper固定型・時間var×速度タイプ・時限消滅 Type = Projectile ; HitDefTrigger1 = !Time ;射出開始Trigger1 = Root,NumProjID(1500 + ID) = 0; 重複を防ぐTrigger1 = 1 || var(50) = 1 ;Varリセット; ★ 射出時に初期パラメータを設定するTrigger2 = var(50) 180 ;再射出終了タイミングTrigger2 = Root,NumProjID(1500 + ID) = 1; 再射出Trigger2 = 1 || var(50) = var(50)+1 ;カウントVar; ★ 再射出時にパラメータを調整するProjID = 1500 + ID ;★ ProjIDPosType = P1 ;射出位置Offset = var(50)*(3.0), 0 ;★射出位置・時間×速度ProjAnim = 1201 ;★攻撃判定表示用アニメProjRemoveTime = 1 ;固定; HitDef用のパラメーターも含めて記述する。; 必要であればRoot,NumProjID(1500 + ID) 0条件にExplodを射出する。 ■Helper固定型・座標fvarタイプ・カメラ外消滅 Type = Projectile ; HitDefTrigger1 = !Time ;射出開始Trigger1 = Root,NumProjID(1600 + ID) = 0; 重複を防ぐTrigger1 = 1 || fvar(30) = 0 ;VarリセットTrigger1 = 1 || fvar(31) = 0 ;Varリセット; ★ 射出時に初期パラメータを設定するTrigger2 = time 600 ;再射出終了タイミングTrigger2 = Root,NumProjID(1600 + ID) = 1; 再射出Trigger2 = 1 || fvar(30) = fvar(30) + 0.1 + (Time*0.01)*(Time 60) ;一秒後加速Trigger2 = 1 || fvar(31) = fvar(31) + 0.5*(time 60)*ifelse(P2dist Y-45 0 ,1,-1);一秒後上下微追尾; ★ 再射出時にパラメータを調整するProjID = 1600 + ID ;★ ProjIDPosType = P1 ;射出位置Offset = fvar(30), fvar(41) ;★射出位置・fvarProjAnim = 1201 ;★攻撃判定表示用アニメProjRemoveTime = 1 ;固定ProjEdgeBound = 40 ;画面外射程・カメラの外側に出ると消える。ProjHeightBound = -10000,10000 ;画面上下射程; HitDef用のパラメーターも含めて記述する。; 必要であればRoot,NumProjID(1600 + ID) 0条件にExplodを射出する。 ■Helper固定型・時間×速度タイプ・複数複合型 ;▼1つ目Type = Projectile ; HitDefTrigger1 = !Time ;射出開始Trigger1 = Root,NumProjID(1600 + ID) = 0; 重複を防ぐTrigger2 = Time 240 ;再射出終了タイミングTrigger2 = Root,NumProjID(1600 + ID) = 1; 再射出ProjID = 1600 + ID ;★ ProjIDPosType = P1 ;射出位置Offset = (Time)*(2.5), 0 ;★射出位置・時間×速度ProjAnim = 1201 ;★攻撃判定表示用アニメProjRemoveTime = 1 ;固定; HitDef用のパラメーターも含めて記述する。必要ならExplod。;~;▼2つ目Type = Projectile ; HitDefTrigger1 = Time=30 ;射出開始Trigger1 = Root,NumProjID(1700 + ID) = 0; 重複を防ぐTrigger2 = Time-30 240 ;再射出終了タイミングTrigger2 = Root,NumProjID(1700 + ID) = 1; 再射出ProjID = 1700 + ID ;★ ProjIDPosType = P1 ;射出位置Offset = (Time-30)*(3), -10 ;★射出位置・時間×速度ProjAnim = 1201 ;★攻撃判定表示用アニメProjRemoveTime = 1 ;固定; HitDef用のパラメーターも含めて記述する。必要ならExplod。;~;▼3つ目Type = Projectile ; HitDefTrigger1 = Time=60 ;射出開始Trigger1 = Root,NumProjID(1800 + ID) = 0; 重複を防ぐTrigger2 = Time-60 240 ;再射出終了タイミングTrigger2 = Root,NumProjID(1800 + ID) = 1; 再射出ProjID = 1800 + ID ;★ ProjIDPosType = P1 ;射出位置Offset = (Time-60)*(3.5), -20 ;★射出位置・時間×速度ProjAnim = 1201 ;★攻撃判定表示用アニメProjRemoveTime = 1 ;固定; HitDef用のパラメーターも含めて記述する。必要ならExplod。;~ ■その他応用について 特に大量のProjを扱う場合はループステートを組むことをおすすめする。うまく制御すればProj記述自体は1つでも大量の更新Projを扱うこともできる。 細かい部分を調整することで特殊な性質を加味できる。例えば一定条件でProjAnimを変更し攻撃判定を消すなど。 fvar式の例ではProjでありながら特殊な挙動をする飛び道具となっている。 命中しても消滅せず通り過ぎるという性質の更新Projを作る場合はExplodで画像を表示を管理し、Explodの条件にProjの状況を入れなければ良い。 基本は【技に合わせてhelperを出して更新Projを出す】という管理だが細かく飛び道具=Helperを出すというタイプのキャラでは「Helperの上限を気にせず」という性質は活かせない。その場合は更新Projの親を常駐Helperにし、本体が飛び道具を出す際に本体座標などをVarに記録し、そのデータを元に更新Projを発射すれば細かく大量の飛び道具を出すキャラも一応可能。 ただしVarの記録可能数を超えると新しいHelperが必要になり、ブッキングしないよう管理はより複雑かつ面倒になるが。 AI技術関係について ■HelperのHitDefをProjへ差し替えた場合の反応用条件記述について Helper+HitDefr型である場合Helper,MoveContactなどで管理できるが、 Projの場合はT-/ProjContact,T-/ProjContactTime()で管理することになる。 ただしHelperのIDが分からない場合、ProjIDを指定できないため、 ProjContactime( Helper(xxx),ID+xxx ) = [0,15] ;リダイレクト入りProjID指定 ProjIDを指定したい場合はこうした工夫をすることになるが、 リダイレクトではHelperが消えると使えないためVarで管理することになる。 案.VarへHelperIDを入れておく方式発射時にHelperからIDをSC-/ParentVarSetしする。 ProjContactime( var(xxx)+xxx ) = [0,15] ;VarでProjID指定 ヒット情報を正確に認識できるが、同種複数の飛び道具の管理が困難となる。 案.ヒットした情報をVarへ入れる方式Projの攻撃がヒットした時点でSC-/ParentVarSetで情報を伝達する。 伝達する情報は「ヒットフラグ(要リセット)」が基本だが他にも 硬直の持続時間を入れて、本体で毎F-1ずつ減らす猶予カウント型なども可能。 なお細かいヒットを確認する必要がないのであれば ProjContactime(0)=[0,10]などで一括判定してしまうことも可能。 ただ例では16Fまでと指定しているが、実際の硬直時間は T-/GetHitVar()で確認するほうが確実。