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

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

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

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

2回答

1434閲覧

processing データ通信(サーバ側からクライアント側へ配列データが遅れず、クライアント側が動きません)

noberon

総合スコア17

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2019/05/06 02:11

編集2022/01/12 10:55

Processing で2人対戦型シューティングゲームを作っています。サーバ側の動作はうまくいったのですが、クライアント側が動きません。

ゲーム概要としては画面の上と下に横移動しか出来ない自機を2つ配置します。それぞれがスペースキーで弾を打ちます。
画面中央にはランダムに動く敵を配置し、敵も弾を撃ちます。
プレイヤーは敵の攻撃を避けつつ敵を倒しスコアが高い方が勝ちと言ったものです。

弾の発射や当たり判定などの基本動作はサーバ側で制御し、クライアント側では自機の位置座標と打った弾の座標を送り、サーバから送られるサーバ側の自機や敵に関する座標を受け取り表示するコードを組んだのですが、データ通信がうまくいってないのかクライアント側が正常に表示されません。

説明が上手くできず申し訳ありませんが、以下のサーバ側のコードとクライアント側のコードを実行したら意味がわかると思います。(おそらくデータの送受信がうまくいってないと考えられます)
すみませんが詳しい方教えてください。
以下にサーバ側のコード、クライアント側のコードは回答への返信欄に載せてあります。

processing

