質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

828閲覧

3つの文字を連続で飛ばしたい

rink

総合スコア80

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/01/27 02:51

java初心者です。
Aという文字を3回連続で順番に飛ばしたいです。ですが今のままでは一回しか動きません。
いかにコードを貼ります。

java

1class A{ 2 public static void main(String args[]) { 3 double x, y, x_speed, y_speed; 4 double g; 5 int r,c; 6 7 g = -10; 8 r = 10000; 9 c = 0; 10 11 x = 0; 12 y = 100000; 13 x_speed = 800; 14 y_speed = 0; 15 16 System.out.print("<html><head><style type=\"text/css\">#flyingObject { position:absolute; left:0px; top:30px; width:3em; }#catchObject { position:absolute; left:0px; top:30px; width:3em; }</style><script type=\"text/javascript\">var flyobj = null;var catobj = null;var count = 0;var distmax = 140000;var hmax = 100000;var theoval = 113137.08498984762;var movedata = new Array("); 17 18 while( y >= 0 ) { 19 y_speed = y_speed + g/r; 20 x = x + x_speed/r; 21 y = y + y_speed/r; 22 23 c++; 24 if( c == r ) { 25 System.out.print("" + x + "," + (100000-y) + ",\n"); 26 c = 0; 27 } 28 } 29 System.out.print("" + x + "," + (100000-y) + ""); 30 /* System.out.print("estimated distance = " + x + "\n"); */ 31 32 System.out.print("); function doAnimLoop() { flyobj.style.left = parseFloat(movedata[count])*800/distmax + 'px'; flyobj.style.top = parseFloat(movedata[count+1])*400/hmax + 'px'; count+=2; if( count < movedata.length ) { setTimeout(doAnimLoop,20); } else { if( (parseFloat(movedata[count-2]) - theoval > 3) || (parseFloat(movedata[count-2]) - theoval < -3) ) { flyobj.style.background = 'red'; } else { flyobj.style.background = 'transparent'; } }}function doAnimStart() { flyobj = document.getElementById('flyingObject'); flyobj.style.left='0px'; flyobj.style.top='0px'; catobj = document.getElementById('catchObject'); catobj.style.left=theoval*800/distmax +'px'; catobj.style.top=400+'px'; doAnimLoop();}window.onload = doAnimStart;</script></head><body><div id=\"flyingObject\">A</div><div id=\"catchObject\"> </div></body></html>"); 33 return; 34 } 35} 36

物理の水平投射を使って文字を飛ばしています。
自分はこの動きを3回動作させたいです。
自分はこのhtmlを3つ書いてみたのですが、「2回目以降のところにプログラムは移りません」
とエラーが出てしまいます。
どこをどのようにすることで実現するか、知りたいです。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2019/01/28 08:55 編集

この Java プログラムは HTML を作っているだけです. 3 回動くかどうかは HTML 側の問題かと思いますので, まずこのプログラムで作った HTML を直接手で直してご希望通り動くようにし, その結果出来た HTML ファイルをこのプログラムで作るように修正されるのが良いかと思います. ですので, HTML(JavaScript?) の質問を作られては如何でしょうか.
rink

2019/01/27 04:56

なるほど…、いつもありがとうございます!
jimbe

2019/01/27 05:07

HTML は多少分かるのですがスクリプトは全くやってないので, ご質問そのものには答えられないのが残念です. すいません.
rink

2019/01/27 05:09

いえいえ。。こちらこそわかりにくい質問ですいません…。
guest

回答1

0

ベストアンサー

付け焼刃ですが, 動いたようなので回答してみます.
と言っても java で無く java を動かして出来る html のほうです.
行ったのは, loopcount 変数の追加と, それを使った doAnimLoop の繰り返しの追加です.
java の方は, こういうコードを出力するように System.out.print() の中の文字列を変更してください.

JavaScript

