Hatena::ブログ(Diary)

satoru.netの自由帳 このページをアンテナに追加 RSSフィード

080531Satday

coreserverのrbashを変更したい

coreserverの最近のサーバデフォルトのshellはrbashってやつで、

ls とかの基本的なコマンドが使えなくて不便。

そこで、sshで入って、

chsh

って入力して自分の好きなshに変更すると便利だった。

僕はbash派なので

/bin/bash

にした。そーすると、無事に

$ grep "satoru" /etc/passwd

satoru:x:10051:20000:satoru:/virtual/satoru:/bin/bash

ちゃんと変わって ls とか cd とか基本的なコマンドがデフォで使えるようになるよん。

080530Friday

忙しいと、作れない

いくら アイデアとか作れる能力があっても そのときにやらないといけないこととか

お仕事があるとどうしても 自分の創作活動に 費やす時間は 削らないといけない事に なるはめになっちまって、

そういう状況では やっぱし ロケット級にサービス作っていったり、好きなものを作るのなんて 

精神的にも 物理的にも 無理っぽいな ってのを実感した。

要は暇なのはめちゃくちゃ大事ってこと。

[]ペラペラめくるflash

最近、たまに見かけるよね。本をペラペラめくるようなUIを実装してるFlash

http://www.pageflip.hu/

Flashで本をペラペラめくる感じのUIを実装する「Dynamic Page Flip v2」:phpspot開発日誌


まあ、使いやすいかどうかは別として、

こーゆー直感的に扱えるUIは使うだけで楽しい気持ちになるよねえ。

調理の仕方次第では、新しいサービスとかも作れそうだ。


そんで、こういうのどーやんだろーって調べてたら

http://board.flashkit.com/board/archive/index.php/t-741662.html

海外でソース公開してるひとがいた。

今度、これを使ってなんか創ってみよう( ^ω^)

pw = 397; //page width in pixel
ph = 842; //page height in pixel
//pages in the library must have the same size, the script will not resize them!

//page data... (export names/tearing flag)
addPage("start"); //Always start with "start"!!!
addPage("page1");
addPage("page2");
addPage("page3");
addPage("page4");
addPage("page5");
addPage("page6");
addPage("page7");
addPage("page8");
addPage("end"); //always end with "end"!!!

page=0; //first page (normally it is 0 = the page before the cover = blank page)
hcover = false; //hard cover on/off

clickarea = 64; //pixel width of the click sensitive area at the edges..
afa = 36; //width of the autoflip starter square.

gs = 2; //goto page flip speed
ps = 5; //mouse pursuit speed
es = 3; //flip speed after mouse btn release

canflip = true; //page flipping enabled

transparency = false; //use transparent pages or not (1 level transparency)

lcover = false; //large cover on/off
lcaddx = 0; //width difference
lcaddy = 0; //height difference on top/bottom

SoundOn = false; //use page sounds


//do not change these values: ---------------------------------------------------------------------------------------------------------------------

_global.mcnt = 0; //counter (used on a page where is an animation)
gpage = 0; //gotoPage No
gflip = false; //gotoPage flip
gdir = 0; //goto direction...
gskip = false; //skip pages ***
gtarget = 0; //target when skipping

aflip = false; //auto flip
flip = false; //pageflip
flipOff = false; //terminateflip
flipOK = false; //good flip
hflip = false; //hardflip (the cover of the book)
rotz = -30; //hardflip max y difference

preflip = false; //corner flip status
ctear = false; //actual page status
tear = false;
teard = 0;
tlimit = 80;
removedPages = new Array(); //list of removed pages!

mpx = 0, mpy = 0; //mousepos at click
sx = sy = 0; //startpoint when flipping
x = 0; //mouse x,y
y = 0;
ax = 0; //auto x,y
ay = 0;
acnt = 0;
aadd = 0;
aamp = 0;

AM = Math.PI/180;
Thanks
thehappyappy
08-16-2007, 05:54 AM
The secone part of the code is://pageflip code by Macc ---------------------------------------------------------------------------------------------------------------------------
function addPage(ename,tear) { //defining pages... -------------------------------------------------------------------------------------------
if(ename=="start") {
pageOrder = new Array();
pageCanTear = new Array();
page=0;
ename="blankpage";
}
if(ename=="end") {
maxpage = page-1;
ename="blankpage";
}
tear = tear==undefined? false: tear;
pageOrder[page] = ename;
pageCanTear[page] = tear;
page++
}

function reset() { //initializing pages... ---------------------------------------------------------------------------------------
pages.p4.page._x = -pw;
pages.p4._x = pw;
pages.p1.page._x = -pw;
pages.p1._x = 0;

pages.flip.p2.page._x = -pw;
pages.flip.p2._x = pw;
pages.flip.p3.page._x = -pw;
pages.flip.p3._x = 0;

pages.p0.page._x = -pw;
pages.p0._x = 0;
pages.p5.page._x = -pw;
pages.p5._x = pw;

pages.pLL.page._x = -pw;
pages.pLL._x = 0;
pages.pLR.page._x = -pw;
pages.pLR._x = pw;


pages.pgrad._visible = pages.mask._visible = pages.flip._visible = false;
pages.flip.p3mask._width = pages.pgmask._width = pw*2;
pages.flip.p3mask._height = pages.pgmask._height = ph;
pages.center._height = ph+2*lcaddy;
pages.flip.fmask.page.pf._width = pw;
pages.center._width = 6;
pages.flip.fmask.page.pf._height = ph;

pages.mask._height = pages.pgrad._height = pages.flip.p3shadow._height = pages.flip.flipgrad._height = 2*Math.sqrt(ph*ph+pw*pw);

pageNumber = new Array();
for(i=0;i<=(maxpage+1);i++) pageNumber[i] = i;
}

mousecontroll = new Object(); //initializing mouse click handler ---------------------------------------------------------------------------
mousecontroll.onMouseDown = function() {
if(flip && !aflip) {// && !preflip) {
flipOK = false;
if(sx<0 && pages._xmouse>0) flipOK = true;
if(sx>0 && pages._xmouse<0) flipOK = true;
flipOff = true;
flip = false;
} else if((flipOff || aflip || !canflip) && !preflip) {
trace("donothing");
} else {
var oox = ox;
var ooy = oy;
var osx = sx;
var osy = sy;
var hit = hittest(); //hittest
if(hit) {
startsnd(1); //Sound
anim._visible = false;
flip = true;
flipOff = false;
tear = false; //not tearing yet...
ox = sx = hit*pw;
if(preflip) {
aflip = preflip = false;
ox = oox, oy = ooy;
sx = osx, sy = osy;
}
pages.flip.setMask(pages.mask);
mpx = pages._xmouse, mpy = pages._ymouse;
oef();
//_quality = "MEDIUM"; //it is the place to degrade image quality while turning pages if the performance is too low.
}
}
}
mousecontroll.onMouseUp = function() {
if(flip && !tear) {
if((Math.abs(pages._xmouse)>(pw-afa) && Math.abs(pages._ymouse)>(ph/2-afa) && Math.abs(pages._xmouse-mpx)<afa) || preflip) {
flip = false;
preflip = false;
autoflip();
startsnd(2); //sound
} else if(!preflip) {
preflip = false;
flipOK = false;
if(sx<0 && pages._xmouse>0) flipOK = true;
if(sx>0 && pages._xmouse<0) flipOK = true;
flipOff = true;
flip = false;
if(flipOK) startsnd(2); //sound
}
}
}

function hittest() { //hittest at mouse clicks, if click is over the book -> determining turning direction ------------------------------------
var x=pages._xmouse;
var y=pages._ymouse;
var pmh = ph/2;

if(y<=pmh && y>=-pmh && x<=pw && x>=-pw) { //ha a megadott intervallumban klikkelunk, akkor lapozhatunk
var r = Math.sqrt(x*x+y*y);
var a = Math.asin(y/r);
var y = Math.tan(a)*pw;
if(y>0 && y>ph/2) y = ph/2;
if(y<0 && y<-ph/2) y = - ph/2;
oy = sy = y;
r0 = Math.sqrt((sy+ph/2)*(sy+ph/2)+pw*pw);
r1 = Math.sqrt((ph/2-sy)*(ph/2-sy)+pw*pw);

pageN = eval("pages.flip.p2.page");
pageO = eval("pages.flip.p3");
offs = -pw;
pages.flip.fmask._x = pw;

if(x<-(pw-clickarea) && page>0) { //>-----> flip backward
pages.flip.p3._x = 0;
hflip = checkCover(page,-1);
setPages(page-2,page-1,page,page+1);
ctear = pageCanTear[page-1];
return -1;
}
if(x>(pw-clickarea) && page<maxpage) { //<-----< flip forward
pages.flip.p3._x = pw;
hflip = checkCover(page,1);
setPages(page,page+2,page+1,page+3);
ctear = pageCanTear[page+2];
return 1;
}
} else return 0; //wrong click
}
function checkCover(p,dir) {
if(hcover) {
if(dir>0) {
if(p==(maxpage-2) || p==0) return true;
} else {
if(p==maxpage || p==2) return true;
}
}
return false;
}
function corner() {
var x = Math.abs(pages._xmouse);
var y = Math.abs(pages._ymouse);
if(x>(pw-afa) && x<pw && y>(ph/2-afa) && y<(ph/2)) {
return true;
}
return false;
}