1サーバー 2//ソケット通信のためのライブラリを読み込み 3import processing.net.*; 4Server server; 5//ポート番号を指定(今回は20000) 6int port = 20000; 7 8int keyy; //流れ管理 9PImage player1,player2,bg, bombP1,bombP2;// bP: プレイヤーの弾 10PImage[] enemy = new PImage[2]; 11 12int px1=240,py1=50,ph1=50,pw1=50; //プレイヤー1の座標と高さ幅 13int px2,py2=700,pw2=50,ph2=50;//プレイヤー2の座標と高さ幅 14 15float[] ex =new float[12]; //敵の座標 16int[] ey = new int[12]; 17int[] ef = new int[12]; //フラグ  0:左方向  1:右方向 2:未使用 18float[] ev = new float[12]; //敵の移動速度 19 20int[] bPx1= new int[6]; //Player1弾 21int[] bPy1= new int[6]; 22int[] bPx2 = new int[6]; //Player2弾 23int[] bPy2= new int[6]; 24 25int[] bEx = new int[20]; //Enemy弾 26int[] bEy = new int[20]; 27int[] bEv = new int[20]; //E弾速度 28 29int eA =0; 30int bEA =0; 31 32int bombWait; 33int keyKeep; //押下中のキー 34 35int scoreS = 0; 36int scoreC = 0; 37 38void setup(){ 39 //サーバを生成prot番ポートで立ち上げ 40 server = new Server(this, port); 41 42 size(600,800); 43 noStroke(); 44 frameRate(30); 45 imgLoad(); 46 gameInit(bPy1); //ゲーム初期化 47 gameInit(bPy2); 48} 49 50void draw(){ 51 background(100); 52 //FromC(); 53 // ToC(); 54 55 56 if( keyy == 0){ 57 gameTitle(); 58 59 }else if( keyy == 1){ 60 61 gamePlay(); 62 }else if( keyy == 2){ 63 gameOver(); 64 } 65 66} 67void FromC(){ 68 Client c = server.available(); 69 if(c != null) { 70 //改行コード('\n')まで読み込む 71 String msg = c.readStringUntil('\n'); 72 if (msg != null){ 73 //メッセージを空白で分割して配列に格納 74 String[] data = splitTokens(msg); 75 76 77 px2 = int(data[0]); 78 bPx2[0] = int(data[1]); bPx2[1] = int(data[2]); bPx2[2] = int(data[3]); 79 bPy2[0] = int(data[4]); bPy2[1] = int(data[5]); bPy2[2] = int(data[6]); 80 81 82 } 83 } 84} 85 86 void ToC(){ 87 //全てのデータの送信 88 String msg = ex[0] + " " + ex[1] + " " + ex[2] + " "+ ex[3]+" "+ ex[4]+" "+ ex[5]+" " + ex[6] + " " + ex[7] + " "+ ex[8]+" "+ ex[9]+ 89 " "+ey[0] + " " + ey[1] + " " + ey[2] + " "+ ey[3]+" "+ ey[4]+" "+ ey[5]+" " + ey[6] + " " + ey[7] + " "+ ey[8]+" "+ ey[9]+ 90 91 " "+bEx[0] + " "+bEx[1] + " " + bEx[2]+ " "+bEx[3]+" "+ bEx[4]+" "+bEx[5]+" " + bEx[6] + " " + bEx[7]+ " "+ bEx[8]+" "+ bEx[9]+ 92 " "+bEy[0] + " "+bEy[1] + " " + bEy[2]+ " "+bEy[3]+" "+ bEy[4]+" "+bEy[5]+" " + bEy[6] + " " + bEy[7]+ " "+ bEy[8]+" "+ bEy[9]+ 93 " "+px1+ " "+bPx1[0] + " " +bPx1[1] + " " + bPx1[2] +" "+bPy1[0] + " " +bPy1[1] + " " + bPy1[2] +" "+scoreS+ " "+scoreC +" "+keyy+'\n'; 94 print("server: " + msg); 95 //サーバが接続しているすべてのクライアントに送信 96 //(複数のクライアントが接続している場合は全てのクライアントに送信) 97 server.write(msg); 98 } 99 100 101void gameInit(int[] bPy){ 102 keyy = 0; 103 //px1 =240; 104 105 106 for(int i =0; i<12; i++){ 107 ef[i] = 2; 108 109 } 110 for(int i=0; i<6; i++){ 111 bPy[i] = -20; //-20:未使用 112 113 } 114 bombWait = 0; 115 keyKeep = 0; 116 117 for(int i=0; i<20; i++){ 118 bEy[i] = -20; //-20:未使用 119 } 120 121} 122void gameTitle(){ 123 keyy =1; 124} 125//int px,int py,int pw,int ph,int[]bPx,int[]bPy 126void gamePlay(){ 127 px1 = playerMove(bPx1,bPy1,px1,pw1); 128 image(player1,px1,py1,pw1,ph1); 129 // px2 = playerMove(bPx2,bPy2,px2,pw2); 130 image(player2,px2,py2,pw2,ph2); 131 132 enemyMove(); 133 enemyDisp(bPx1,bPy1); 134 enemyDisp(bPx2,bPy2); 135 bombP1Move(bPx1,bPy1); 136 bombP2Move(bPx2,bPy2); 137 bombEMove(px1,py1,pw1,ph1); 138 bombEMove(px2,py2,pw2,ph2); 139 scoreDisp(); 140} 141void gameOver(){ 142 scoreDisp(); 143} 144 145void imgLoad(){ 146 player1 = loadImage("player2.png"); 147 player2 = loadImage("player1.png"); 148 enemy[0] =loadImage("敵.png"); 149 bombP1=loadImage("2弾.png"); 150 bombP2 =loadImage("1弾.png"); 151} 152int playerMove(int[] bPx,int[] bPy,int px,int pw){ //**** void → int 153 // if( (keyPressed == true) && (key == CODED) ){ 154 if( ( keyKeep == LEFT) && (px>0) ){ 155 px -= 3; 156 } 157 if( ( keyKeep == RIGHT) &&(px <600-pw) ){ 158 px += 3; 159 } 160 // } 161 if( bombWait>0){ 162 bombWait--; 163 } 164 if( (keyPressed == true) && (key == ' ' ) && (bombWait == 0) ){ 165 bombWait =10; //10秒まち 166 bombP1Add(bPx,bPy,px,pw); 167 // bombP2Add(bPx,bPy,px,pw); 168 } 169 return px; //**** 追加 170 } 171 172void keyPressed(){ 173 if (key == CODED){ 174 if( (keyCode == LEFT) || (keyCode == RIGHT) ){ 175 keyKeep = keyCode; 176 } 177 } 178} 179void keyReleased(){ 180 if (key == CODED){ 181 if( (keyCode == LEFT) || (keyCode == RIGHT) ){ 182 keyKeep = 0; 183 } 184 } 185} 186 187void enemyMove(){ 188 for(int i=0; i<12; i++){ 189 ex[i] += ev[i]; 190 if( (ef[i] ==0) && (ex[i] < -50) ){ 191 ef[i]= 2; //画面外皮表示 192 } 193 if( (ef[i] ==1) && (ex[i] >600) ){ 194 ef[i]= 2; //画面外皮表示 195 } 196 } 197 if ( random(1000)<20){ //敵の発生率 198 enemyAdd(); 199 eA =1; 200 } else{ 201 eA =0; 202 } 203} 204 205 206void enemyDisp(int[] bPx,int[] bPy){ 207 for(int i=0; i<10; i++){ 208 if ( ef[i] <2){ 209 image(enemy[0],ex[i],ey[i],50,50); 210 211 for(int j=0; j<6; j++){ 212 if( (bPx[j] < ex[i]+50) && (bPx[j]+25 > ex[i]) 213 && (bPy[j] < ey[i]+50) && (bPy[j]+25 > ey[i]) ){ 214 bPy[j] = -20; 215 ef[i] = 2; 216 scoreS +=10; 217 break; 218 } 219 220 } 221 222 } 223 if ( (ef[i] < 2) && (random(2000)<10) ){ //敵爆弾発生率 224 bombEAdd(int (ex[i]), ey[i] ); 225 bEA = 1; 226 }else{ 227 bEA = 0; 228 } 229 } 230} 231 232 void enemyAdd(){ 233 for(int i=0; i<10; i++){ 234 if( ef[i] == 2){ //未使用の中から敵を追加 235 ev[i] = random(0.5,2.5); 236 if (random(100) <50){ 237 ef[i] = 0 ; //左 238 ex[i] = 600; 239 ev[i] =-ev[i] ; 240 } 241 else{ 242 ef[i] = 1; 243 ex[i]= -80; 244 } 245 ey[i] = int(random(150,650)); 246 break; 247 } 248 } 249 } 250 251 void bombP1Add(int[] bPx,int[]bPy,int px,int pw){ 252 for(int i=0; i<3; i++){ 253 if ( bPy[i] == -20){ //未使用の弾を使う 254 bPx[i] = px + (pw/2)-15; //Pの中心 255 bPy1[i] = 70; 256 break; //一発のみ 257 } 258 } 259 } 260 261void bombP1Move(int[] bPx,int[]bPy){ 262 int bcnt =3; 263 for(int i= 0; i<3; i++){ 264 if ( bPy[i] >0){ 265 bPy[i] += 5; 266 bcnt--; 267 } 268 if ( bPy[i] >800){ //画面上外 269 bPy[i] = -20; //未使用に戻す 270 } 271 image(bombP1,bPx[i],bPy[i]-8,30,30); 272 273 274 } 275 for(int i=0; i< bcnt; i++){ 276 image(bombP1, 230+i*26,10,25,25); 277 } 278} 279 280void bombP2Move(int[] bPx,int[] bPy){ 281 int bcnt =3; 282 for(int i= 0; i<3; i++){ 283 if ( bPy[i] >0){ 284 bPy[i] -= 5; 285 bcnt--; 286 } 287 if ( bPy[i] >0){ //画面上外 288 bPy[i] = -20; //未使用に戻す 289 } 290 image(bombP2,bPx[i],bPy[i]+8,30,30); 291 //for(int e= 0; e<12; e++){ 292 // if( (bPx[i] < ex[e]+50) && (bPx[i]+25 > ex[e]) 293 // && (bPy[i] < ey[e]+50) && (bPy[i]+25 > ey[e]) ){ 294 // scoreS +=10; 295 296 // } 297 //} 298 299 } 300 for(int i=0; i< bcnt; i++){ 301 image(bombP2, 230+i*26,750,25,25); 302 } 303} 304 305void bombEAdd(int xx, int yy){ 306 for( int i=0; i<10; i++){ 307 if ( bEy[i] == -20){ 308 bEx[i] = xx +18; 309 bEy[i] = yy; 310 if( random(100) < 50 ){ 311 bEv[i] = 1; 312 }else{ 313 bEv[i] = -1; 314 } 315 break; 316 } 317 } 318} 319 320void bombEMove(int px,int py,int pw,int ph ){ 321 for( int i = 0; i<10; i++){ 322 //bEv[i] = 1; 323 if ( (bEy[i] > 0) ){ 324 //if( random(100) < 50 ){ 325 bEy[i] -= bEv[i]; 326 // } 327 //else{ 328 // bEy[i] +=bEv[i]; 329 //} 330 } 331 if(( bEy[i] <= 0) || ( bEy[i] >=800) ) { 332 //if(bEy[i] < 90) { 333 bEy[i] = -20; 334 } 335 336 if( (bEx[i] < px+pw) && (bEx[i]+10 >px) 337 && (bEy[i] < py+ph) && (bEy[i]+10 >py) ) { 338 bEy[i] = -20; 339 scoreS -=50; 340 } 341 342 343 fill(0); 344 rect(bEx[i],bEy[i],10,10); 345 // image(bombP,bEx[i],bEy[i]-8,10,10); 346 } 347} 348 349void scoreDisp(){ 350 textSize(24); 351 text( "score:"+scoreS, 10,25); 352 text( "score:"+scoreC, 10,770); 353 354}

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

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

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

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

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

