1181621
Tonyu BBS
[再読み込み] [ホームページ] [使いかた] [ワード検索] [管理用]

おなまえ

Eメール
題  名  
コメント(http(s)://などのURLが含まれていると投稿できないことがあります)
添付プログラム
※プログラムに関する質問は、そのプログラムを添付して送ると対応が早くできます
添付方法...
削除キー (自分の記事を削除時に使用。英数字で8文字以内)
文字色
半透明の長方形 投稿者 : XX(p061198140172.ppp.prin.ne.jp)
- 2009/05/03(Sun) 12:34 No.12339
 


初めまして。XXです。

マウスクリックしたときに、その座標を覚え、マウスが放されるまで、覚えた座標とマウスの座標をを対角線とするような透明な長方形が書きたいです。
透明でなければできるのですが・・・。

mode=0;
while(1){
if (mode==0){
 if (getkey(1)==1) {tx=$mouseX;ty=$mouseY;mode=1;}

if (mode==1){
//ここに絵画処理
 if (getkey(1)==0) {mode=0;}

update();


というものを考えたのですが、絵画処理のところをうまく書くことができません。
青色で書きたいので、drawDxSpriteを使って書こうとしましたが、あまりにも効率が悪く、降参状態です。


Re: 半透明の長方形 投稿者 : OceanLight(nthkid160017.hkid.nt.ftth.ppp.infoweb.ne.jp)
- 2009/05/03(Sun) 17:16 No.12340
 
mode=0;
box = new Panel();
box.resize(1,1);
box.setpixel(0,0,$clBlue);
box.alpha=120;
while(1){
if (mode==0){
 if (getkey(1)==1) {tx=$mouseX;ty=$mouseY;mode=1;}

if (mode==1){
//ここに絵画処理
box.stretchdraw((tx-x)/2,(ty-y)/2,(tx-x),(ty-y));
 if (getkey(1)==0) {mode=0;}

update();



Panelをつかって透明の青い長方形を描画。
stretchdraw(x,y,幅,高さ);
というメソッドで1*1サイズのPanelを引き伸ばして描画してます。
alphaの数値を変更すれば透明度の変更が可能。



(*未テスト。申し訳ない。)


Re: 半透明の長方形 投稿者 : XX(p061198166254.ppp.prin.ne.jp)
- 2009/05/04(Mon) 22:44 No.12343
 

mode=0;
box = new Panel();
box.resize(1,1);
box.setpixel(0,0,$clBlue);
box.alpha=100;
while(1){
if (mode==0){
 if (getkey(1)==1) {tx=$mouseX;ty=$mouseY;mode=1;}
}
if (mode==1){
//ここに絵画処理
box.stretchdraw((tx+$mouseX)/2,(ty+$mouseY)/2,tx-$mouseX,ty-$mouseY);
 if (getkey(1)==0) {mode=0;}
}
update();
}

で正常に動きました。ありがとうございます。m(_ _)m

角度関連の質問 投稿者 : kirby(ntkyto171214.kyto.nt.ftth4.ppp.infoweb.ne.jp)
- 2009/05/02(Sat) 14:46 No.12336
 


色々と質問です
Q1,あるオブジェクトの方向に合わせて角度を変えるにはどうすればいいか?
計算方法が分かりません。
ただそれだけです><

Q2,あるオブジェクト、又は場所に一直線に移動させるにはどうすればいいか?
if(x>Object.x) x-=1;
if(x<Object.x) x+=1;
if(y>Object.y) y-=1;
if(y<Object.y) y+=1;
こうすればObjectの場所へ移動することはしますが、
x又はyがObjectと同じ値になるまで斜め移動→同じ値になったら直線移動
という移動方法になってしまい、なんだか変です。
ある場所に移動させる時も同じです。


Re: 角度関連の質問 投稿者 : たく(ntchba126209.chba.nt.adsl.ppp.infoweb.ne.jp)
- 2009/05/02(Sat) 21:54 No.12337
 
Q1 
  KAKUD=angle(Object.x-x,Object.y-y)-90; 
    angleD=angleDiff(angle,KakuD);   
    if     ( angleD>0) angle+=2;  
    else if(   angleD<0) angle-=2;  

昔教えてもらった方法なのですが、これでできるようになると思います。

Q2は上のソースに  
  x+=spd*sin(angle);  
  y-=spd*cos(angle);
(spdに好きな値を入れてください)を追加するだけです。


Re: 角度関連の質問 投稿者 : kirby(ntkyto171214.kyto.nt.ftth4.ppp.infoweb.ne.jp)
- 2009/05/02(Sat) 22:37 No.12338
 
ありがとうございます!解決しました!


Re: 角度関連の質問 投稿者 : OceanLight(nthkid160017.hkid.nt.ftth.ppp.infoweb.ne.jp)
- 2009/05/03(Sun) 17:20 No.12341
 
補足ですが

  ang_spd = 2;
  KAKUD=angle(Object.x-x,Object.y-y)-90; 
    angleD=angleDiff(angle,KakuD);   
    if     ( angleD> ang_spd) angle+=ang_spd;  
    else if( angleD<-ang_spd) angle-=ang_spd; 
    else                      angle = KAKUD

とすると、ターゲットを向いたときにガタガタにならなくなります。
(ang_spdは振り向くスピード。)

マウス操作で… 投稿者 : Fel(p2174-ip03sasajima.aichi.ocn.ne.jp)
- 2009/05/01(Fri) 01:25 No.12327
 


プログラミング初心者なので初歩的な質問になってしまいますが、
マウスをクリックした時に自キャラがマウスカーソルの方へ飛んでいくようにするにはどうすればいいのでしょうか?


Re: マウス操作で… 投稿者 : Triangle Ld.(i218-47-199-58.s06.a011.ap.plala.or.jp)
- 2009/05/01(Fri) 16:00 No.12328
 
こんな感じでしょうか。
extends SpriteChar;  //お約束

mx = 0;  //マウスX座標
my = 0;  //マウスY座標
while (1){
  if (getkey(1) == 1){
    //画面上で左クリックされたとき
    mx = $mouseX;
    my = $mouseY;
  }
  a = $Math.angle(mx-x, my-y);
  x += cos(a);
  y += sin(a);
  update();
}
と、三角関数cos,sinを使います。
$Math.angleのところは本来angleでもいいのですが、Mathのangleのほうが
精度がいいようなのでこちらを使いました。
$mouseX,$mouseYはマウスの座標です。
これはスクリーン座標というもので、マップのスクロールには影響しないです。
もし自機をスクロールさせるなら、以下のようにするといいです。
$Math.angle(mx-x, my-y);
         ↓
$Math.angle(($viewX+mx)-x, ($viewY+my)-y);
以上、長い説明でした。
我慢してじっくり読んでください。


Re: マウス操作で… 投稿者 : Fel(p10197-ip02sasajima.aichi.ocn.ne.jp)
- 2009/05/01(Fri) 23:50 No.12329
 
ありがとうございます!参考にさせていただきました。
一応基本的な部分は掴めたのですが、自分で色々といじってみても分からない部分があったので、恐縮ですが再度質問させていただきます。

現在サイドビュー型のアクションを制作しているのですが、マウスカーソルの地点まで移動するのではなく、カーソルの方向へちょっとだけ跳ぶ感じにするにはどうしたらいいのでしょうか?
また、移動する方向によってキャラクタの絵を変えるにはどのようにすればいいのでしょうか?(真上へ移動する時はジャンプする絵に、横へ移動する時はダッシュする絵に、という感じです)

質問ばかりで本当に申し訳ありません…m(_ _;)m


Re: マウス操作で… 投稿者 : Triangle Ld.(softbank219014226155.bbtec.net)
- 2009/05/02(Sat) 00:13 No.12332
 
こういう系のプログラミングの基礎は、「変数」と「制御文(if•whileなど)」です。
>キャラの絵を変える。
変数pをつかいます。
アニメーションさせるならAnimationAdaptor(アニメーションの道具)を事前にanimなどに用意して、
anim.loop(最初のパターン,最後のパターン,速さ);
anim.swing(最初のパターン,最後のパターン,速さ);
とします。
というよりここらはプロジェクトボードにある作品たちをみて、それで中身を拝見させてもらえればいいとおもいます。
>マウスカーソルの方向にすこしとぶ
うーん...こんなかんじですかね。
No.12328より
省略
a=$Math.angle(mx-x,my-y);
x+=cos(a);
vy=-sin(a)*7;
if($map.getAt(x,y+16)==-1){
  vy+=0.4;
}
y+=vy;
あと分からないところはヘルプとにらめっこして解決してください。それでもわからなかったら質問するようにしましょう。
実際私がその例なので。


Re: マウス操作で… 投稿者 : Fel(p1011-ip03sasajima.aichi.ocn.ne.jp)
- 2009/05/02(Sat) 12:22 No.12335
 
ありがとうございます。
「変数」と「制御文(if•whileなど)」が基礎、ということは理解しているつもりなのですが、テクニックというか、応用の仕方がなかなか思い付かないです…プログラミングって本当に難しいです。
マウス関連も難しいですね。初心者には敷居が高すぎるんでしょうか…

今更ながら、質問を連発した自分に自己嫌悪しています…
他人に頼りすぎてしまっていたような気がします。
こういうことはもっと自力でやるようにしたほうがいいですよね。
質問に丁寧に答えてくださったTriangle Ld.さんに感謝します。

無題 投稿者 : k(p1163-ipbf14okayamaima.okayama.ocn.ne.jp)
- 2009/04/17(Fri) 23:37 No.12319
 


初歩的なのですが、
回転する真ん中を端にする方法が分かりません・・・
どうするのでしょうか?


Re: 無題 投稿者 : イッカ!(p1077-ipbf3203hodogaya.kanagawa.ocn.ne.jp)
- 2009/04/18(Sat) 16:52 No.12320
 
こんな感じです(´ω`)
簡単な方法があるかm(ry

x=$ScreenWidth/2;     //初期のX座標。
y=$ScreenHeight/2;    //初期のY座標。
cx=x-getWidth(p)/2;   //回転の中心のX座標、この場合は画像の左端。
cy=y-getHeight(p)/2;   //回転の中心のY座標、この場合は画像の上端。
a=1;  //回転の速さ。
while(1) {
  $Math.roll(x,y,a,cx,cy);
  angle+=a;
  x=$math.rx;
  y=$math.ry;
  update();
}


Re: 無題 投稿者 : k(p1163-ipbf14okayamaima.okayama.ocn.ne.jp)
- 2009/04/19(Sun) 11:57 No.12321
 
できました!
ありがとうございますm(__)m


Re: 無題 投稿者 : Triangle Ld.(softbank219014226155.bbtec.net)
- 2009/04/25(Sat) 21:13 No.12322
 
補足:
getHeightには引数はありません。
pを引数とするのはgetPatHeightですが、これはgetHeight内から呼び出されているので、ほとんどつかうことがないとおもいます。
getWidthも同様です。


No.12320訂正版 投稿者 : Triangle Ld.(i218-47-199-58.s06.a011.ap.plala.or.jp)
- 2009/04/27(Mon) 15:56 No.12324
 
extends DxChar;           //これで回転ができる。
//↑回転しないときはSpriteChar
rx=x-getWidth()/2;  //左端
ry=y-getHeight()/2; //上端
a=1;                //回転の速さ
while(1){           //永久ループ
  angle+=a;         //angleにaを足す
  x=rx+cos(angle);  //端座標にangleの余弦を加える
  y=ry+sin(angle);  //端座標にangleの正弦を加える
  update();         //描画
}                   //戻る
rx=x+getWidth()/2;にすると右端
ry=y+getHeight()/2;にすると下端
になります。
x=rx+cos(angle);
y=ry+sin(angle);
のところが怪しいですが(苦笑)。

海外のOS上で・・・? 投稿者 : 111(fl1-125-198-145-88.gif.mesh.ad.jp)
- 2009/04/08(Wed) 21:05 No.12315
 


 少し疑問が浮かびましたので、質問させてください。
 Tonyuを海外の人にプレイしてもらう事は可能でしょうか?
 おそらく日本語のフォントが問題になると思うので、日本語は使わないとして、他になにか問題が発生するのでしょうか?

 分かる方おりましたら、推測でもかまいませんので、教えてください。お願いします。


Re: 海外のOS上で・・・? 投稿者 : イッカ!(p1077-ipbf3203hodogaya.kanagawa.ocn.ne.jp)
- 2009/04/09(Thu) 01:41 No.12316
 
分かりませんが推測としては、特に無いと思います。
国によって計算の答えが違うということは無いですし。
多分、日本語の変数とかも…使える…か…な(


Re: 海外のOS上で・・・? 投稿者 : 111(fl1-125-198-145-88.gif.mesh.ad.jp)
- 2009/04/11(Sat) 00:56 No.12317
 
 分かりました、ありがとうございます。
 なにかプログラムで作られた作品でも海外のOSだと動かない? という様な事を聞いたもので、心配になったのです。

 もし実際に試した例が分かりましたら、ここに報告したいと思います。ありがとうございました。


Re: 海外のOS上で・・・? 投稿者 : Triangle Ld.(i218-47-199-58.s06.a011.ap.plala.or.jp)
- 2009/04/27(Mon) 15:47 No.12323
 
翻訳システムはTonyu本体に内蔵してあるので、
Tonyuが動くならどんなPC・OSでも動きますよ。
海外のOSだと日本語メニューが恐ろしいほど文字化けする
ので、Kernel内のmessage.iniを削除すれば正常に動くんじゃ
ないのでしょうか。

.
[直接移動] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232] [233] [234] [235] [236] [237] [238] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288] [289] [290] [291] [292] [293] [294] [295] [296] [297] [298] [299] [300] [301] [302] [303] [304] [305] [306] [307] [308] [309] [310] [311] [312] [313] [314] [315] [316] [317] [318] [319] [320] [321] [322] [323] [324] [325] [326] [327] [328] [329] [330] [331] [332] [333] [334] [335] [336] [337] [338] [339] [340] [341] [342] [343] [344] [345] [346] [347] [348] [349] [350] [351] [352] [353] [354] [355] [356] [357] [358] [359] [360] [361] [362] [363] [364] [365] [366] [367] [368] [369] [370] [371] [372] [373] [374] [375] [376] [377] [378] [379] [380] [381] [382] [383] [384] [385] [386] [387] [388] [389] [390] [391] [392] [393] [394] [395] [396] [397] [398] [399] [400] [401] [402] [403] [404] [405] [406] [407] [408] [409] [410] [411] [412] [413] [414] [415] [416] [417] [418] [419] [420] [421] [422] [423] [424] [425] [426] [427] [428] [429] [430] [431] [432] [433] [434] [435] [436] [437] [438] [439] [440] [441] [442] [443] [444] [445] [446] [447] [448] [449] [450] [451] [452] [453] [454] [455] [456] [457] [458] [459] [460] [461] [462] [463] [464] [465] [466] [467] [468] [469] [470] [471] [472] [473] [474] [475] [476] [477] [478] [479] [480] [481] [482] [483] [484] [485] [486] [487] [488] [489] [490] [491] [492] [493] [494] [495] [496] [497] [498] [499] [500] [501] [502] [503] [504] [505] [506] [507] [508] [509] [510] [511] [512] [513] [514] [515] [516] [517] [518] [519] [520] [521] [522] [523] [524] [525] [526] [527] [528] [529] [530] [531] [532] [533] [534] [535] [536] [537] [538] [539] [540] [541] [542] [543] [544] [545] [546] [547] [548] [549] [550] [551] [552] [553] [554] [555] [556] [557] [558] [559] [560] [561] [562] [563] [564] [565] [566] [567] [568] [569] [570] [571] [572]
- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

- Joyful Note -