function oef() {
_global.mcnt++; //main counter incrase (need for some page effect);

if(!flip && corner()) { //corner mouseover
preflip = true;
if(!autoflip()) preflip = false;
}
if(preflip && !corner()) {
preflip = false;
flip = false;
flipOK = false;
flipOff = true;
}
getm();
if(aflip && !preflip) {
y = (ay += (sy-ay)/(gflip? gs: ps ));
acnt += aadd;
ax -= aadd;
if(Math.abs(acnt)>pw) {
flipOK = true;
flipOff = true;
flip = false;
aflip = false;
}
}
if(flip) { //page turning is in progress...
if(tear) {
x = tox;
y = (toy += teard);
teard *= 1.2;
if(Math.abs(teard)>1200) {
flipOff = true;
flip = false;
}
} else {
x = (ox += (x-ox)/(gflip? gs: ps ));
y = (oy += (y-oy)/(gflip? gs: ps ));
}
calc(x,y); //positioning pages and shadows
}
if(flipOff) { //terminating page turning effect... (comlplete turning... dropped on the other side)
if(flipOK || tear) {
x = (ox += (-sx-ox)/(gflip? gs: es ));
y = (oy += (sy-oy)/(gflip? gs: es ));
calc(x,y);
if(x/-sx > 0.99 || tear) { //we are done with turning, so stop all turning issue...
flip = false;
flipOK = flipOff = false;
pages.pgrad._visible = pages.flip._visible = false;
//_quality = "BEST"; //if quality is decrased during turning effect, you must reset its default value!

if(tear) { //if tear: remove page!!!
removePage((sx<0)? page: page+1);
page += (sx<0)? -2: 0;
} else {
page += (sx<0)? -2: 2; //and tourning pages at pagenumber level...
}
if(gskip) page = gtarget;
setPages(page,0,0,page+1);
tear = false;

if(gpage>0 && !gskip) { //gotoflip active -> is there another flipping left?
gpage--;
autoflip();
startsnd(0); //sound
} else gflip = gskip = false;
}
} else { //terminating page turning effect... (incomlplete turning... dropped on the dragged side)
x = (ox += (sx-ox)/3);
y = (oy += (sy-oy)/3);
calc(x,y);
if(x/sx > 0.99) { //we are done with turning, so stop all turning issue...
flip = false;
flipOff = false;
aflip = false;
pages.pgrad._visible = pages.flip._visible = false;
//_quality = "HIGH"; //if quality is decrased during turning effect, you must reset its default value!
setPages(page,0,0,page+1); //no change at pagenumbers..
}
}
}
}

function calc(x,y) { //positioning pages and shadows by x,y reference points --------------------------------------------------
if(hflip) { //hardflip...
var xp = (sx<0)? -x: x;
if(xp>0) {
sp2._visible = false;
sp3._visible = true;
scalc(sp3,x);
} else {
sp3._visible = false;
sp2._visible = true;
scalc(sp2,x);
}
pages.flip.setMask(null);
pages.flip._visible = true;
pages.flip.fgrad._visible = false;
pages.flip.p2._visible = pages.flip.p3._visible = false;
return;
} else pages.flip.fgrad._visible = true;

//normal flipping process---------------------------------------------------------------------
var rr0 = Math.sqrt((y+ph/2)*(y+ph/2)+x*x);
var rr1 = Math.sqrt((ph/2-y)*(ph/2-y)+x*x);
if((rr0>r0 || rr1>r1) && !tear) { // we can tear off pages now:)
// so reference points must be recalculated!
if(y<sy) { // k1-gyel kell osszehasonlitani!
var a = Math.asin((ph/2-y)/rr1);
y = (ph/2-Math.sin(a)*r1);
x = (x<0)? -Math.cos(a)*r1: Math.cos(a)*r1;
if(y>sy) {
if((sx*x)>0) y = sy, x = sx;
else y = sy, x = -sx;
}
if((rr1-r1)>tlimit && ctear) {
teard = -5;
tear = true;
tox = ox = x;
toy = oy = y;
}
} else { // k0-val kell osszehasonlitani!
var a = Math.asin((y+ph/2)/rr0);
y = Math.sin(a)*r0-ph/2;
x = (x<0)? -Math.cos(a)*r0: Math.cos(a)*r0;
if(y<sy) {
if((sx*x)>0) y = sy, x = sx;
else y = sy, x = -sx;
}
if((rr0-r0)>tlimit && ctear) {
teard = 5;
tear = true;
tox = ox = x;
toy = oy = y;
}
}
}
if((sx<0 && (x-sx)<10) || (sx>0 && (sx-x)<10)) {
if(sx<0) x = -pw+10;
if(sx>0) x = pw-10;
}
//calculating flipping process
pages.flip._visible = true;
pages.flip.p3shadow._visible = pages.pgrad._visible = !tear;
pages.flip.p2._visible = pages.flip.p3._visible = true;
//equation of the line
var vx = x-sx;
var vy = y-sy;
var a1 = vy/vx;
var a2 = -vy/vx;

cx = sx+(vx/2);
cy = sy+(vy/2);
//trigonometriai szamitasok
//calculating rotation of the page, and the masks
var r = Math.sqrt((sx-x)*(sx-x)+(sy-y)*(sy-y));
var a = Math.asin((sy-y)/r);
if(sx<0) a = -a;
ad = a/AM; //in degree
pageN._rotation = ad*2;
r = Math.sqrt((sx-x)*(sx-x)+(sy-y)*(sy-y));
rl = (pw*2);
if(sx>0) { //flip forward
pages.mask._xscale = 100;
nx = cx-Math.tan(a)*(ph/2-cy);
ny = ph/2;
if(nx>pw) {
nx = pw;
ny = cy+Math.tan(Math.PI/2+a)*(pw-cx);
}
pageN.pf._x = -(pw-nx);
pages.flip.fgrad._xscale = (r/rl/2)*pw;
pages.pgrad._xscale = -(r/rl/2)*pw;
pages.flip.p3shadow._xscale = (r/rl/2)*pw;
} else { //flip backward
pages.mask._xscale = -100;
nx = cx-Math.tan(a)*(ph/2-cy);
ny = ph/2;
if(nx<-pw) {
nx = -pw;
ny = cy+Math.tan(Math.PI/2+a)*(-pw-cx);
}
pageN.pf._x = -(pw-(pw+nx));
pages.flip.fgrad._xscale = -(r/rl/2)*pw;
pages.pgrad._xscale = (r/rl/2)*pw;
pages.flip.p3shadow._xscale = -(r/rl/2)*pw;
}
pages.mask._x = cx;
pages.mask._y = cy;
pages.mask._rotation = ad;
pageN.pf._y = -ny;
pageN._x = nx+offs;
pageN._y = ny;
pages.flip.fgrad._x = cx;
pages.flip.fgrad._y = cy;
pages.flip.fgrad._rotation = ad;
pages.flip.fgrad._alpha = (r>(rl-50))? 100-(r-(rl-50))*2: 100;
pages.flip.p3shadow._x = cx;
pages.flip.p3shadow._y = cy;
pages.flip.p3shadow._rotation = ad;
pages.flip.p3shadow._alpha = (r>(rl-50))? 100-(r-(rl-50))*2: 100;
pages.pgrad._x = cx;
pages.pgrad._y = cy;
pages.pgrad._rotation = ad+180;
pages.pgrad._alpha = (r>(rl-100))? 100-(r-(rl-100)): 100;
pages.flip.fmask.page._x = pageN._x;
pages.flip.fmask.page._y = pageN._y;
pages.flip.fmask.page.pf._x = pageN.pf._x;
pages.flip.fmask.page.pf._y = pageN.pf._y;
pages.flip.fmask.page._rotation = pageN._rotation;
}

function scalc(obj,x) { //hardflip calc
if(x<-pw) x=-pw;
if(x>pw) x=pw;
var a = Math.asin( x/pw );
var rot = a/AM/2;
var xs = 100;
var ss = 100*Math.sin( rotz*AM );
x = x/2;
var y = Math.cos(a)*(pw/2)*(ss/100);
placeImg(obj, rot, ss, x, y)
pages.pgrad._visible = pages.flip._visible = true;
pages.pgrad._xscale = x;
pages.pgrad._alpha = pages.flip.p3shadow._alpha = 100;
pages.flip.p3shadow._xscale = -x;
pages.flip.p3shadow._x = 0;
pages.flip.p3shadow._y = 0;
pages.flip.p3shadow._rotation = 0;
pages.pgrad._x = 0;
pages.pgrad._y = 0;
pages.pgrad._rotation = 0;
}

function placeImg(j, rot, ss, x, y) {
var m = Math.tan( rot*AM );
var f = Math.SQRT2/Math.sqrt(m*m+1);
var phxs = 100*m;
var phRot = -rot;;
var xs = 100*f;
var ys = 100*f;
j.ph.pic._rotation = 45;
j.ph.pic._xscale = (phxs<0)? - xs: xs;
j.ph.pic._yscale = ys*(100/ss);
j.ph._rotation = phRot;
j.ph._xscale = phxs;
j._yscale = ss;
j._x = x;
j._y = y;
j._visible = true;
}

function setPages(p1,p2,p3,p4) { //attach the right page "image" at the right place:)
p0 = p1-2; //pages for transparency...
p5 = p4+2;
if(p0<0) p0=0;
if(p5>maxpage) p5=0;

if(p1<0) p1=0; //visible pages
if(p2<0) p2=0;
if(p3<0) p3=0;
if(p4<0) p4=0;
trace("setpages ->"+p1+","+p2+","+p3+","+p4);

pleft = pages.p1.page.pf.ph.attachMovie(pageOrder[p1],"pic",0);
pages.p1.page.pf.ph._y = -ph/2;

if(transparency) {
pleftb = pages.p0.page.pf.ph.attachMovie(pageOrder[p0],"pic",0);
pages.p0.page.pf.ph._y = -ph/2;
} else pages.p0._visible = false;
if(hflip) { //hardflip pages are specials!!!
var tm = pages.flip.hfliph.attachMovie("sph","sp2",0);
sp2 = tm.ph.pic.attachMovie(pageOrder[p2],"pic",0);
sp2._y = -ph/2, sp2._x = -pw/2;
sp2 = eval("pages.flip.hfliph.sp2");
var tm = pages.flip.hfliph.attachMovie("sph","sp3",1);
sp3 = tm.ph.pic.attachMovie(pageOrder[p3],"pic",0);
sp3._y = -ph/2, sp3._x = -pw/2;
sp3 = eval("pages.flip.hfliph.sp3");
} else {
pages.flip.hfliph.sp2.removeMovieClip();
pages.flip.hfliph.sp3.removeMovieClip();
sp2 = pages.flip.p2.page.pf.ph.attachMovie(pageOrder[p2],"pic",0);
pages.flip.p2.page.pf.ph._y = -ph/2;
sp3 = pages.flip.p3.page.pf.ph.attachMovie(pageOrder[p3],"pic",0);
pages.flip.p3.page.pf.ph._y = -ph/2;
}
pright = pages.p4.page.pf.ph.attachMovie(pageOrder[p4],"pic",0);
pages.p4.page.pf.ph._y = -ph/2;
if(transparency) {
prightb = pages.p5.page.pf.ph.attachMovie(pageOrder[p5],"pic",0);
pages.p5.page.pf.ph._y = -ph/2;
} else pages.p5._visible = false;
if(lcover) {
var lpl = transparency? p1-4: p1-2;
var lpr = transparency? p4+4: p4+2;
var limit = transparency? 0: -2;
if(lpl>limit) {
pages.pLL.page.pf.ph.attachMovie(pageOrder[2],"pic",0);
pages.pLL.page.pf.ph._y = -ph/2;
pages.pLL._visible = true;
} else pages.pLL._visible = false;
if(lpr<(maxpage-limit)) {
pages.pLR.page.pf.ph.attachMovie(pageOrder[maxpage-1],"pic",0);
pages.pLR.page.pf.ph._y = -ph/2;
pages.pLR._visible = true;
} else pages.pLR._visible = false;
}
}

