制作日記

こういうの作った方が、逃げにくいじゃない

オキ氏の日記読んでて

気になったとこでも

ceil((2*1.0)**X)でも良いみたいね とにかくfloat値にすれば正常になるって感じ
…という事はもしかしてlifeの%算出も変数無しでいけるんじゃないか?やってみよう

キタ―(゚∀゚)―!!! life(%)算出を変数無しで出来たぞぉー!
(life/lifemax);←算出されない
((life/lifemax)*1.0);←算出されない
((life*1.0)/(lifemax*1.0));←算出される!
(life/(lifemax*1.0));←算出される!
((life*1.0)/lifemax);←算出される!

これで一々敵のlife等を変数化させる必要は無いんですね!?
嬉しい!嬉しいよぉ…!
てか何でlifeかlifemaxのどちらかでも1.0かけたら算出されるんだろ?意味不


一応前半部分の補足
float値の有効桁数は6桁だっけ?なので、それより大きくなる累乗を計算するときは使えないかも

後半部分
基本的に計算結果は計算式に含まれる数値の型で求められます
int同士の演算なら結果もint、float同士なら結果もfloatって感じで
displaytoclipboardなんかはどうにかして%dにcharを渡しても内部的にはintに拡張されてます
printfとかと仕様が変わってなければの話だし、MUGENではintとfloatしか扱えないけど

なら、intとfloatの演算があった場合はどうなるのか?
実は暗黙的な型変換ってのが行われています
計算される前にどちらかの型に勝手に型変換されるのです
型変換される方向は基本的に範囲が大きい方です
MUGENにはintとfloatしか存在しないから、floatに型変換されるってことですね

プログラムなんかには明示的型変換ってものあります
文法は色々ですが、(float)lifeみたいな感じで
MUGENにはそんなのないので、明示的型変換を暗黙的型変換で代用してやる必要が出てくるわけです

((life*1.0)/lifemax);←算出される!
この例だと、lifeに1.0掛けることで、lifeをfloatに型変換してるわけです
さて、これらの演算が行われる順番ですが、結合規則より*→/です
つまり*でfloatに型変換した後に、それをlifemaxで割ることで/の結果もfloatで得られるわけです

((life/lifemax)*1.0);←算出されない
この例で算出できないのは演算子の結合規則の問題ですね
型変換等は一度に計算式全体に対して行われるわけではありません
一つずつ計算しつつ順番に行われていきます
結合規則より演算の順番は/→*ですので
/はint型同士なので結果もint、それに1.0を掛けることでfloatに型変換
という順序になるわけです
なので、求めたい値を正確に算出できないわけです

taginの仕様

こいつ結構ややこしいな

シングル時、タッグ時ってだけでなくて
タッグ時でもpartnerstateno指定の有無でも動作が変わる

partnerstatenoを指定していると良く知られている動作
partnerstatenoを指定していないと、ESC押下changestateみたいな動作になる
つまり、タッグ時限定だけども%nなしで凍結無しヌルヌルが可能ってことですね
つなみに、taginはselfstateではなくchangestate

シングル時の動作で稀有な点は、time維持ってとこかね

連休中にtaginの動作を調べたいなーと考え中

今月の新刊

今月少ないかなーと思ってたけど、そうでもなかった
多くはなかったけどね
「バリスタ」、「とろ鉄」、「Gガン」、「ストパン」、「WOMBS」
あと先月出てたことに気付かなかった「デイドリームネイション」

それプラスちょっときになったのを数冊
「きものなでしこ」、「チロリン堂の夏休み」、「群青01」、「87CLOCKERS」、「さらば、やさしゆうづる」
特典で表紙隠すのはどうかと思うのよね、裏表紙の方に付けとけよ
表紙見えてたら買わなかったかもしれん、群青01
というか、なんか見覚え有る絵だと思ったら作画は桐原いづみか
ひとひらの人ですね

天獄の新刊は止めた、あれはもういいや

