180kis00022yav 1995/11/01 06:52:45 前へ 後へ 上へ

Re:fkiss

178へのコメント

>・イベントが同時に発生したときの処理の優先順位は?

fkissのソースでは,
cnfに記述された順になってますが,実は私の意図した理想的な動作は,
  全て同時に処理される!!
が正解です.(どうだ驚いたか!)
もちろん現在そんなプロセッサは無いし,矛盾した処理なんてのも発生しますから,
現実的には処理系依存です.

>・catch(or fixcatch) と press はどう違うのでしょうか?
  どういう意図をもって,わざわざわけたのか?ということです。

fkissは,実はKISSと固定値の解釈が違います!!
というか,固定値に関してより深い解釈をとりいれてます.
それは,
cnfのセル記述行に書いてある固定値が最大のセルを含むオブジェクトは
絶対に動かないオブジェクトとして扱うという点です.
(通常オブジェクトの固定値は,それを構成するセルの記述行に書かれた
固定値を足したものですが,
この判定の場合にはセルの記述行に書かれた値そのもので判定します.)
どうしてそんなことをしてるかというと,
>  絶対動かないセルの指定が欲しいです。
だからなのです!
さらに,スクロールバーがなくても画面をスルロールさせることができるからです.
(fkissでは背景や絶対動かないオブジェクトの上でドラッグすることで
画面をつかんでスクロールさせます.これは実に便利だと思う)

で,本題.
絶対動かないオブジェクトの上でボタンを押してもcatchしたことには
なりませんが,pressしたことにはなります.
マウスのボタンの状態と生成されるイベントについてまとめてみます.

ボタン	~~~~~~~~|_______________|~~~~~~~|_______________|~~~~~~~|_______|~~~~
fix-max		pr		re	pr		re	pr	re
fix-n		pr&fc	fd	re	pr&fc	uf	dr&re	pr&ca	dr&re
fix-0		pr&ca		dr&re	pr&ca		dr&re	pr&ca	dr&re

というのが私の意図した理想なんですが,
なんか表を書いてて,fkissってちゃんとこんな風に実装されてるか
不安になってきた.(をいをい) 後で見直してみます.

>  KISSGA/21/CL の作者の Hx2さんもおっしゃってたんですが,
>  pressと catchとかは,同時に起きないほうがいいんじゃないでしょうか。

うむ!私もそう思ったんですよ.
ただ,つかんだってことは,やっぱりその上でボタンをプレスしたという
のも事実ではあるなあ なんて考えたりもしたもんですから.

実用上は,
>  イベントはできるだけ排他的にした方が,
>  細かい制御ができますし,
>  処理順の問題も起きませんから。
というのが,まさに正解だろうと思います.


>・catch("body.cel")
>  セルファイル名を指定するとき,""で括ってますが,
>  必用ないんじゃないでしょうか?

実は,catch(123)と書くと,セル番号123と勘違いするのです.
単にセル番号でも指定できるという現在の内部的な都合でして,
""は外しても問題ないと思います.はい.

>  また,重なってる判定は,
>  セルを矩形と考えれば,けっこう簡単そうですね。
>  でも,非透明部と考えるとナカナカ難しそうです。

当然,非透明部としてとらえるしかないでしょう.
それ以外はデータ製作者に理解してもらえないだろうと思います.
具体的なイベントの条件は長くなるので後程コメントしますが,
あるセルがあるセルの完全に内側になったらとか
少しでも外側になったらイベントが発生するといった感じでいいかなと思っています.


>・変数,条件分岐
>  まず, goto は絶対必要だと思います!

処理に順番がないというかprologのような関数型言語を考えていたので,
gotoは意味を持ちません!(またまた驚いたでしょ?)

で,それだと,変数に代入した瞬間にかなりの処理になってしまうので,
変数は見送っていたという次第です.
が,たぶんやっぱりみんな手続き型の言語の方がなじみ深いと思うので
どうしたもんだかと思案しています.

いやー,こうやってツッコミしていただけると,
いろいろ不備な点を洗いだせてたいへん勉強になります.ありがとう!
ひゅうさんのようにプログラムに詳しいって人だけじゃなくて,
プログラムのこととかぜんぜんわかんないよーって人も,
こんなことどうやったら出来るんでしょうか?
なんて質問でもたいへん参考になりますんで
気がねせず聞いてくださいね.

                                UHD98984@pcvan.or.jp
                                                yav

前へ 後へ 上へ