guest

回答2

0

クライアント側載せ忘れてましたすみません。

processing

1クライアント側 2 3//ソケット通信のためのライブラリを読み込み 4import processing.net.*; 5Client client; 6 7//他のマシンに接続するときは適切に変更 8String serverAdder = "192.168.100.105"; 9//ポート番号を指定(今回は20000) 10int port = 20000; 11 12int keyy; //流れ管理 13PImage player1,player2,bg, bombP1,bombP2;// bP: プレイヤーの弾 14PImage[] enemy = new PImage[2]; 15 16int px1=240,py1=50,ph1=50,pw1=50; //プレイヤー1の座標と高さ幅 17int px2=240,py2=700,pw2=50,ph2=50;//プレイヤー2の座標と高さ幅 18 19float[] ex =new float[12]; //敵の座標 20int[] ey = new int[12]; 21int[] ef = new int[12]; //フラグ  0:左方向  1:右方向 2:未使用 22float[] ev = new float[12]; //敵の移動速度 23 24int[] bPx1= new int[6]; //Player1弾 25int[] bPy1= new int[6]; 26int[] bPx2 = new int[6]; //Player2弾 27int[] bPy2= new int[6]; 28 29int[] bEx = new int[20]; //Enemy弾 30int[] bEy = new int[20]; 31int[] bEv = new int[20]; //E弾速度 32 33int bombWait; 34int keyKeep; //押下中のキー 35 36int scoreS = 0; 37int scoreC = 0; 38 39void setup(){ 40//指定されたアドレスとポートでサーバに接続 41 client = new Client(this, serverAdder, port); 42 43 //サーバー側 44 size(600,800); 45 noStroke(); 46 frameRate(30); 47 imgLoad(); 48 gameInit(bPy1); //ゲーム初期化 49 gameInit(bPy2); 50} 51 52void draw(){ 53 background(100); 54 if( keyy == 0){ 55 gameTitle(); 56 57 }else if( keyy == 1){ 58 gamePlay(); 59 60 }else if( keyy == 2){ 61 gameOver(); 62 } 63 64 //サーバに送信するメッセージを作成 65 //空白で区切り末尾は改行 66 String msg = px2+""+bPx2[0]+""+bPx2[1]+""+bPx2[2]+""+bPy2[0]+""+bPy2[1]+""+bPy2[2]+"\n"; 67 print("server: " + msg); 68 //サーバが接続しているすべてのクライアントに送信 69 //(複数のクライアントが接続している場合は全てのクライアントに送信) 70 client.write(msg); 71 72 } 73 74 //サーバーからデータを受け取るたびに呼び出される関数 75void clientEvent(Client c) { 76 //サーバからのデータ取得 77 String msg = c.readStringUntil('\n'); 78 //メッセージが存在する場合 79 if (msg != null) { 80 //改行を取り除き,空白で分割して配列に格納 81 String[] data = splitTokens(msg); 82 83 //int()で文字列から整数に変換 84 ex[0] = int(data[0]); ex[1] = int(data[1]); ex[2] = int(data[2]); ex[3] = int(data[3]); ex[4] = int(data[4]); ex[5] = int(data[5]); ex[6] = int(data[6]); ex[7] = int(data[7]); ex[8] = int(data[8]); ex[9] = int(data[9]); 85 ey[0] = int(data[10]); ey[1] = int(data[11]); ey[2] = int(data[12]); ey[3] = int(data[13]); ey[4] = int(data[14]); ey[5] = int(data[15]); ey[6] = int(data[16]); ey[7] = int(data[17]); ey[8] = int(data[18]); ey[19] = int(data[19]); 86 bEx[0] = int(data[20]); bEx[1] = int(data[21]); bEx[2] = int(data[22]); bEx[3] = int(data[23]); bEx[4] = int(data[24]); bEx[5] = int(data[25]); bEx[6] = int(data[26]); bEx[7] = int(data[27]); bEx[8] = int(data[28]); bEx[9] = int(data[29]); 87 bEy[0] = int(data[30]); bEy[1] = int(data[31]); bEy[2] = int(data[32]); bEy[3] = int(data[33]); bEy[4] = int(data[34]); bEy[5] = int(data[35]); bEy[6] = int(data[36]); bEy[7] = int(data[37]); bEy[8] = int(data[38]); bEy[9] = int(data[39]); 88 px1 = int(data[40]); bPx1[0] = int(data[41]); bPx1[1] = int(data[42]); bPx1[2] = int(data[43]); bPy1[0] = int(data[44]); bPy1[1] = int(data[45]); bPy1[2] = int(data[46]); scoreS = int(data[47]); scoreC = int(data[48]); keyy = int(data[49]); 89 90 91 } 92} 93 94void gameInit(int[] bPy){ 95 keyy = 0; 96 //px1 =240; 97 98 for(int i =0; i<12; i++){ 99 ef[i] = 2; 100 101 } 102 for(int i=0; i<6; i++){ 103 bPy[i] = -20; //-20:未使用 104 105 } 106 bombWait = 0; 107 keyKeep = 0; 108 109 for(int i=0; i<10; i++){ 110 bEy[i] = -20; //-20:未使用 111 } 112} 113 114void gameTitle(){ 115 keyy =1; 116} 117 118 void gamePlay(){ 119 //px1 = playerMove(bPx1,bPy1,px1,pw1); 120 image(player1,px1,py1,pw1,ph1); 121 122 px2 = playerMove(bPx2,bPy2,px2,pw2); 123 image(player2,px2,py2,pw2,ph2); 124 125 //enemyMove(); 126 //enemyDisp(bPx1,bPy1); 127 //enemyDisp(bPx2,bPy2); 128 //bombP1Move(bPx1,bPy1); 129 bombP2Move(bPx2,bPy2); 130 //bombEMove(px1,py1,pw1,ph1); 131 //bombEMove(px2,py2,pw2,ph2); 132 //scoreDisp(); 133 134 //eD 135 for(int i=0; i<12; i++){ 136 image(enemy[0],ex[i],ey[i],50,50); 137 } 138 139 //bP1M 140 int bcnt =3; 141 for(int i= 0; i<3; i++){ 142 image(bombP1,bPx1[i],bPy1[i]-8,30,30); 143 bcnt--; 144 } 145 for(int i=0; i< bcnt; i++){ 146 image(bombP1, 230+i*26,10,25,25); 147 } 148 149 //bEM 150 for( int i = 0; i<20; i++){ 151 fill(0); 152 rect(bEx[i],bEy[i],10,10); 153 } 154 155 //sD 156 textSize(24); 157 text( "score:"+scoreS, 10,25); 158 text( "score:"+scoreC, 10,770); 159 160 161 162 163} 164 165void bombP2Move(int[] bPx,int[] bPy){ 166 int bcnt =3; 167 for(int i= 0; i<3; i++){ 168 if ( bPy[i] >0){ 169 bPy[i] -= 5; 170 bcnt--; 171 } 172 if ( bPy[i] >0){ //画面上外 173 bPy[i] = -20; //未使用に戻す 174 } 175 image(bombP2,bPx[i],bPy[i]+8,30,30); 176 } 177 for(int i=0; i< bcnt; i++){ 178 image(bombP2, 230+i*26,750,25,25); 179 } 180} 181 182void gameOver(){ 183 // scoreDisp(); 184} 185 186 void imgLoad(){ 187 player1 = loadImage("player2.png"); 188 player2 = loadImage("player1.png"); 189 enemy[0] =loadImage("敵.png"); 190 bombP1=loadImage("2弾.png"); 191 bombP2 =loadImage("1弾.png"); 192} 193 194 195int playerMove(int[] bPx,int[] bPy,int px,int pw){ //**** void → int 196 // if( (keyPressed == true) && (key == CODED) ){ 197 if( ( keyKeep == LEFT) && (px>0) ){ 198 px -= 3; 199 } 200 if( ( keyKeep == RIGHT) &&(px <600-pw) ){ 201 px += 3; 202 } 203 // } 204 if( bombWait>0){ 205 bombWait--; 206 } 207 if( (keyPressed == true) && (key == ' ' ) && (bombWait == 0) ){ 208 bombWait =10; //10秒まち 209 //bombP1Add(bPx,bPy,px,pw); 210 bombP2Add(); 211 // bombP2Add(bPx,bPy,px,pw); 212 } 213 return px; 214 } 215 216 void bombP2Add(){ 217 //void bombP2Add(int[] bPx,int[]bPy,int px,int pw){ 218 for(int i=0; i<3; i++){ 219 if ( bPy2[i] == -20){ //未使用の弾を使う 220 bPx2[i] = px2 + (pw2/2)-15; //Pの中心 221 bPy2[i] = 750; 222 break; //一発のみ 223 } 224 } 225 } 226 227 void keyPressed(){ 228 if (key == CODED){ 229 if( (keyCode == LEFT) || (keyCode == RIGHT) ){ 230 keyKeep = keyCode; 231 } 232 } 233} 234 235void keyReleased(){ 236 if (key == CODED){ 237 if( (keyCode == LEFT) || (keyCode == RIGHT) ){ 238 keyKeep = 0; 239 } 240 } 241} 242 243////enemyMove ex,ev,ef 244//if(eA ==1){ 245// enemyAdd(); 246//} 247 248////enemyDisp bPx,bPy 249//if(bEA ==1){ 250// bombEAdd(int (ex[i]), ey[i] ); 251//} 252 253 254