1<html> 2<head> 3<style type="text/css"> 4#flyingObject { position:absolute; left:0px; top:30px; width:3em; } 5#catchObject { position:absolute; left:0px; top:30px; width:3em; } 6</style> 7<script type="text/javascript"> 8 var flyobj = null; 9 var catobj = null; 10 var loopcount = 0; //変数追加 11 var count = 0; 12 var distmax = 140000; 13 var hmax = 100000; 14 var theoval = 113137.08498984762; 15 var movedata = new Array( 16800.000000000114,5.000499999936437, 171599.9999999997046,20.000999999974738, 182399.9999999989773,45.00149999995483, 193199.9999999982497,80.00199999993492, 203999.999999997522,125.00249999998778, 214799.999999996795,180.0029999998951, 225599.999999996067,245.0034999998752, 236399.99999999534,320.00399999984074, 247199.999999994612,405.00449999987904, 257999.999999993885,500.0050000000192, 268799.999999993157,605.0055000000866, 279599.99999999243,720.0060000002704, 2810399.999999991702,845.0065000005998, 2911199.999999990974,980.0070000007981, 3011999.999999990247,1125.0075000011275, 3112799.999999989519,1280.0080000015587, 3213599.999999988791,1445.0085000019462, 3314399.999999988064,1620.0090000024065, 3415199.999999987336,1805.0095000029396, 3515999.999999986609,2000.0100000034727, 3616799.99999999534,2205.0105000041367, 3717600.000000012802,2420.011000004786, 3818400.000000030264,2645.0115000054648, 3919200.000000047727,2880.0120000062743, 4020000.00000006519,3125.0125000070548, 4120800.00000008265,3380.0130000078643, 4221600.000000100114,3645.0135000084992, 4322400.000000117576,3920.0140000089596, 4423200.000000135038,4205.0145000091, 4524000.0000001525,4500.015000009007, 4624800.000000169963,4805.015500008754, 4725600.000000187425,5120.01600000824, 4826400.000000204887,5445.016500007419, 4927200.00000022235,5780.0170000064245, 5028000.000000239812,6125.017500005211, 5128800.000000257274,6480.018000003707, 5229600.000000274737,6845.018500001985, 5330400.0000002922,7220.019000000058, 5431200.00000030966,7605.019499997841, 5532000.000000327123,8000.01999999542, 5632800.00000034458,8405.020499992781, 5733600.000000362044,8820.020999989836, 5834400.00000037951,9245.021499986702, 5935200.00000039697,9680.021999983364, 6036000.00000041443,10125.022499979706, 6136800.00000043189,10580.022999975845, 6237600.000000449356,11045.023499971809, 6338400.00000046682,11520.023999967467, 6439200.00000048428,12005.024499962863, 6540000.00000050174,12500.0249999581, 6640800.000000519205,13005.025499953117, 6741600.00000053667,13520.025999947786, 6842400.00000055413,14045.026499942294, 6943200.00000057159,14580.026999936614, 7044000.000000589054,15125.027499930598, 7144800.00000060652,15680.02799992438, 7245600.00000062398,16245.028499917986, 7346400.00000064144,16820.028999911272, 7447200.0000006589,17405.02949990434, 7548000.000000676366,18000.029999897204, 7648800.00000069383,18605.030499889792, 7749600.00000071129,19220.03099988216, 7850400.00000072875,19845.031499874312, 7951200.000000746215,20480.031999866187, 8052000.00000076368,21125.03249985783, 8152800.00000078114,21780.032999849296, 8253600.0000007986,22445.033499840472, 8354400.000000816064,23120.033999831372, 8455200.00000083353,23805.034499822097, 8556000.00000085099,24500.034999812633, 8656800.00000086845,25205.035499802805, 8757600.00000088591,25920.035999792803, 8858400.000000903376,26645.036499782655, 8959200.00000092084,27380.03699977213, 9060000.0000009383,28125.037499761413, 9160800.00000095576,28880.037999750522, 9261600.000000973225,29645.03849973934, 9362400.00000099069,30420.038999727898, 9463200.00000100815,31205.039499716266, 9564000.00000102561,32000.039999704386, 9664800.000001043074,32805.04049969226, 9765600.00000106053,33620.0409996799, 9866400.00000107799,34445.041499667306, 9967200.00000109545,35280.04199965443, 10068000.00000111292,36125.042499641364, 10168800.00000113038,36980.0429996281, 10269600.00000114784,37845.043499614505, 10370400.0000011653,38720.043999600726, 10471200.00000118277,39605.044499586766, 10572000.00000120023,40500.04499957246, 10672800.00000121769,41405.04549955797, 10773600.00000123515,42320.04599954329, 10874400.00000125261,43245.046499528304, 10975200.00000127008,44180.046999513084, 11076000.00000128754,45125.04749949768, 11176800.000001305,46080.047999482005, 11277600.00000132246,47045.04849946607, 11378400.00000133993,48020.048999449944, 11479200.00000135739,49005.04949943359, 11580000.00000137485,50000.04999941693, 11680800.00000139231,51005.050499400095, 11781600.00000140977,52020.05099938304, 11882400.00000142724,53045.05149936567, 11983200.0000014447,54080.05199934811, 12084000.00000146216,55125.05249933036, 12184800.00000147962,56180.05299931228, 12285600.00000149709,57245.053499293994, 12386400.00000151455,58320.05399927552, 12487200.00000153201,59405.05449925675, 12588000.00000154947,60500.05499923776, 12688800.00000156694,61605.05549921857, 12789600.0000015844,62720.05599919912, 12890400.00000160186,63845.056499179394, 12991200.00000161932,64980.0569991595, 13092000.00000163678,66125.05749913934, 13192800.00000165425,67280.05799911889, 13293600.00000167171,68445.05849909823, 13394400.00000168917,69620.05899907733, 13495200.00000170663,70805.05949905625, 13596000.0000017241,72000.05999903491, 13696800.00000174156,73205.0604990133, 13797600.00000175902,74420.0609989915, 13898400.00000177648,75645.06149896946, 13999200.00000179395,76880.06199894713, 140100000.00000181141,78125.06249892461, 141100800.00000182887,79380.06299890189, 142101600.00000184633,80645.06349887884, 143102400.0000018638,81920.06399885559, 144103200.00000188126,83205.06449883219, 145104000.00000189872,84500.06499880842, 146104800.00000191618,85805.06549878446, 147105600.00000193364,87120.06599876028, 148106400.0000019511,88445.06649873588, 149107200.00000196857,89780.0669987112, 150108000.00000198603,91125.06749868632, 151108800.0000020035,92480.06799866118, 152109600.00000202096,93845.06849863581, 153110400.00000203842,95220.06899861021, 154111200.00000205588,96605.06949858437, 155112000.00000207334,98000.06999855829, 156112800.0000020908,99405.07049853199, 157113137.12000209816,100000.13259902083 158 ); 159 160function doAnimLoop() { 161 flyobj.style.left = parseFloat(movedata[count++])*800/distmax + 'px'; 162 flyobj.style.top = parseFloat(movedata[count++])*400/hmax + 'px'; 163 if( count < movedata.length ) { 164 setTimeout(doAnimLoop, 20); 165 } else { 166 //追加ここから 167 loopcount ++; 168 if( loopcount < 3 ) { 169 count = 0; 170 setTimeout(doAnimLoop, 20); 171 } else { 172 //追加ここまで 173 if((parseFloat(movedata[count-2]) - theoval > 3) || 174 (parseFloat(movedata[count-2]) - theoval < -3)) { 175 flyobj.style.background = 'red'; 176 } else { 177 flyobj.style.background = 'transparent'; 178 } 179 } //これも追加 180 } 181} 182function doAnimStart() { 183 flyobj = document.getElementById('flyingObject'); 184 flyobj.style.left ='0px'; 185 flyobj.style.top ='0px'; 186 catobj = document.getElementById('catchObject'); 187 catobj.style.left = theoval*800/distmax +'px'; 188 catobj.style.top = 400+'px'; 189 doAnimLoop(); 190} 191window.onload = doAnimStart; 192</script> 193</head> 194<body> 195<div id="flyingObject">A</div> 196<div id="catchObject"> </div> 197</body> 198</html>

投稿2019/01/28 08:54

jimbe

総合スコア12646

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rink

2019/01/28 12:31

とても分かりやすく解説してくださりありがとうございます! なるほど、ループをそこに追加するんですね、ためになります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問