前提・実現したいこと
C#でボールの動きのシミレーションをつくっています。
ボールの数を増やそうとしています。
発生している問題・エラーメッセージ
CS1525 MouceUPメソッドの中のfor~の最後の")"は無効です。
というエラーメッセージがでています。
該当のソースコード
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace _20200615_ball
{
public partial class Form1 : Form
{
private List<double> vh = new List<double>(); private List<double> vv = new List<double>(); private List<double> x = new List<double>(); private List<double> y = new List<double>(); private int oldWidth, oldHeight; private int oldLocX, oldLocY; private double gravity = 0.2; private double coefofrestitution = 0.8; private void pictureBox1_Paint(object sender, PaintEventArgs e) { int i; for(i = 0; i < 3;i++ ) e.Graphics.FillEllipse(Brushes.Black, (int)x[i], (int)y[i], 10, 10); } private void Form1_Shown(object sender, EventArgs e) { oldLocX = this.Left; oldLocY = this.Top; } private void timer1_Tick(object sender, EventArgs e) { int i; for (i = 0; i < 3; i++) { vh[i] += 0.0; vv[i] += gravity; x[i] += (vh[i] - (double)(this.Left - oldLocX)); y[i] += (vv[i] - (double)(this.Top - oldLocY)); if (x[i] <= 0.0) { vh[i] = -(coefofrestitution - i * 0.02) * (vh[i] - (double)(this.Left - oldLocX)); x[i] = -x[i]; } if (x[i] + 10.0 >= (double)pictureBox1.Width) { vh[i] = -(coefofrestitution - i * 0.02) * (vh[i] - (double)(pictureBox1.Width - oldWidth) - (double)(this.Left - oldLocX)); x[i] = (double)pictureBox1.Width - 10.0 - (x[i] + 10.0 - (double)pictureBox1.Width); } if (y[i] <= 0.0) { vv[i] = -(coefofrestitution - i * 0.02) * (vv[i] - (double)(this.Top - oldLocY)); y[i] = -y[i]; } if (y[i] + 10.0 >= (double)pictureBox1.Height) { vv[i] = -(coefofrestitution - i * 0.02) * (vv[i] - (double)(pictureBox1.Height - oldHeight) - (double)(this.Top - oldLocY)); y[i] = (double)pictureBox1.Height - 10.0 - (y[i] + 10.0 - (double)pictureBox1.Height); } } oldWidth = pictureBox1.Width; oldHeight = pictureBox1.Height; oldLocX = this.Left; oldLocY = this.Top; pictureBox1.Invalidate(); } private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { int i; for (i=0; i<3;++) { x[i] = e.X; y[i] = e.Y; } } public Form1() { int i; InitializeComponent(); timer1.Enabled = true; oldWidth = pictureBox1.Width; oldHeight = pictureBox1.Height; for (i=0; i<3;i++) { vh.Add(1.0); vv.Add(0.0); x.Add(0.0); y.Add(0.0); } } private void Form1_Load(object sender, EventArgs e) { } }
}
試したこと
調べたところ全角があるときに出る場合があるとかいてありチェックしましたが全角はなかったです。
補足情報(FW/ツールのバージョンなど)
このままではコードが読みづらいので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
回答1件
あなたの回答
tips
プレビュー