小程序砖块(二)利用console.log(e)查看和使用事件传值

写小程序时可以利用console.log(e)来查看传值情况并使用

xxx:function(e){
    console.log(e);
}

然后就可以在调试器中看到传值情况


下面用小程序提供的QuickStart做例子

在index.js的事件处理函数

getUserInfo: function(e) {
    console.log(e)
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  }

进行编译后调试器会出现

此时我们更改上面的事件处理函数

getUserInfo: function(e) {
    // console.log(e)
    console.log(e.currentTarget.offsetTop)
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  }

编译后调试器出现了

这正是我们上面看到的offsetTop的值


总结:

①function(e)传值

②console.log(e)查看事件传的值有哪些

③e.aaa调用值


如例子中:

①getUserInfo: function(e) {
②// console.log(e)
③console.log(e.currentTarget.offsetTop)

好的,以下是一个简单的打砖块游戏的C#窗体应用程序示例: ```csharp using System; using System.Drawing; using System.Windows.Forms; namespace BrickBreakerGame { public partial class Form1 : Form { private int ballX = 245; // 球的初始位置 private int ballY = 280; private int ballSpeedX = 5; // 球的速度 private int ballSpeedY = -5; private int paddleX = 200; // 挡板的初始位置 private int bricksLeft = 30; // 障碍物的初始数量 private bool gameStarted = false; // 游戏是否已开始 public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { timer1.Enabled = true; Cursor.Hide(); // 隐藏鼠标指针 this.FormBorderStyle = FormBorderStyle.None; // 隐藏窗口边框 this.Bounds = Screen.PrimaryScreen.Bounds; // 全屏显示窗口 } private void timer1_Tick(object sender, EventArgs e) { ballX += ballSpeedX; ballY += ballSpeedY; ball.Bounds = new Rectangle(ballX, ballY, 20, 20); paddle.Bounds = new Rectangle(paddleX, 420, 100, 20); if (ball.Bottom >= paddle.Top && ball.Bottom <= paddle.Bottom && ball.Left >= paddle.Left && ball.Right <= paddle.Right) { ballSpeedY *= -1; // 球撞到挡板上 } foreach (Control c in this.Controls) { if (c is PictureBox && c.Tag == "brick") { if (ball.Bounds.IntersectsWith(c.Bounds)) { this.Controls.Remove(c); // 移除碰撞的障碍物 ballSpeedY *= -1; // 球反弹 bricksLeft--; // 减少障碍物数量 } } } if (bricksLeft == 0) { MessageBox.Show("游戏胜利!"); Close(); } if (ball.Left <= 0 || ball.Right >= ClientSize.Width) { ballSpeedX *= -1; // 球碰到左右边缘反弹 } if (ball.Top <= 0) { ballSpeedY *= -1; // 球碰到上边缘反弹 } if (ball.Bottom >= ClientSize.Height) { MessageBox.Show("游戏结束!"); Close(); } if (gameStarted == false) { ball.Left = paddle.Left + (paddle.Width / 2) - (ball.Width / 2); ball.Top = paddle.Top - ball.Height; ballSpeedX = 0; ballSpeedY = 0; if (e is KeyEventArgs && ((KeyEventArgs)e).KeyCode == Keys.Space) { gameStarted = true; ballSpeedX = 5; ballSpeedY = -5; } } } private void Form1_MouseMove(object sender, MouseEventArgs e) { paddleX = e.X - (paddle.Width / 2); // 鼠标移动时改变挡板位置 } } } ``` 在窗体设计器中,添加一个 `PictureBox` 控件并设置 `Tag` 属性为 `"ball"`,用于表示球;添加一个 `PictureBox` 控件并设置 `Tag` 属性为 `"paddle"`,用于表示挡板;添加多个 `PictureBox` 控件并设置 `Tag` 属性为 `"brick"`,用于表示障碍物。同时,将窗体的 `KeyDown` 事件绑定到 `Form1_KeyDown` 方法中,用于在按下空格键后开始游戏。 运行程序后,使用鼠标移动挡板,使球不掉落并击碎所有障碍物即可获胜。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值