function resetPages() {
setPages(page,0,0,page+1);
}
thehappyappy
08-16-2007, 05:55 AM
The final part of the code is:
function autoflip() { //start auto flip!
if(!aflip && !flip && !flipOff && canflip) { //only when all conditions fits our needs...
acnt = 0
var pmh = ph/2;
aamp = Math.random()*pmh-(ph/4);
var x= gflip? (gdir*pw)/2: ((pages._xmouse<0)? -pw/2: pw/2);

var y= pages._ymouse;

if(y>0 && y>pmh) y = pmh;
if(y<0 && y<-pmh) y = - pmh;

oy = sy = y;
ax = (pages._xmouse<0)? -pmh: pmh;
ay = y*Math.random(); //page turnig style randomizing

offs = -pw;
var hit = 0;
if(x<0 && page>0) {
pages.flip.p3._x = 0;
hflip = (hcover && gskip)? (page==maxpage || gtarget==0): checkCover(page,-1);
if(!(preflip && hflip)) {
if(gskip) setPages(gtarget,gtarget+1,page,page+1);
else setPages(page-2,page-1,page,page+1);
}
hit = -1;
}
if(x>0 && page<maxpage) {
pages.flip.p3._x = pw;
hflip = (hcover && gskip)? (page==0 || gtarget==maxpage): checkCover(page,1);
if(!(preflip && hflip)) {
if(gskip) setPages(page,gtarget,page+1,gtarget+1);
else setPages(page,page+2,page+1,page+3);
}
hit = 1;
}
if(hflip && preflip) {
hit = 0;
preflip = false;
return false;
}
if(hit) {
anim._visible = false;
flip = true;
flipOff = false;
ox = sx = hit*pw;
pages.flip.setMask(pages.mask);
aadd = hit*(pw/(gflip? 5:10 )); //autoflip takes 10 frames to be done!!!
aflip = true;
pages.flip.fmask._x = pw;
if(preflip) {
oy = sy = (pages._ymouse<0)? -(ph/2): (ph/2);
}
r0 = Math.sqrt((sy+ph/2)*(sy+ph/2)+pw*pw);
r1 = Math.sqrt((ph/2-sy)*(ph/2-sy)+pw*pw);
pageN = eval("pages.flip.p2.page");
pageO = eval("pages.flip.p3");
oef();
return true;
}
} else return false;
}

function getm() { //get x,y reference points depending of turning style: manual/auto
if(aflip && !preflip) {
x = ax;
y = ay;
} else {
x = pages._xmouse;
y = pages._ymouse;
}
}

function gotoPage(i,skip) { //quickjump to the page number i
i = getPN(i); //i = target page
gskip = (skip==undefined)? false: skip; //skip pages

if(i<0) return false;
var p = int(page/2);
var d = int(i/2);
if(p!=d && canflip && !gflip) { //target!=current page
if(p<d) { //go forward
gdir = 1;
gpage = d-p-1;
} else { //go backward
gdir = -1
gpage = p-d-1;
}
gflip = true;
if(gskip) gtarget = d*2, gpage = 0;
autoflip();
startsnd(0); //sound
} else gskip = false;
}
function getPN(i) { //get the right page number
if(i==0) return 0;
var find = false;
for(j=1;j<=maxpage;j++) {
if(i==pageNumber[j]) {
i=j;
find = true;
break;
}
}
if(find) return i;
else return -1;
}
function removePage(i) {
trace("remove page "+i);
i = (Math.floor((i-1)/2)*2)+1;
removedPages.push(pageNumber[i], pageNumber[i+1]);

for(j=(i+2);j<=(maxpage+1);j++) {
pageOrder[j-2]=pageOrder[j];
pageCanTear[j-2]=pageCanTear[j];
pageNumber[j-2]=pageNumber[j];
}
trace("removed pages "+i+","+(i+1));
trace(removedPages.join(", "));
maxpage -= 2;
}

//-------------------------------------------------------------------------------

snd0 = new Sound(); //adding sound objects
snd1 = new Sound();
snd2 = new Sound();
snd0.attachSound("pf1");
snd1.attachSound("pf2");
snd2.attachSound("pf3");


function startsnd(i) { //Sound starter
if(SoundOn) {
if(i==0) {
snd0.start(0,0);
snd0.onSoundComplete = function () {
startsnd(2);
delete snd0.onSoundComplete;
}
} else {
i--;
this["snd"+i].start(0,0);
}
}
}

//------------------------------------------------------------------------------------------------ PUT YOUR CODE HERE --------------


/* you can use these functions:

gotoPage( destinationPageNo, skip ); //quick jump to the page number: destinationPageNo; values = 0-maxpages; skip: boolean; if true, pages will be skipped to the destination!

canflip //it's a variable. setting its value to false disables flipping

other functions of page turning is automatic;

WARNING!!!
if you want to unload/reload tha pageflip, before unloading call function: removeML(); to remove mouse listener!
*/

function startAutoFlip () {
intervalID = setInterval(nextPage,2000); //2 seconds
}
function stopAutoFlip () {
clearInterval(intervalID);
}
function prevPage() {
gotoPage(page-2);
}
function nextPage() {
gotoPage(page+2);
}

080529Thuday

バラバラ殺人の犯人の気持ちを考えてみる2

前のエントリーバラバラ殺人の犯人の気持ちを考えてみるの続き。

実際に犯人(ほっしー)の気持ちになって色々調べてたら、

本当に犯人っぽいヒトが書き込んでいる投稿までみっけちゃったので、メモ。

・・・とかおもってたら、けっこー普通に既に2chでも見つけてるヒトいるみたいねw

 犯人の書き込みと思われる投稿

ルミノール反応が出ない方法を教えてください!(>_<)

1投稿者:ヾ(゚д゚)ノ゛バカー  投稿日:2008年04月19日(土) 19時23分40秒

いますぐ教えてください!(>_<)

緊急事態なんです!(>_<)

お願いします!(>_<)

【江東】潮見・辰巳・新木場統一スレ其の二十七【臨海】

39 名前: 東京都名無区 投稿日: 2008/04/19(土) 12:44:52 ID:MpNMyKH. [ 118x236x123x163.ap118.gyao.ne.jp ]

自分の住んでいるマンションで事件があった模様。

昨夜から今朝にかけて3回も警察が部屋に来ました

(内1回はトイレ・風呂場の確認あり)。

正直こわいです。

バラバラ殺人の犯人の気持ちを考えてみる

f:id:satoru_net:20080529193110j:image

バラバラ殺人の犯人、どっかのSEだったらしいけど、そんな業種の人ならもちろんインターネットくらいは使ってるよね。

もし僕が殺人を犯してしまったとして、更に死体を解体しなきゃいけないような状況に陥ってしまったとき、

絶対、ネットでヒトを解体をするのに参考になるようなサイトないか探すわー。


とか思って、そんな状況で、自分ならどんなキーワードで探すかを想像してみた。

で、実際さがしたら結構でてきて怖かった。。

<洗濯機で洗う>とか<トイレに流す>とか今回の犯人の供述と一致する投稿もあるし

マジで犯人も同じページ見てそうで怖くなったお!!( ^ω^;; )

死体バラバラ関連サイトいろいろ

レプリカサイコ【死体隠蔽法を考える】より引用

死体解体方法

死体を運んだらまずは血抜きを行うのだが血抜き方法は個人的に

考えた方法ではまず死体を水道や手すりに固定して、死体の膝関節

を切断してその切断面にあらかじめ用意したホースをあてがい、血が

排水溝に流れるようにする。

no titleより引用

2.早速バラしましょう。気をつけて作業すれば意外と簡単です

★まずは頭から切り落とします。頭を残しておくと、ついつい生前の姿を連想してしまい、あまり気持ちのよいものではありません。

★先に首を切り落としたら、次にノコギリで各関節を切り離してから、肉や内臓をバラしていきます。この際、肉がノコギリの刃に巻きつくと非常に切れにくくなるので、前もってメスや包丁などで肉に切れ目を入れておきましょう。

2chの死体処理関連いろいろ

バレない死体処理より引用

101 :本当にあった怖い名無し :04/09/15 22:27:57 ID:ay+Wiytk

死体は風呂場で解体。

血は流しちゃえ。

髪は市販の物で溶かしちゃえ。

内臓の中の糞や内容物は、細かく分けてトイレに流す。

内臓そのものは、切れ目を入れて洗濯機で洗って冷凍。

肉や脂肪分も切り分けて冷凍。

ここまでは休み無し。

死体は風呂場で解体。

血は流しちゃえ。

髪は市販の物で溶かしちゃえ。

内臓の中の糞や内容物は、細かく分けてトイレに流す。

内臓そのものは、切れ目を入れて洗濯機で洗って冷凍。

肉や脂肪分も切り分けて冷凍。

ここまでは休み無し。

トイレ大活躍。

死体の処理方法。より引用

1 名前: ◆FrYglD0YaE 投稿日: 03/01/30 17:21

死体のうまい処理方法ってどんなのがあるんでしょうか?

遺体処理の方法!!より引用

1 名前: 世田谷在住 投稿日: 2000/11/04(土) 19:05

さっき、衝動的に人を殺しました。

今は、浴室に置いてあります。

なにか、良い処理方法知りませんか? まだ、警察に捕まりたくない。

26 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/11/20(月) 07:46

経験者の俺が言うのもなんだが、一番楽なのは、バラバラにした肉片をビニール袋で

包んで、新聞紙で包み、防虫剤を詰め込んで黒いゴミ袋に入れ、燃えるゴミの日に出す。