でだ
「WOMBS」と「さらば、やさしいゆうづる」が面白いのよ
「WOMBS」が面白いのはわかりきってたし、置いとく
「さらば、やさしいゆうづる」が良い
べた褒めするほどではないんだけど、漫画書き始めて2年ってことを考慮すると……
これからが非常に楽しみ

近所の本屋では女性向けコーナーに並んでたから、人によっては買いにくいかもね
自分は女性向けだろうが気にせず物色できる人間なので

ブログいじいじ

引用は青字にしてたんだけど、アレ色合い的に読みにくいよね
かといって、過去記事の引用文まで色変えるのもメンドクサイ

ということで、記事本文中の背景色を薄くしてみた
これで大分見やすくなったはず
これ以上薄くすると、白くて目が痛い
PC弄るときはディスプレイの光しかないから、白は避けたいのです
消費電力は白のほうが低いけどね!

あと、記事中のフォントでMeiryoを指定
ヒラギノは自分が持ってないから却下
MUGEMはwindows用だし、それ以外は気にする必要ないでしょ
行間とか詰まってて読みにくかったのよね
直接調整しても良かったけど、Meiryo指定した方が楽だった

たまに記事を見返したりするから、見やすさは結構重要なのです

オキ氏のテキスト読んでて

気になったとこでも、書いてみる

テスト2 同一トリガー内での優先度
[state ]
type=null
trigger1=1||var(0):=var(1):=var(2):=0
trigger1=var(2):=!var(0)+30||var(1):=!var(2)+20||var(0):=!var(1)+10
上記を例にした場合
var(0)=10,var(1)=20,var(2)=31となった
えっと…var(2)を読み込む時にはvar(0)は0だから左から順番に読み込んでるって事になるのかな?
試しにvar(0)代入の部分を:=!!var(2)+10にすると11を返したので
trigger1= A || B || C とした場合A→B→Cてな感じに読み込むっぽい
また、||が&&でも同じ結果になった
そしてテスト1にもあるvar(X):=var(Y):=var(Z):=Aとした場合は
var(Z)の代入から行われvar(X),var(Y)はvar(Z)と同値になる
多分…var(X):=a,b=(var(Y):=b),c=(var(Z):=A)て感じで
括弧が省略されてる…んだと思う var(X):=(var(Y):=(var(Z):=A))みたいに
だから代入の優先度はこの場合var(Z)からってなってるのかなー…

そこらへんは演算子の優先度と結合規則を調べると、幸せになれるのよ
ちゃんと調べてないけど、Cとほぼ同じでしょ、多分
ただし、注意すべきは
trigger1= A || B || C とした場合A→B→Cてな感じに読み込むっぽい
ここだと思うのよね
Cだ真偽が確定した瞬間読まなくなるんだけど、MUGENは馬鹿正直に全部読みやがる


代入のテスト3 ifelse
[state ]
type=null
trigger1=ifelse((var(1):=!var(0)),var(0):=1,var(0):=0)
上記のようにifelse内で代入をしてみたが…
この結果は常にvar(0)=0,var(1)=1となった
ifelse(A,B,C)としてAが真を返せばBを読み
Cが無視されるのならばAの真偽は交互になる筈なんだけど…
0にリセットせずとも結果は固定 どうもCの部分まで一応は見ているっぽいね…
試しに
trigger1=ifelse(0,var(0):=1,var(2):=16&&var(1):=88)
とした結果 全ての変数にそれぞれ指定値が代入された
これはifelse(A,B,C)のAが真であろうと偽であろうと同じ
ifelse内で代入を行う人は注意!


ここもそれが微妙にかかわってるのかもね
で、R.C.にはcondっていうトリガーがあってだな
これは真偽判定後、片方だけ読み込んでくれるという優れもの
プロフィール

Author:drab
霊夢改変キャラ
「12 3 ! {V} [_]」
公開中
L霊夢でもl_reimuでも好きなように読んでください

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク