home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ring.yamanashi.ac.jp/pub/pc/freem/action/
/
action.zip
/
baku100.zip
/
baku100
/
Kernel
/
PlainChar.tonyu
< prev
next >
Wrap
Text File
|
2007-09-23
|
5KB
|
245 lines
extends classes.scr.Sprite;
native _changeAttr;
//native _inspect;
//native _dynamicInspect;
constructor PlainChar(xx,yy){
x=xx;
y=yy;
zOrder=0;
_visible=1;
died=0;
_generator=0;
onCreate();
super();
}
function onCreate() {
}
function setDefaultProperties(xx,yy) {
x=xx;y=yy;
changeAttr("x",x);
changeAttr("y",y);
}
function getGenerator() {
return _generator;
}
function setGenerator(g) {
_generator=g;
return g;
}
function inspect () {
if ($_design_mode==1 && _generator) {
//print("!!!"+_generator);
_inspect(_generator);
$_inspector_target=this;
} else _dynamicInspect();
}
function changeAttr (an,v) {
if (_generator!=0) {
_changeAttr (_generator,an,v);
onChangeAttr(an,v);
}
}
function onChangeAttr(an,v){
}
function onMouseDown (xx,yy,lb,rb) {
}
function onMouseDownForDesign (xx,yy,lb,rb) {
}
function mouseDown (xx,yy,lb,rb) {
if (!designMode()) onMouseDown (xx,yy,lb,rb);
else onMouseDownForDesign (xx,yy,lb,rb);
inspect();
}
function onMouseDrag (sx,sy,dx,dy,lb,rb) {
}
function onMouseDragDesign (sx,sy,dx,dy,lb,rb) {
}
function mouseDrag (sx,sy,dx,dy,lb,rb) {
if (!designMode()) onMouseDrag (sx,sy,dx,dy,lb,rb);
else onMouseDragDesign (sx,sy,dx,dy,lb,rb);
if ($_design_mode==1) {
if (lb) {
x=x+(dx-sx);
y=y+(dy-sy);
changeAttr("x",x);
changeAttr("y",y);
}
}
inspect();
}
function getWidth() {
return 16;
}
function getHeight() {
return 16;
}
function crashTo(pp,xx,yy){
// æ╝é╠âIâuâWâFâNâgé╞Å╒ô╦é╡é─éóéΘé⌐é╟éñé⌐é≡ö╗ÆΦé╡é▄é╖üB<HID=23>
if (!pp)return 0;
if ( abs(pp.x-(x+xx))*2 < getWidth()+pp.getWidth() ) {
return abs(pp.y-(y+yy))*2 < getHeight()+pp.getHeight() ;
}
return 0;
}
function crashAt(xx,yy){
if (abs(xx-x)*2<getWidth()) {
return (abs(yy-y)*2<getHeight());
}
return 0;
}
function onDraw() {
// âIâuâWâFâNâgé╔ò`ëµé≡é╖éΘé╞é½é╔üAô┴ò╩é╚Åêù¥é≡é╖éΘÅΩìçé╔âåü[âUé¬ÆΦï`é╖éΘâüâ\âbâhé┼é╖üB<HID=90>
}
function drawFocus() {
var w,h,xx,yy;
xx=x;yy=y;
w=getWidth()*0.5+4;h=getHeight()*0.5+4;
drawSprite(xx-w,yy-h,0);
drawSprite(xx+w,yy-h,0);
drawSprite(xx-w,yy+h,0);
drawSprite(xx+w,yy+h,0);
}
function draw() {
/* if ($_design_mode==1 && $_inspector_target==this ) {
drawFocus();
}*/
onDraw();
}
function onUpdate() {
//updateâüâ\âbâhé¬î─é╤Åoé│éΩé╜é╞é½é╔ô┴ò╩é╚Åêù¥é≡é╡é╜éóé╞é½é╔âåü[âUé¬ÆΦï`é╖éΘâüâ\âbâhé┼é╖üB<HID=28>
}
function update() {
//âIâuâWâFâNâgé╠Åæé½è╖éªÅêù¥é≡ìséóé▄é╖üB<HID=24>
if (!_updating) {
_updating=1;
onUpdate();
_updating=0;
}
suspend();
}
function updateEx(time) {
while (time>0) {update(); time-=1; }
}
function onDie() {
//âIâuâWâFâNâgé¬ÄÇé±é╛é╞é½é╔ô┴ò╩é╚Åêù¥é≡é╡é╜éóé╞é½é╔âåü[âUé¬ÆΦï`é╖éΘâüâ\âbâhé┼é╖üB<HID=52>
}
function die() {
//âIâuâWâFâNâgé≡ÄEé╡é▄é╖üB<HID=27>
if(!died) {
onDie();
died=1;
}
}
function isDied() {
//âIâuâWâFâNâgé¬ÄÇé±é┼éóéΘé⌐é╟éñé⌐é≡ö╗ÆΦé╡é▄é╖üB<HID=97>
return died;
}
function isDead() {
//âIâuâWâFâNâgé¬ÄÇé±é┼éóéΘé⌐é╟éñé⌐é≡ö╗ÆΦé╡é▄é╖üB<HID=97>
return died;
}
function wait(w) {
//âIâuâWâFâNâgé╠ô«ì∞é≡êΩÄ₧ôIé╔ÆΓÄ~é╡üAæ╥ï@Å≤æ╘é╔é╡é▄é╖üB<HID=91>
if (_pProc) _pProc.wait(w);
}
function notify() {
//waitâüâ\âbâhé┼æ╥ï@Å≤æ╘é╔éáéΘâIâuâWâFâNâgé╠ô«ì∞é≡ì─èJé╡é▄é╖<HID=92>
if (_pProc) _pProc.notify();
}
function setVisible(v) {
//âIâuâWâFâNâgé╠ò\ĪüEö±ò\Īé≡É▌ÆΦé╡é▄é╖üB<HID=96>
_visible=v;
}
function getVisible(v) {
//setVisibleâüâ\âbâhé┼ÄwÆΦé╡é╜âIâuâWâFâNâgé╠ò\ĪüEö±ò\ĪÅ≤æ╘é≡ĵô╛é╡é▄é╖üB<HID=101>
return _visible;
}
function screenOut(a) {
//âIâuâWâFâNâgé¬ëµû╩èOé╔Åoé╜é⌐é╟éñé⌐é≡ö╗ÆΦé╡é▄é╖üB<HID=116>
var r; r=0;
if (x<$viewX+a) r+=$viewX+a-x;
if (y<$viewY+a) r+=$viewY+a-y;
if (x>$screenWidth +$viewX-a) r+=x-($screenWidth +$viewX-a);
if (y>$screenHeight+$viewY-a) r+=y-($screenHeight+$viewY-a);
return r;
}
function getScreenX(r) {
//âIâuâWâFâNâgé╠âXâNâèü[âôì└òWé≡ô╛é▄é╖üB<HID=114>
if (r==null) return x-$viewX;
return r-$viewX;
}
function getScreenY(r) {
//âIâuâWâFâNâgé╠âXâNâèü[âôì└òWé≡ô╛é▄é╖üB<HID=114>
if (r==null) return y-$viewY;
return r-$viewY;
}
function gotoScreen(xx,yy) {
//âIâuâWâFâNâgé╠ê╩Æué≡âXâNâèü[âôì└òWé≡ùpéóé─ÄwÆΦé╡é▄é╖üB<HID=114>
x=$viewX+xx;
y=$viewY+yy;
}
function onAppear() {
}
function waitSelect(prompt,title) {
if (!title) $selectBox.open(prompt);
else $selectBox.open(prompt,title);
while (!$selectBox.getStatus()) update();
return $selectBox.getStatus()==1;
}
function waitInput(title,prompt,default) {
$inputBox.open(title,prompt,default);
while (!$inputBox.getStatus()) update();
return $inputBox.getText();
}
function crashToLine(sx,sy,dx,dy,width,xx,yy){
var p,q,cx,cy;
if (xx==null) {
cx=x-sx;cy=y-sy;
} else {
cx=xx-sx;cy=yy-sy;
}
sx=dx-sx;
sy=dy-sy;
dx=sx*sx+sy*sy;
p=( sx*cx +sy*cy)/dx;
q=( -sy*cx +sx*cy)/dx*dist(sx,sy);
return (p>=0 && p<=1 && abs(q)*2<width );
}
function run() {
while(1) update();
}
wait();