投稿2019/05/06 14:19

noberon

総合スコア17

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

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

0

クライアント側のプログラムがないけれど。

Processing

1 void ToC(){ 2 //全てのデータの送信 3 String msg = ex[0] + " " + ex[1] + " " + ex[2] + " "+ ex[3]+" "+ ex[4]+" "+ ex[5]+" " + ex[6] + " " + ex[7] + " "+ ex[8]+" "+ ex[9]+ 4 ""+ey[0] + " " + ey[1] + " " + ey[2] + " "+ ey[3]+" "+ ey[4]+" "+ ey[5]+" " + ey[6] + " " + ey[7] + " "+ ey[8]+" "+ ey[9]+ 5 6 ""+bEx[0] + " "+bEx[1] + " " + bEx[2]+ " "+bEx[3]+" "+ bEx[4]+" "+bEx[5]+" " + bEx[6] + " " + bEx[7]+ " "+ bEx[8]+" "+ bEx[9]+ 7 ""+bEy[0] + " "+bEy[1] + " " + bEy[2]+ " "+bEy[3]+" "+ bEy[4]+" "+bEy[5]+" " + bEy[6] + " " + bEy[7]+ " "+ bEy[8]+" "+ bEy[9]+ 8 ""+px1+ ""+bPx1[0] + " " +bPx1[1] + " " + bPx1[2] +""+bPy1[0] + " " +bPy1[1] + " " + bPy1[2] +""+scoreS+ " "+scoreC +""+keyy+'\n';

の部分、msg生成の2行目以降の先頭が""になってるけど、きっと" "じゃないか、という気がする。
(その修正だけで動くかどうかはまた別の話)

投稿2019/05/06 08:43

thkana

総合スコア7610

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

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

noberon

2019/05/07 07:18

回答ありがとうございます。その修正による効果はありませんでした。
thkana

2019/05/07 12:08

クライアント側でも似たようなミスをしているのは気付いていますか?
noberon

2019/05/07 12:14

え、そのスペースで通信に問題があるんですか?試してきます。
noberon

2019/05/07 12:29

両方ともスペースを直してみましたが動きませんでした。訂正ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問