防虫剤は野良犬やカラス対策ね。あとは、市が後始末してくれます(藁


頭、指は身元判明の手段にもなるから、目の周りの骨、歯、鼻を破壊しておくこと。

指は大根下ろしですり下ろしてもいいし、ミキサーで潰してもいい。その後トイレへ流す。

俺は後始末の確実性を考えて大根下ろしで潰した。女性だったから、まだマシだけど、

野郎の始末はやりたくないなぁ。

風呂場で始末したけど、もうかなり昔の事だし、引っ越ししたし、その家は建て替えの為に解体されたから、

もう立証は不可能。俺がゲロしない限り捕まる事はない。例え、ゲロしたとしても、証拠がないから

起訴すらされんだろう。

完全犯罪死体消去法

18 名前: あなたのうしろに名無しさんが・・・ 投稿日: 2001/06/07(木) 19:45

>>12

実行者は43才公務員。家族は40才の妻と二人の娘(中学2年小4)郊外の一戸建てに住む(ローンのこり15年)。

実直な正確だが妻の不倫相手と話し合いの最中相手の家(ワンルーム、一人暮らし、身寄りはないらしい)で殺害。

ここで人生を棒に振るわけにはいかない、家族も大切。できれば秘密も罪も墓まで持っていきたい、、、、というおっさんの立場で

考えてみてはどうでしょう?



ネットってこんな時にも使えちゃうのか。恐ろしい。オゾマシイ。。

たぶん、犯人もみたはずこのサイト。こわいねえ。


追記:

うお。俺自身のサイトが早速Googleにもう引っかかってる!

今後、関係者が殺人とかされたら、まっさきに疑われるんだろうな。。

080528Wedday

集英社に遊びにいってきたよー

集英社の雑誌<プレイボーイ>でIT関連のネタに関してお話してきたよ!

取材料とかはないのね。だけど、現物出資で雑誌もらえちゃった。ばんざいー。

僕的には集英社のビルに進入できるだけでも、満足なのだ。


f:id:satoru_net:20080527212537j:image

自社ビルカコ(・∀・)イイ!!あ。肝心なビル全体の写真撮るの忘れてた。

f:id:satoru_net:20080527212600j:image

今日は、クレイジーワークス社の村上氏を誘って遊びにいったよ。あれ、ボケてて誰か分らんな。

f:id:satoru_net:20080527231606j:image

週間ジャンプの階。玄関にデスノートNARUTOの身大ポスターとかで賑やか!

f:id:satoru_net:20080527231629j:image

ポスターいろいろ。

f:id:satoru_net:20080527231510j:image

筋肉マソと一緒に記念写真。パシャ

f:id:satoru_net:20080528011520j:image

お土産に見本誌2冊ももらっちゃった!(´∀`*)ウフフ


しかしあらためてみると、いい歳してはしゃぎすぎだなw

080527Tueday

電気が止められてた

久しぶりに東高円寺にある会社(ろけっとすたーと)に出社した。

暑くてクーラーをつけようとおもったら、つかない。

あれー、ブレーカーおちてんのかなーと、おもってカチカチしても、つかない。

どうやら電気を止められてるらしい。w

ネットの会社なのに、ネット以前に電気を止められちゃうなんて!

ネットも自社サーバ無線LANも完備してるオフィスなのに、電気忘れてたとは<灯台下暗し>!


そんで早速電力会社に電話してみたところ、どーやら引越ししてから入会の申し込みし忘れてたらしい。あちゃちゃ。早速申し込みしますー!っていって、30分後くらいに、ヘルメットマンがきてカリカリやってくれて復活したとさ。よかったよかったー。

サマータイム

首相サマータイムに前向き 「やってない日本が異例」

http://www.asahi.com/politics/update/0526/TKY200805260324.html

 福田首相は26日、夏季に時計の針を1時間進めるサマータイム(夏時間)制度の導入について、記者団に「やっていない日本が異例。我が国も制度を入れるべきだとの意見が強くなってきている。特に環境の問題があり、私もサマータイムをやってもいいのではないかと思っている」と述べ、前向きな姿勢を示した。

こんなの日本で導入されたら、サーバの時間がずれたりして、対応とかがめっさ大変そうだ。

サービスによっては単純にサーバ時間をずらすだけで済む問題でもなさそーだしね。

海外ではどーやってんだろう。ちょっと興味あるなあ。

強風vsハゲ頭

http://jp.youtube.com/watch?v=qNGNDhNKXqs

D

頭が気になって、番組の内容にまったく集中できないお。( ^ω^ ;)


地下鉄とかの猛風で髪がなびいて、落ち武者みたいになってる、おじさん、ときどきいるねえ。

直し忘れて蓋部分の髪だけオッパッピーしてるおじさんとかも、たまーにいるおね。

f:id:satoru_net:20080527051728j:image

切っちゃえばいいのにね。バーコード頭よりハゲ頭のほーが、ぜったいマシだとおもうんだけど。

そいえば、うちの親父もプチハゲ頭なんだけど、いまだに<育毛剤>とか塗って努力してて、


いい加減坊主にしちゃえばええやんー、いさぎよくてかっこえーよ。


って言ったことあるんだけど、みっともなくて仕事できなくなる。とか言ってたなあ。

僕のパパンは、チキンハートでござる。


ちなみに僕の家系はお父さんも、故・おじいちゃんも禿げ気味だったので

遺伝の法則にしたがって僕も禿げるはずなんだけど、母方遺伝子が剛毛なせいか、

今現在は全然はげる予兆はないんだけど(僕が坊主にしてるのは美容室に行くのとセットするのが面倒だからw)

まあ、そのうち禿げるんだろうなあ。そんときはハゲグラマーとしてがんばっぞ!

080526Monday

フロッピー

昔は家の中にゴロゴロしてたけど、全然つかわなくなった過去の遺産フロッピー

f:id:satoru_net:20080526133839j:image


鉄の部分が壊れたり、ほこりが入ったりして動かんくなったり、いろんな思い出があるわー。

そんなフロッピーも今ではすっかり見なくなっちゃったねえ。

だって、普通に標準でついてないもんね、いま。CDかDVDのほーが、メディアも安いしね。


とかなんとなく、昔の友人フロッピー君の事をほっこり思い出したの。あいつ元気にしてるかな

ぴたっとまっち:googleアボセンスされた時の代替広告はここにしとけ

ぴたっとまっち】って広告サービスが結構よさげだったのでレポートしるよ。....φ(・ω・` )カキカキ


サイト管理者にとって、[単価とクリック率]のよい広告と巡り合う事は、

サーバ費用などサービスの存続と、モチベーションの維持にかなーり大切な要素だと思う。

そんで、今現在、僕らみたいな一般ピーポーでも気軽に手を出せて、かつ収益性が一番よいのは

僕の知る限りではgoogleアドセンスだとは思う。


ただーし!googleアドセンスは偉大さ故に傲慢なとこがあって、

ほんの些細な事でも規約に違反するような事があるだけで、突然広告が表示されなくなったり、垢停止されたりする。

いちおう、googleから通達は来るんだけど、抗議をしても受け付けてもらえない事もしばしば…。

そもそも掲示板サイトとかアダルティなサイトでは導入すらできない悲しい事もある。。

(アダルティまでいかないでも、非健全系なサービスでも独断と偏見であぼーんされる事もある!気がする。)


そんな中、捜査員はすごいサイトをみっけてしまったのであーるー!

googleほぼ同額のクリック単価で、更にアダルトサイトや掲示板サイトでもOKとか謡ってる

すごい広告サイトが日本にあった。実は前々から知ってはいたんだけど、

こんなにGJな事をしているサービスとは知らなかったの。


そんなわけで主な特徴を自分なりに調べてみたよ。

ADマッチ広告でデザインもgoogleとクリソツ

f:id:satoru_net:20080526082452p:image

色や文字色は自由にカスタマイズできるgoogleとおなじ仕様。大きさや広告の種類も色々選べる。広告一覧はここ

単価はほぼgoogle

まだサンプル数は少ないんだけど、僕の運営してる一部の場所で5日間、掲載してみた結果。

f:id:satoru_net:20080526080547p:image

2008/05/25 314,844 49 0.02% \13.7 \671

2008/05/24 314,184 47 0.01% \12.5 \589

2008/05/23 238,969 40 0.02% \17.0 \680

2008/05/22 254,730 59 0.02% \11.6 \684

2008/05/21 101,934 29 0.03% \11.0 \318

報酬型?とおもったんだけど、クリック単価制だったよー。1クリックいくら。のやつね。

1クリ平均は約10円以上。ときどき1クリック50円とかのもあったりした。

どのくらいの率で高額なのがはいってるかは未調査。

しかも固定な広告じゃなくてコンテンツマッチ広告だから、タグを変える手間とかもないべ。

ただし、クリック率がコンテンツマッチ広告にしては低すぎるのがちょっと、気になるところではある。

もれの張ってるサイトの問題かもしんないから、他の人のレポートとかも読みたいなー。報告待ち

事前審査がない。アダルトサイトでもOK

ぴたっとマッチは掲載サイトの事前審査はいたしません。

禁止事項に該当しないサイトであればいずれのサイトでも広告掲載可能です。

仮に、アダルトやギャンブル関連のサイトであっても禁止事項に該当しないサイトであれば広告掲載可能です。

これは相当嬉しかった!

でも、事前審査はないんだけど、登録してからサイト毎に登録審査事態はちゃんとあるっぽい。

会員登録>サイト毎を登録審査>数時間待機>広告掲載開始!

みたいな流れ。

出稿数は少しだけ不満

アドマッチ広告といいつつも、アンマッチな広告が出ることもしばしば。

クリックレートもgoogleアドセンスに比較すると、及ばず。

この辺が改善されると、もっといいのになー。

猶予期間がある

従来のサイトマッチ™広告では、警告が一切なしで、いきなりアカウント停止されるという、アフィリエイター泣かせが多発・・・

ぴたっとマッチでは、原則として違反があった場合でも、まずはその旨の通達をしたうえで猶予期間をもうけ、それでも改善や回答が無かった場合のみ掲載禁止処分などにいたしますので、突然アカウント削除などはおこないません。

ただし、明らかに不正・違法な場合を除く。

突然あぼーんされる心配もない。普通のことなんだけど、google様に比べたらだいぶ優しいほう!

楽天が運営

支払い期間になっても支払ってくれなかったり、

突然、会社がつぶれたりする事も多い業界だけど、楽天なら、だいぶ安心感もあるおね。

実はちょっと前まで、別の会社が運営してたっぽいけど、買収されて楽天配下にはいったっぽい。




うおー!すげー!やるー!と、思った人は↓からはどーぞ。

追記

追記(5/29):

著作権違反&アダルトがある某動画サイトが承認申請してみたところ、だめだったらしいです。

さすがに、ダメなケースも中にはあるみたいです。。w

[]Yahoo!の今週のオススメ

ちょっと前に出したサービスなんだけど

いまごろYahoo!の【今週のオススメ】に掲載されることになった。

うれしいな( ^ω^ )ニコニコ

no title

f:id:satoru_net:20080526065929p:image

しかも、嬉しい事に一気に2つも。Yahoo!さま、ありがとう!

080524Satday

[][]嘘だった。

自称八百屋おぢさんに騙されてゲンナリだ(´・ω・`)

f:id:satoru_net:20080524065806j:image

まあ、騙されたっていうほどの、大げさな話でもないんだけど。


前に朝っぱらの新宿で出会った、愉快おじさん。

スペイン人と結婚してどーのこーの自称八百屋のおじさんね。

茨城の野菜屋さんとのぷち出会い - satoru.netの自由帳


電話番号をおしえちゃったばっかしに、連日のように電話がかかってくるから

ちょっと気持ち悪くなって電話にでなかったんだけど、今日、たまたま時間も空いてたし、

夜ご飯を一緒に食べる人も居なかったから、怖いもの見たさで電話してみた。


その頃、僕は新宿に居たんだけど、たまたまおじさんは中野坂上にいたらしくて、

とりあえず、今日は65歳のおじさんにこの身をささげる事に決意した。


中野坂上の待ち合わせポイント到着。<右に曲がってまっすぐ歩け>との指示が電話であり、とりあえず歩く。

おっさん出現。おやぢTしゃつに、おやぢ短パン、ぞうりの伝統的なオヤヂスタイル。

何で、俺、こんなおじさんと、待ち合わせしてるの(涙目)。少しだけ援交少女の気分だぬ。(;´Д`)ドキドキ


この愉快おじさん、とにかく明るいの。65歳とは思えないくらいおしゃべりはがすごい堪能だし、

いろんなことを教えてくれるし、例え話がいつも野菜の流通でおもしろいし。

僕のパピーもこれくらいおしゃべりしてくれたら、お互いのこと、もっと理解しあえるのにナと思ってた。


そんなおじさんの事は、愛すべき癒し系キャラ、とか勝手に位置づけてたけど、

・・・おじさんの一つの嘘から全て疑心に変わってしまってしまった。。


俺:「お子さんは元気ですか?まだ、小さいのに出張で離れてしまって寂しいでしょうね。」

八:「そおだねえ。毎日、寂しくて早く合いたいよ」

俺:「この前いった約束覚えてます?いつか会わせてくれるって!あれ楽しみにしてます。」

八:「・・・じつはね、さとちゃん。実は、、あれだ。遠いところ、そうだスペインに帰ってしまって会えないんだ。」

俺:「ん?・・」

八:「妻がね、子供を連れて帰っちゃったんだ。」

俺:「それ、嘘でしょ。本当のこと言ったらどーなんですか?もう分ってますよ、嘘って。」

八:「実は、、、離婚をしていて・・・」

俺:「それも嘘でしょ。というか、そもそも子供が居るってのすら嘘でしょ。」

八:「するどいね。。実はごめんなさい、すべて嘘。おじさんはね一人身で今週結婚します!」

俺:「はいはい、もーいいですよ、そういうの。それに茨城ってのも嘘でしょ。」

八:「ごめんなさい、、、新宿在住です。」

( ̄− ̄) シーン…


追求すると、子供の写真は近所の他人の子、仕事も八百屋ではなくホテル清掃の短期バイト。

ほとんど、嘘ばっかし。コレハヒドイ。


僕が知りたかったのは、事の真相なんかは、もはやどーでもよかったんだけど、

なんで、このおじさんが他人である僕にそんな嘘をついてまで近づいてきたかだ。

なんかの悪徳商売か、宗教勧誘とかそういう雰囲気でもないし、純粋に聞いてみたかった。


俺:「どうして、嘘なんてついたんですか?」

八:「実はね野球チームを作りたかった。いまね3にんのめんばー(ry

俺:「それも嘘でしょ。そういうのは、もうやめましょう。」

八:「・・・。さとるくんと友達になりたかった!それだけ!」

俺:「なんで僕と?」

八:「最初に話した時に親切に話かけてくれたし、優しそうな人だなーっておもったから」


とっても素直でかわいい言い訳だけど、65歳のおじさんにそんな事を言われてもなあ・・・・!

とりあえず誰でもよかったから話し相手がほしかったって事らしい。

もーいいやー。帰るー。おじさん、短い間だったけどありがとう。


結論

ぼくは<人と人との出会いは必然>という考え方を信じていて、このおじさんとの出会いも、なんかの縁だとは思う。少なくとも<初対面で平気で嘘をつくような人は、確実に信用されなくなる>って気持ちを植えつけてくれた。

ありがとね、おじさん!

教訓:一期一会

一生に一度限りの機会。その機会を一生に一度のものと心得て、互いに誠意を尽くすべし

D

080523Friday

[]座席生成ツール

なんとなく思いついて、衝動的に作ってみた。


座席に座ってる人の図を作れるツール。?なんじゃそりゃ?って感じだろうから、

まあ、とりあえずやってみたらわかると思うからやってみてー。

http://myspace.com.satoru.net/app/seat/seat.html


特に何か用途があるわけでも、便利なわけでもなんでもないんだけど

こういう<無駄>で<無意味>なの作るのって、なんでこんなに楽しいいんだろうか。( ^ω^ )

f:id:satoru_net:20080523065247p:image

追記 9:00

  • キャラを動くようにした
  • たて幅、よこ幅を変更できるようにした

追記 11:00

  • 女の子+カバンを追加。(クォさんアドバイスありがとう)他にもなんか、これ必須だろ!的なのが会ったら指摘してね。>yano@satoru.net

デートしてる風ができるようになった

f:id:satoru_net:20080523112346p:image

ハネムーン

f:id:satoru_net:20080523113025p:image

みんながくれた貴重なご意見

  • オセロにする
  • とりあえず保存できるようにする
  • 寝ている人を囲むとおきている人が寝ちゃうとかルールを設定できるようなミニゲーム生成

インスパイア

教室のどこに座るかであなたがどのような人なのかがわかる図 - GIGAZINE

[]羽が生えた猫

いままでよく画像とかでは見てたけど、動画って見たことなかったからメモ

動画

D

らしいけど、んー、これただの毛のような

写真

http://www.ananova.com/images/web/989102.jpg

http://image.blog.livedoor.jp/safe_food_of_asia/imgs/3/d/3d2cb300.jpg

これも有名なやつだけど、これも毛がもじゃもじゃの猫で怪しいねえ

関連リンク

080522Thuday

[]早起き

夜中中心の生活が、まわりにまわると、普通に早起きさんの生活になる時期がくる。

今、それだ。いやー、朝は清々しくて気持ちいいねえ。

散歩とか、したくなっちゃうわー。

080521Wedday

[]でんわ

f:id:satoru_net:20080520142304j:image

僕は携帯の電話番号をふつーにサイト上で公開してる。

たとえば、satoru.netのトップとかで。>http://satoru.net


フツーに生活していたら、まず話す事もなかったような日本中の人達と会話できるなんて、

とっても素敵な事だとおもって、公開してみてる。


そんなわけで、ほぼ毎日しらない人から電話がかかってくる。

事務的な会話だけで終わる事も多いし、ちょっとした雑談をする事もある。


かかってくる主な内容は、

運営しているサービスに関しての問い合わせとか、掲示板の削除依頼の電話とか、

一緒になんかやりたいんですけど!みたいな雑談とか、みんな色々。


昨日は泣いてる女の子から電話がかかってきた。

とりあえず、落ち着かせて事情を聞いてみたところ、

なんでも、僕の運営してるレンタル掲示板上で友達から嫌がらせを受けてとても困っている、との事らしい。

警察にも相談したけどほとんど相手にしてくれなくて、

「管理者に直接相談してみ」みたいに誘導されたらしい。なんてこった。

とりあえず、いつも以上に丁寧に対応しといた。w


警察っていざって時に相談をしてもよっぽど分りやすい事件じゃない限り、

ネット関連の事だとあまり期待したほどの対応をしてくれない事が多い気がする。

(もちろん理解しようと努力してくれる人も中にはいるんだけど)


そりゃ、まー、しゃーない部分も多少はあるとはおもうけど、

ネットの世界には困ったときにいつでも味方になってくれるような

正義の味方>って居ないなあって思う。

よっぽど金があるセレブな人達は、弁護士とか探偵雇っていろいろできるんだろーけど、

一般ピーポーは最終的には自己防衛するしかないおね。

080520Tueday

[]美女アルファブロガーに取り上げられました

f:id:satoru_net:20080520141630j:image

アルファブロガーけんすう氏に引き続き、

アイドルアルファブロガーとして著名なid:asami81氏のブログで取り上げていただきました。

トラックバックごときで、わざわざ大げさな報告すんなよwwww

って、外野の雑音はさておき、ブログ不慣れな僕にとっては、

こんな些細な事ですら、おったまげ!!なんです。ありがたやありがたやー

http://d.hatena.ne.jp/asami81/20080519/P2

080519Monday

[]茨城の野菜屋さんとのぷち出会い

f:id:satoru_net:20080519071446j:image

5:00頃、早朝の新宿駅大江戸線

徹夜明けでふらふらと始発の電車をまってたら、

「・・・ひー 暑いねえ。。」

って、えらいなれなれしく話してくるガッツ石松風の白髪まじりのおっさんに

「あついっすねえ。あっちに水ありますお。」


と、何気なく返事をしてみたところ、えらい親しく近づいてきて、

「あん、さっきのんできたんだけどね、あつくてたまらんわ、東京はー」

「あ、東京の方じゃないんですか?どちらから?」

「ん、おらはねー、茨城

「へー出張ですか。こんな朝早くから大変ですね」

「うん、オチこぼれでね、全国に飛ばされるのよ」

「あはは。なんのお仕事をされてるんですか」

八百屋。野菜をね、東京に持ってきて、売るのよ。野菜を全国に卸すお仕事」

接点ねーw

とか何とか話してるうちに、電車が到着。

電車に座るとすわるとおっさんもなぜか俺の隣に。w

おいおい、寝たいのになあ、俺は。

「あのね、いいもんみせてあげる」

慣れない手つきで携帯電話をさわってなにやら写真をみせてくれるようだ。

「これこれ、どお、かわいいでしょ」

幼女じゃまいか。てらかわゆす。(´∀`*)ポッ

「さー、どうしてかわいいんでしょーか?」

質問された。

「んー。笑顔がプリティだから」

とか、適当に答えた。

「ぶー。ハーフなのよ、うちの子。スペインとの。いま5歳。」

へー!うらやましかーこのえろじじいめー!ていうか孫じゃなくて、子供かよ。

「学生時代にね。なにげなく告白したら本気になって!そのまま結婚しちゃった!うへへ」

写真をじーっとみて、パパ、娘にでれでれモード。

「リーナっていうんだけどね。ほんっとかわいいんだ」

おじさん、もうわが娘に夢中。

「それじゃーこんど、会わせてあげましょう。これがね、おらの携帯番号」

と、携帯を登録して今度連絡しよう。って意味らしい。

「あー、携帯の電源いまきれてるんで、パソコンにうちこみますね。ぽちぽち。」

「すごいねおにいちゃん。はやい!おらの携帯にも、お兄ちゃんの携帯電話いれて」

ほーい。ぽちぽち。(まー、悪用されそーもないしーいっかー)

あ、そろそろ、中井っすよー。おりなくちゃおじさん。

「ほいじゃあ、こんど連絡すっからねー。」

「うん、ばいばいー♪」

そんなこんなの、プチ出会いでしたとさ。

新手の詐欺か。それとも本当にイイおじさんだったのか。

連絡くるかなぁ。w

事務員に一時的に転職(?)してみた

たまたまなんだけどね、給料とか要らないので

働かせてぴょん♪+(0゚・∀・) + ワクテカ +

ってお願いしたら、願ったり叶ったり、ちょうど人員が足りなかったそうで、

事務員デビューすることになった。


Excelとかをひたすら入力したり、

チェックしたりする仕事なのだ。あと、ファイリングとか、印刷とかやるのだ。


基本ね、すべて紙の会社なので、めっさフォルダを駆使すんの。

緑、赤、オレンジで用途がちがうのとか始めて知ったね。


すべてが、紙と人力のコラボレーション【ざ・アナログワールド】。

デジタル世界なら配列関数作ってポンなのに!!!

とかおもいながら、非効率的で改善できそうな仕事だらけで感動的。


すごいね、アナログの世界は。感動の連続ですたい。

そんなアナログワールドを探索しつつ、

社長のスケジュール帳CGIを作ったり、IT導入の話をしたり

ルーター設置したり、本業スキルも活かしつつやってるおん。

某組合の広報とかもやっているらしくて、素敵サービスの提案とかもしてみた。


--------------

完全無料のネットのことなら何でもできる&作れるITフリー社員、御社にいかがですか♪

ネットのご相談から、人生のご相談までどんなことでもお付き合いいたします。

どんな用途にでも百変化でご対応いたします。

日本中・世界中、どこでも向かいます。特に田舎とか大歓迎!

無償で、1週間程度ボランティア出社いたします。

給与や報酬はいりません。その代わりに「やりがい」や「ぼくのしらない事」を教えてください。

ご興味のある方はお気軽にお問い合わせください。>yano@satoru.net

--------------


こんなかんじで、色んな知らない業種や会社に潜入できたら楽しいな。

寅さんみたいに、ITをきっかけに日本全国をまわってみたいんだな。

IT寅さんとか、いいよね。

080516Friday

[]なかまが増えすぎた!

どうせならとおもって、一気に10人仲間にしてみた。ww

長い旅になるもんな。仲間は多い方がイイにきまってる!

  • マップ移動したら仲間が消えるバグ修正
  • 仲間の数を可変できるようになった
  • 移動後の画面の切り替え時にフィードアウト、フィードインするように。
  • 障害物に当たったとき、仲間は移動しない

http://satoru.net/test/rpg/080516_02/main.pl

f:id:satoru_net:20080516050611p:image

仲間がついてくるロジック

仲間を追加
var friends = new Array();
for(var i=0;i<MEMBER_MAX;i++){
 friends.push(new Chara(hoge));
}
ついてくる

移動処理の後のイベント関数に、移動方向を一個ずつずらす関数をいれてみたよ。

つまりこんなかんじのイメージ。

 ◎→

  ●

   ●

    ●

 ◎↑

  ●→

   ●

    ●

 ◎←

  ●↑

   ●→

    ●

関数でかくと

moveHistory[0] = keyPressed;

for(var i=MEMBER_MAX;i>0;i--){
 if(moveHistory[i]) friends[i].move(moveHistory[i]);
 moveHistory[i+1] = moveHistory[i];
 }
}

[]おうさまが仲間に加わった!

ひさしぶりの更新ー。なかまを増やせるようにしてみた。


  • 王様が仲間に加わった!(まだマップ移動すると居なくなったり、へんなとこウロウロするけどねww)
  • デバッグの数字とか出るようにした
  • マップチップが未定義の場合、進めないようにした。(黒いトコを無限にいけるバグ解消)

http://satoru.net/test/rpg/080516_01/main.swf

f:id:satoru_net:20080516041225p:image

080515Thuday

おお・・・さぼってた!

しばらく、更新さぼってたw

というか、いつのまにか、ここの存在を忘れていた、

080510Satday

[]3

更にアレンジをくわえてみた。

なんか、気づいたらミステリーサークルみたいになったなあ。こりゃあUFOと通信できそう。

http://myspace.com.satoru.net/app/sync/080510_01/

f:id:satoru_net:20080510140500p:image

フィーリングだけでやるコーディングは心地いい。

思考がビジュアライズされると、こーなるのね。

[]

別バージョンつくってみた。

手書き風のラインと星が交差する、音と光のコラボレーションだよー。

http://myspace.com.satoru.net/app/sync/080509_02/

f:id:satoru_net:20080510121546p:image

[][]ドラクエ風写真メーカー

ぼくが作りそうなサービスを人が作ってたw


ドラクエふう しゃしんメーカー

写真をはっつけて、それにドラクエ風メッセージを入れれるサービス。

HugeDomains.com - OKinoDoKu.com is for sale (O Kino Do Ku)と似てるけど、また違う感じ。

いーねー。楽しい。

f:id:satoru_net:20080510115010p:image

[][]ほしのあきくろーん

芸能 - 毎日新聞

「好きなように遊んで!」ッて、遊ぶっつったら、ふつうの男子なら、

あんな事したりこんな事しちゃったり、イケないことしちゃうにきまってるじゃんな


学研、赤字だからってこんなの出しちゃって けしからん。

f:id:satoru_net:20080510115115p:image

[][]はーーん!

AS3でwavファイルをEmbedしたりエフェクトかけたり(要POPFORGE) (memo.kappa-lab.com)

 [Embed(source="wav/siren_short.wav", mimeType="application/octet-stream")]
    public static const Song:Class;

の記述の仕方ってそういえば使った事なかった!やってみよふ。

[]大学で使う資料を勝手に見て、お勉強しる

ふむふむ、やくだつのう

080509Friday

[]おお、ちょうどいいじゃんww

ゲーム制作に使えそうなフリーフォント集 - ネットサービス研究室

いやはや、これはありがたい、早速使おうw

[][]指定座標を中心にMovieClipインスタンスを回転する関数

import flash.display.DisplayObject;
import flash.geom.Matrix;
import fl.motion.MatrixTransformer;

// xRotateAt(): 指定座標を中心にMovieClipインスタンスを回転する関数
// 戻り値: なし
// 引数: ターゲットインスタンス, x座標値, y座標値, 回転角
function xRotateAt(target:DisplayObject, nX:Number, nY:Number, nDegree:Number):void {
  var myMatrix:Matrix = target.transform.matrix;
  MatrixTransformer.rotateAroundInternalPoint(myMatrix, nX, nY, nDegree);
  target.transform.matrix = myMatrix;
}

星をぐるぐるまわすのに使った

[]音楽にシンクロするFlash。ビデオドラッグ効果もあるお( ^ω^ )ニコニコ

【注意】音量最大で、ブっ飛んでネ♪

http://myspace.com.satoru.net/app/sync/

f:id:satoru_net:20080509200656p:image

f:id:satoru_net:20080509200956p:image

winampとかでよくあるアレなんだけど、

RPG作りにも飽きてきたので、余興でこんなのつくってみた。

星は、前にどこかで拾った関数を利用。

function drawStar(gr:Graphics, p:Number, er:Number, ir:Number, x:Number, y:Number,ps,color) {
	 if (ps == undefined) {
	  if (p % 2) {
	   ps = -Math.PI / 2;
	  } else if ((p - 6) % 4 == 0) {
	   ps = 0;
	  } else {
	   ps = Math.PI / p;
	  }
	 }
	 var i:Number = 2 * Math.PI / p;
	 var j:Number = i / 2;
	 var ts:Number;
	 gr.moveTo(x,y)
 	 
	 for (var t:Number = 0; t < 2 * Math.PI; t += i) {
	  ts = t - ps;
	    if(t){
			gr.lineTo(x + Math.cos(ts) * er, y + Math.sin(ts) * er);			
		} else {
			gr.moveTo(x + Math.cos(ts) * er, y + Math.sin(ts) * er);			
		}
	  gr.lineTo(x + Math.cos(ts + j) * ir, y + Math.sin(ts + j) * ir);
	 }
	 gr.lineTo(x + Math.cos(ps) * er, y + Math.sin(-ps) * er);
	 
	 gr.endFill();
}

なんか、これ一見、すごそーにみえるんだけど、実際つくってみたら超簡単だった。よっぽどRPGの方がややこしいわ。

それ以外の部分は、AS3の SoundMixer.computeSpectrum(bytes, false, 0); 付近で、音をバイナリで取り出せるから

後はその値に基づいて平均値とったりして、ブイブイしてるだけだよー。

[]賞味期限切れの納豆アンモニアの臭いがするお

なんか、最近、冷蔵庫付近が、足の裏のにおいするなあと思って冷蔵庫みてみたら、

4日前に賞味期限が切れた納豆発見。

開けてみたところ、なんか白いツブツブ上のカビっぽいのがあったけど、

納豆ってもともと腐ってるもんだし、おなかも空いてたし、卵に混ぜて納豆卵ご飯にして食べたんだけど、

「てらくさす。」


なんていうか、まさに鼻がまがるほど臭くって、ずばりこれはアンモニアの にほい。

でも、卵に混ぜちゃったしご飯にかけちゃったし、納豆だけカーッ(゚Д゚≡゚д゚)、ペッペするわけにもいかず、

もったいないから全部食べたんだけどね。


部屋中が、アンモニア臭に満ちて死にそうだ。おえー


追記:

ページが見つかりませんでした。

常温で放置してしまった納豆について

時間と気温にもよりますが、納豆の再発酵がおきるとアンモニア臭が発生します。よく臭いを確認してアンモニア臭がしなければ再発酵していない可能性が高いのでお召し上がり頂けます。アンモニア臭が発生した場合、この臭いは体に害のあるものではありませんが、美味しくお召し上がり頂けない場合が多いので冷蔵品をご賞味頂くことをおすすめ致します

これこれ、まさにこれ。ド━(゚Д゚)━ ン !!!

うおー、再発酵wwwwwwwwwww

関連リンク:

納豆学会(Nattou Gakkai)

[]『ボンバーマンオンライン Japan』クローズドβテスト当選のお知らせ

なんか当選したらしい。やったーw

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

■『ボンバーマンオンライン Japan』クローズドβテスト当選のお知らせ

株式会社ハドソン

ショックウェーブ エンターテインメント株式会社 2008年 5 月 9 日

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

こんにちは、『ボンバーマンオンライン Japan』運営スタッフです。

このたびは、『ボンバーマンオンライン Japan』クローズドβテストサービス

への参加お申し込み、誠にありがとうございました。

あなたは、厳正なる抽選の結果、クローズドβテストサービスのテスターに

当選されましたことを、お知らせいたします。

下記実施概要をご確認のうえ、クローズドβテストサービスへのご参加を、

よろしくお願いいたします。

現在、クローズドβテストの実施に向け、準備を進めております。

今しばらくお待ちください。

[][]いくつあるかわからない複数の数の最大値・最小値をMath.max()/Math.min()で求める方法

Math.max(1,2,3)

は、当然、3。

var hoge = [1,2,3]
Math.max(hoge)

は、悲しいことにNaN。つまりMath.maxに単純に配列を渡すだけじゃ、期待した動作をしてくれないって事。

var hoge = [1,2,3]
Math.max(hoge[0],hoge[1],hoge[2])

にせんといかんらしい。アホか。

と、思って調べてたら

いくつあるかわからない複数の数の最大値・最小値をMath.max()/Math.min()で求める方法 - ConquestArrow.addEventListener(); - actionscriptグループ

にて言及してた

var hoge = [1,2,3]
Math.max.apply(null, a)

ってやればいいらしい。

最初からこういう仕様になってればいいのに。せめて、ヘルプにかいとてくれればいいのにー。o(`ω´*)oプンスカプンスカ!!


作者さんには感謝。

080508Thuday

[]タイマツモード

タイマツモードを実装した。洞窟にはいると真ん丸になるやつねー。

http://satoru.net/test/rpg/080508_03/main.swf


・・・さとるはちからつきた。しばらく、RPG開発はちょっと休む。飽きたw

f:id:satoru_net:20080509195451p:image

flashRPGいろいろ

なんか作るの飽きたので、人の作品を巡回。

flash作品

http://www.ecovillage.jp/game/rpg/index.html

RPGツクールっぽいけど、本格派。

http://www.funyamora.com/pc/game/bs/

これわ、なかなか正統派なかんじがしていいね!

http://www.dango-itimi.com/flash/html/RPG.html

flash4の作品。マザーっぽいね。

http://www2.ocn.ne.jp/~alpha/games/mm.html

いいかんじ

http://potion.cocolog-nifty.com/misoji/2006/10/rpg7_92b7.html

FF素敵

http://sapporo.cool.ne.jp/f1ash/flash/easyrpg.html

ちっちぇーww

http://cross-breed.com/archives/200409041803.php

中国産。歩く音の選曲は中国クオリティ

http://www.simplerpg.com/?fdo/index.swf

(´ε`;)ウーン…。登録が面倒な割りに、正直いまいちだった!!

http://www.shiftup.net/flash/arpg/

声が(ry

その他

http://www.din.or.jp/~null/game/rpg/game.htm

JAVA。3DRPG。なんでわざわざポリゴンなんだ。w


http://www5e.biglobe.ne.jp/~foxford/DM/DMframe.html

JAVA。なんか殺伐&うるさいw

[]ちと飽きた

ので、しばらくお休み

めも

shopman = new Man(

onCancel: function(){

msg("お気に召しませんでしたか。");}

onShortage: function(){

msg("お金が足りないみたいですね。");}

onEmpty: function(){

msg("すみません。今日はもう店じまいなんですよ。");}

onBought = function(){

msg("ありがとうございます。");}

onHello = function(){

msg("こんにちは、ブランドンの武器屋へようこそ。");}

onBye = function(){

msg("またいらして下さいね。");}

onFilled = function(){

msg("持ちきれないみたいですね。");}

});

[]敵があらわれた

http://satoru.net/test/rpg/080508_02/main.swf

戦闘シーンを追加した。

といっても、出現するだけだけどw

いまのところ、外でウロウロしてると、

2匹のモンスターがランダムにでます。

f:id:satoru_net:20080509195507p:image


追記(13:30):

戦闘画面の出方をアニメーション上にした

  var myTransitionManager:TransitionManager = new TransitionManager(window);
  myTransitionManager.startTransition({type:Blinds, direction:Transition.IN, duration:.5, easing:None.easeNone, numStrips:10});

f:id:satoru_net:20080509195809p:image

ビロビロでるあれね。AS3に丁度、ビンゴなメソッドがるんだもんね。ナイスまくろめでぃあ

[]会話部分のアレ

会話をしてスクロールの部分で「▼」まーくみたいのがでてきて、

エンターとかをおすと、上にスクロールして次のメッセージがでてくるみたいな、

メッセージボックスのページングのやり方を考える。

f:id:satoru_net:20080508110055p:image

やりかた

textFieldのscrollを使って本当はつくりたかったんだけど、

なんかようわからんので断念。一回一回、削除して、

次のメッセージを表示する。

ぴろぴろ部分はTimerで。

プレビュー

http://satoru.net/test/rpg/080508_01/test.pl

メッセージの変更もできるよー

http://satoru.net/test/rpg/080508_01/test.pl?q=RPG%E3%82%92%E3%81%A4%E3%81%8F%E3%82%8D%E3%81%86

ソース

http://satoru.net/test/rpg/080508_01/main.as

http://satoru.net/test/rpg/080508_01/test.fla

080507Wedday

[]会話ができるようになった

http://satoru.net/test/rpg/080507_03/main.swf

人々と会話できるようになったよ。

SPACEキーで会話。

f:id:satoru_net:20080509200110p:image



・・・いやーついに・・・だ。

会話ができるゾーンは今までの衝動的にRPG作る暦ではじめてじゃないか。。(o(´∀`)o)ワクワク

この調子だと、武器屋はもーすぐできちゃいそだな。


追記(22:00):

テーブル越に話せるようになった。これで武器屋のおっさんと会話できる!!!!!!!!!!!!!

URYYYAAA

f:id:satoru_net:20080509200155p:image


追記(22:58):

バリアと毒に触れたときに、画面がクラッシュ&しゃきしゃき音を鳴らす地形イベントを追加した。

以前つくってたRPGで使った関数が役立った〜。

f:id:satoru_net:20080509200237p:image


以前つくってたRPG

no title

	// 地形イベント
	switch(mapNo){
		case(Chipset.BARRIER):
			new barrierSound().play();
			stage.transform.colorTransform = new ColorTransform(.3,.3,.3);
			setTimeout(function(){stage.transform.colorTransform = new ColorTransform()} , 50);
		break;
		case(Chipset.POISON):
			new barrierSound().play();
			stage.transform.colorTransform = new ColorTransform(1,.5);
			setTimeout(function(){stage.transform.colorTransform = new ColorTransform()} , 50);
		break;
	}

今日の更新

今日の更新はここまで〜

と、おもったら、改良してしまった!

会話を一回に表示させるんじゃなくて、ぴろぴろ表示を実装した!

[]かなりパワーアップ

  • 移動イベント完成→マップ間を移動できるようになった
  • 音楽をつけた
  • スクロール処理を見直した
  • 背景マップの処理を勇者の範囲のみ描写するように

http://satoru.net/test/rpg/080507_02/main.pl

もー、割と普通なRPGになってきたの( ^ω^ )ニコニコ


ソース

配るのが面倒になってきたから配布中止。

ほしかったらあげるからメールくれぽ

[]スクロール+BGM+その他いろいろ

あー、なんかだいぶ集中して作りこんだー。

とりあえず、

  • スクロールがだいぶできた
  • BGMつけた

080506Tueday

[]オリコンランキング

MySpaceのプロフとホームでオリコンランキングを張れる

no title

公開しましたー。

[]勇者がうまれた

やっとこさ、主人公が登場!

まだ動きが変だけど、そこは今後調整していくお。

十字キーでうごくよー

http://satoru.net/test/rpg/080506_04/main.pl?map=town

http://satoru.net/test/rpg/080506_04/main.pl?map=castle

f:id:satoru_net:20080509200337p:image

[]障害物&他キャラを認識するよーに

やたー。だいぶゲームっぽくなってきた!

すりぬけまくり解消。障害物とか、他人を認識できるよーになったよー。

http://satoru.net/test/rpg/080506_03/main.swf


f:id:satoru_net:20080509200528p:image

ウロウロ(いつもより倍速にしてます)


ソース

chara.asをupdate

    public function isHit(x:int, y:int) {
        if (mapData[y][x] == Chipset.WALL || 
            mapData[y][x] == Chipset.THRONE ||
            mapData[y][x] == Chipset.WATER || 
            mapData[y][x] == Chipset.MOUNTAIN ||
            mapData[y][x] == Chipset.WEAPON || 
            mapData[y][x] == Chipset.ITEM ||
            mapData[y][x] == Chipset.INN) {
            return false;
        }
        

        // 他のキャラクターがいるか
        var charas = getEvents();
        for (var i = 0; i < charas.length; i++) {
            var chara = charas[i];
            if (chara.getX() == x && chara.getY() == y) {
                return false;
            }
        }
        return true;
 }

[]クラスに分ける作業

見た目的には、な〜んにもかわってないんだけど、

rootに展開してたMap関連の処理やらなんやら細かいのをクラスに別ける作業をやった。

dispatchEvent、意外としらなくて感動したので、早速使った!

これはマジで便利だわー。今まで常にcallbackの関数参照を渡してたりしてた!恥ずかしい!

var map = new Map("castle",stage);

map.addEventListener("mapComplete",mapLoaded);

ってかんじで、呼び出せるようになってスッキリした〜。

ついでに、main部もmain.asって感じで別けた。

見る

http://satoru.net/test/rpg/080506_02/main.swf

ソース

http://satoru.net/test/rpg/080506_02/main.fla

http://satoru.net/test/rpg/080506_02/main.as

http://satoru.net/test/rpg/080506_02/Events.as

http://satoru.net/test/rpg/080506_02/Direction.as

http://satoru.net/test/rpg/080506_02/Chipset.as

http://satoru.net/test/rpg/080506_02/Chara.as

[]dispatchEventって便利やん!!

var n = 0;
setInterval(timer,1000);
addEventListener("hogeEvent",function(){ trace("kita-!") });

function timer(){
	n++;
	if(n%2){
		trace("hoge" + n);
		dispatchEvent(new Event("hogeEvent"));
	}
}

いやあ、いままで使った事なかった。w

これはRPGのイベントに使えまくるわー、ヽ(´ー`)ノバンザーイ。

var map = new Map("castle",stage);
map.addEventListener("mapComplete",function(){ trace("mapの処理") });

[]イベントマップ(階段、扉、キャラの配置)

# アレフガルド

MOVE,-1,-1,-1,2,10,10

CHARA,18,16,7,0,0,ここは やどやです。

CHARA,11,19,7,2,0,ここは ぶきやです。

CHARA,6,12,5,0,0,ここは どうぐやです。\nやくそうは どうですか?

CHARA,1,14,4,3,0,いだいな ぎんゆうしじん\nガライのまちへ ようこそ!

DOOR,5,7

こんな感じのテキストデータを読み込んで、

キャラ、階段、扉とかとかを設置するイベント処理を追加した。

最初のString型の文字で、キャラ系の処理か、マップ系の処理かを分けて、

MOVEだったら、移動処理イベント+マップチップを追加。

CHARAだったら、マップチップ+話しかけたらこうしゃべろ!な処理を追加!みたいなかんじ。

一昨日、new Chara()を作っておいたからここは呼び出すだけだから、楽珍アルね。

function makeChara(line){
		var ar = line.split(",");
		var obj = {
			type : ar[0],
			x : ar[1],
			y : ar[2],
			chara :ar[3],
			direction : ar[4],
			moveType : ar[5],
			string : ar[6],
			map : stage
		};
	var chara = new Chara(obj);
	charas.push(chara);
}

プレビュー

http://satoru.net/test/rpg/080506_01/main.swf?map=town

f:id:satoru_net:20080506021808j:image

おー、武器屋におっさんがたってる!

http://satoru.net/test/rpg/080506_01/main.swf?map=castle

f:id:satoru_net:20080506021807j:image

階段も出現


まだみんな、壁をつくぬけるけど、

だいぶ、っぽくなってきたなあ。

ソース

http://satoru.net/test/rpg/080506_01/main.fla

[]マップ読み出しの改良とキャラ増加

http://satoru.net/test/rpg/080505_01/main.pl?map=castle

f:id:satoru_net:20080506010745j:image

ウロウロするだけflash

今日はあんま進まなかったけど、

とりあえず1日1更新を目標って事にしておこう。

今日の進展は、画像を呼び出すロジックと、描画部分を見直したお。


あと、画像を外部に設置して読み出すのだと、なぜかFFとIEで挙動がちがくて

原因を追うのは面倒くさいので、flash内のライブラリに設置することでとりあえず解決。


画像が逆だったのも修正。単純な問題で、

var mapNo = map[X][Y];

var mapNo = map[Y][X];

だけの問題だた。

080504Sunday

[]マップ

キャラ部分はここから先は、当たり判定とかマップチップがないとどうしようもないので、

マップ部分の開発に挑戦してみる。

さくらのブログ

ここの部分を実装してみよふ。

    private void load(String filename) {
        try {
            InputStream in = getClass().getResourceAsStream(filename);
            row = in.read();
            col = in.read();
            // マップサイズを設定
            width = col * CS;
            height = row * CS;
            // マップを作成
            map = new int[row][col];
            for (int i = 0; i < row; i++) {
                for (int j = 0; j < col; j++) {
                    map[i][j] = in.read();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

ActionScriptではcallbackの関数を付与させてこーかいてみたよ

load("map/castle.map",function(){trace("fin")});

function load(filename:String,callback:Function){
	var ldr = new URLLoader();
	ldr.dataFormat =URLLoaderDataFormat.BINARY;
	ldr.load(new URLRequest(filename));
	ldr.addEventListener(Event.COMPLETE,function(){
		var bytes:ByteArray = ldr.data;
		var row = bytes.readByte();
		var col = bytes.readByte();	
		var map = new Array();
			for (var i = 0; i < row; i++) {
			map[i] = new Array();
			for (var j = 0; j < col; j++) {
				map[i][j] = bytes.readByte();
			}
		}
		callback();
	});
}

[]キャラを動かす

設置したキャラを、当たり判定とか障害物とか全て無視で、

とりあえず、上下左右の方向に移動する処理を追加してみた。

ウロウロ、チョロチョロ。

f:id:satoru_net:20080504194713j:image

前回とイメージは変わんないんだけど一応、記念写真

http://satoru.net/test/rpg/080604_02/main.html


うごくと、なんか楽しくなってくるね。

ソース

(3枚クラスがふえたお)

http://satoru.net/test/rpg/080604_02/Chara.as

http://satoru.net/test/rpg/080604_02/Chipset.as

http://satoru.net/test/rpg/080604_02/Direction.as

http://satoru.net/test/rpg/080604_02/main.fla

[]とりあえず、キャラ設置

今回はダラダラ思いつきで作るんじゃなくて、

さくらのブログ

を基本に参考にしながら作ってみよふと思う。

このwikiJAVAで開発してるけど、それをFlashに移行しつつ、勉強しながらやってみる。


順番どおりするのは、だるいのでまずは楽しそうなキャラのチップセットを読み込んで、キャラを設置する部分を作ってみよふ。


キャラのチップセットは、32x32で上下左右で、1キャラ(横(32*2パターン)、縦(32*4方向))の定番セットから読めるようにするお。マップチップはここからもらった。→CLONEGAMEPARTY

(´ε`;)ウーン…なんか、どっかで見たことあるキャラだなあ。。ま、いっか。


new Chara({X,Y,direction,moveType,map})

ってかんじで【キャラ設置できるクラス】をまずは作ったど〜〜!


早速、設置じゃよ。

f:id:satoru_net:20080504174804j:image

http://satoru.net/test/rpg/080504/main.html

ワーイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワーイ、なんか賑やか。でも、まだみんな移動はしない。(ヘコヘコ動きはするけど)

早く、ウロウロしてほしいなあ。

AS解説

ファイルをLoaderで読み込んで、BitmapDataから

キャラ毎に必用箇所をmatrixで切り取って、setIntervalで定期的に呼び出して、

ヘコヘコ動きをさせた。

ソース:

http://satoru.net/test/rpg/080504/Chara.as

これを、mainのflasからimportするか同じディレクトリにおいて

new Chara({x:0,y:32,chara:0,direction:2,moveType:1,map:stage});

とかするだけ。

[]RPGつくる!

なんか周期的にこういう気分になるんだけど、

今回の目標は、


flashRPGをつくる

・町の人と会話できる!


まで、実装できるようにがんばるぞー!

flashFF6とかゼルダとか名作系

RPGを作りたいなー、とおもって、いろいろ

巡ってたら世の中には既にこんなに名作がflashゲーに移植されとるのね。


FF6

http://www.2flashgames.com/fullscreen.php?id=206

ぜるだ

http://www.geocities.jp/gemekann/img/bana/geme/kogame/zeruda2.html

すまぶら

http://www.newgrounds.com/portal/view/333995

ろっくまん

http://f-game.skr.jp/181.html

すと2

http://f-game.skr.jp/5.html

すぱるたんX

http://f-game.skr.jp/155.html


すごすなあ。

なんかすごすぎて、自分で作る気がなくなってしまったw orz

080502Friday

[]じぶり

f:id:satoru_net:20080502204403j:image

絵は無関係

コンパクトで音もイイ持ち運び便利なUSBスピーカー

前に海外に行ったときに、たまたま買ったUSBスピーカー。

コンパクトなわりに音もよくて、お気に入り。

でも日本で売ってるとこ見かけないんだよねコレ。

f:id:satoru_net:20080502134210j:image

Genius | Touch Pen, Mouse, Keyboard, Headset, Speaker, Gaming, Camera devices

[]本家にノッタ\(^o^)/

http://d.hatena.ne.jp/satoru_net/20080426/1209205933

で、書いたデスクトップ百景が本家impressに載ったよー。


http://bb.watch.impress.co.jp/cda/desktop/21784.html

本家バージョンは「m9(^Д^)プギャー」とか「www」顔文字つかえないらしくて、

お上品仕様になってるおーww


記念写真

f:id:satoru_net:20080502133331p:image


f:id:satoru_net:20080502133332p:image

080501Thuday

はーとめっせーじ

はーとめっせーじ

はーとにめっせーじをかいて ポイ。

ってするやつを つくりたい。>mySpaceあぷり

f:id:satoru_net:20080501092121j:image


ところで、なんか今日は気分がいい感じ。

作りたいパラメータも復活してきたかも。

昨日まで、やばいほど、げんなり気分だったなあ。。


ところで、廃人ゲームウルティマオンラインを始めました。

©satoru.net
Mail Twitter