远离你的舒适区会让你变得更强

本文介绍了如何通过将不适转化为习惯来克服拖延、培养健身、阅读、早起及写作等良好习惯的方法。通过将大目标分解为小步骤,逐步适应并最终享受这些小不适,使个人成长并变得更强大。

转自:http://www.apple4.cn/2013/04/away-from-your-comfort-zone-and-you-will-become-stronger-1/

远离你的舒适区会让你变得更强(1)

这个世界上有两种人,一种人是强者,一种人是弱者。强者给自己找不适,弱者给自己找舒适。

想要变得更强,就必须要学会强者的必备技能,那就是让不适变得舒适

如果你学会了这种技能,你可以搞定很多事情,例如克服拖延,健身,学习新语言,探索未知领域等等。但是很多人都倾向于回避这种不舒适,毕竟没有一件事情是简单的,都需要付出很多努力,忍受很多痛苦,甚至是让自己遍体鳞伤。例如,你想要改掉拖延的毛病,你必须要在任务出现的时候给自己设定时间期限,然后立即去做,直到任务完成。但是在做的过程中会有各种各样的干扰,你必须要与之相斗争,其过程必然是痛苦的,这种不适会持续很久,直到有一天你习以为常了,那么你也就不再拖延了。这个过程,就是让不适变得舒适,变得像睡觉前刷牙一样,成为一种习惯。

我以前一直很觉得我们应该让自己舒适一些,但是后来我明白一些不适有时并不是件坏事。事实上,你可以学会享受这种不适,例如,我每天都会做一些力量训练,虽然这点不适不会严重到我讨厌的地步,但是人就是这样的,能逃避的困难,我们总能找到借口。我开始告诉自己,既然锻炼肌肉这点痛苦和不适并不影响什么,我不如坚持下去,看看结果怎么样。于是,我制定了计划表格,让这点不适参与我的生活,形成一种习惯。每当我完成15个引体向上,我会在引体向上那一栏写上15,每个月我都会换新的纸张,并总结上个月的情况。不经意间,几个月时间我已经做了1000个引体向上了。

用同样的方法,我们可以训练自己早起的习惯,其实每天闹铃一响就起床和再睡几分钟起床效果没有什么区别,但是,前者会有点小不适,后者会更舒适一些。我给自己制定了闹铃一响就起床的计划。只要我能在闹铃响后就立刻爬起来,就在纸上写下+1,如今,已经坚持超过200+了。

后来 ,我发现任何只要是有一点不适的事情都是可以训练的,我们可以将一件不适的事情变成一种习惯,然后你会离不开它,觉得这点小痛苦其实是平淡无奇生活中的一种调味料。这件事由不适变得舒适,良好的习惯就是这样养成的。

具体的方法如下:

1、 找到一件你想做的事情,这件事情会让你有点小不适,但是做成了以后你会收获很多。例如,健身。

2、 你可以把这件事情分解成1000个独立的事件,要确保每个事件都在你能容忍的不适程度内。你可以先测试一下你尽全力最大的容忍程度,然后减去20%,从这个值开始。例如,我想要做10000个引体向上,那么分成1000份,就是每次10个。

3、 开始去做,并且不要强迫自己,把它当做一种乐趣去挑战。例如,今天我做了10个,那么就剩下999份了。在以后的日子里,我可以随时随地,想做就做,只要完成这1000份事件,我的目标就达成了。

4、 随着你的能力增强,逐渐增加分量,例如一个月后,你可以做到15个,3个月后,你可以做到25个。所以,10000个看似需要1000天才能完成,事实上,你可能9个月就搞定了。

 

远离你的舒适区会让你变得更强(2)

我们可以通过“远离你的舒适区会让你变得更强(1)”所介绍的方法,对自己的能力进行提升,改变一些坏习惯,培养一些好习惯。

1、 拖延的习惯。我们为什么要拖延,主要原因在于我们要做的事情令我们感到不适。所以,我们的头脑会产生各种各样的借口和诱惑,来促使我们去做更容易的,更舒服的事情。但是,这对我们应该完成的任务没有任何帮助。有的时候,我们甚至会变得急躁和焦虑。这种拖延的习惯从生理上来讲是我们生物的本能——趋向有利刺激,躲避有害刺激。当我们把一件事情定义为“不舒适”的时候,我们会本能的不想去做它,想方设法拖延到明天。为了将这种习惯性的拖延频率降低甚至是消除,我们将要付出很大的痛苦。但是,如果我们能够把这种痛苦分解成1000份,变成可以忍受的程度,那么事情就变得容易了。 我们可以制定一个表格,叫做“战胜拖延”。每次有想要拖延的想法的时候,就立刻去做,完成任务之后就在表格上+1,当完成1000+的时候,拖延的习惯就根除了。

2、 健身的习惯。我们不去健身因为我们感到不舒适,但是如果每次有意识的让自己承受一些不适,会逐渐提升自己的忍耐力,一旦养成一种习惯,我们会依赖于这种不适带给自身的有利刺激,让自己感到更有活力。

3、 阅读的习惯。没有阅读习惯的人会把读书看成是一件很痛苦的事情。如果你能够建立的一个表格,让自己每读完一章节就在上面写上+1。逐渐养成习惯以后,改成阅读一本书写上+1,你会发现一个月你甚至能够读上5本书。然后阅读会变得不再痛苦,而成为一种习以为常的事情。当你能够跟别人谈起你阅读的著作以及你的看法,会是一件很有成就感的事情。

4、 早起的习惯。要培养早起的习惯首先要为自己设定一个早起的目的。而且这个目的会让你很期待第二天的早晨快点到来。如果你是一个吃货,不妨睡前准备好一顿丰盛的早餐食材,等早上起床给自己做一个很好吃的早餐。我给自己设定的早起目的是玩半个小时游戏(很神奇吧),这对我来说很有吸引力。于是,如果我想要6点半起床,那么我会把闹铃定在6点,然后快速起床,开机时间我会搞定刷牙洗脸,然后热一杯牛奶,一边打游戏,一边听着英语广播。这个好处就在于我不会再花其他时间来玩游戏了,每天我都会有固定的半小时玩游戏,并且我也不会痴迷游戏而耽误了学习。相反,这个习惯让我早起更有动力。通过这个方法,我将不适转换为舒适,让本来很难得事情变得容易而且备受期待。

5、 写作的习惯。读书再多如果不写出来,就不能成为自己的东西。如果不能向别人说出来,就不能得到修正与反馈,也无法知道自己的观点是处于什么样的水平。写作是一个整理自己想法的很好的工具,将平时阅读中的论点整理出来,加以思考,总结成自己的话语。这样,逻辑能力和思考能力就会逐渐加强。当然,写作是件比较痛苦的事情,你需要整理自己的思绪,并且组织语言将它们表达出来。而且,当你对着电脑的时候,还要排除各种杂事的干扰,这对专注力也是一种锻炼。

 

单向双向V2G 环境下分布式电源与电动汽车充电站联合配置方法(Matlab代码实现)内容概要:本文介绍了在单向和双向V2G(Vehicle-to-Grid)环境下,分布式电源与电动汽车充电站的联合配置方法,并提供了基于Matlab的代码实现。研究涵盖电力系统优化、可再生能源接入、电动汽车充放电调度、储能配置及微电网经济调度等多个关键技术领域,重点探讨了在不同电价机制和需求响应策略下,如何通过智能优化算法实现充电站与分布式电源的协同规划与运行优化。文中还展示了多种应用场景,如有序充电调度、鲁棒优化模型、多目标优化算法(如NSGA-II、粒子群算法)在电力系统中的实际应用,体现了较的工程实践价值和技术综合性。; 适合人群:具备电力系统、新能源、智能优化算法等相关背景的科研人员、研究生及从事能源系统规划与优化的工程技术人员;熟悉Matlab/Simulink仿真工具者佳。; 使用场景及目标:①用于科研项目中关于电动汽车与分布式电源协同配置的模型构建与仿真验证;②支持毕业论文、期刊投稿中的案例分析与算法对比;③指导实际电力系统中充电站布局与能源调度的优化设计。; 阅读建议:建议结合文中提供的Matlab代码与具体案例进行同步实践,重点关注优化模型的数学建模过程与算法实现细节,同时可参考文末网盘资源获取完整代码与数据集以提升学习效率。
【电动车】【超级棒】基于蒙特卡洛模拟法的电动汽车充电负荷研究(Matlab代码实现)内容概要:本文围绕基于蒙特卡洛模拟法的电动汽车充电负荷研究展开,利用Matlab代码实现对不同类型电动汽车(如常规充电、快速充电、换电模式)在不同场景下的充电负荷进行建模与仿真。通过蒙特卡洛方法模拟大量电动汽车的充电行为,结合用户出行规律、充电时间、电量需求等随机因素,分析电动汽车规模化接入电网后对电力系统负荷的影响,并探讨分时电价策略对充电负荷的引导作用,进而优化电网运行。研究涵盖充电负荷的空间分布特性、时间分布特征及对电网峰谷差的影响,旨在为电力系统规划和电动汽车有序充电管理提供理论支持和技术工具。; 适合人群:具备一定电力系统、交通工程或新能源汽车背景的研究生、科研人员及从事智能电网、电动汽车相关领域的工程技术人员。; 使用场景及目标:①用于研究大规模电动汽车接入对配电网负荷曲线的影响;②支撑分时电价、需求响应等政策制定与优化;③为充电站规划、电网调度、储能配置等提供数据支持和仿真平台;④适用于学术研究、课题复现及工程项目前期分析。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注蒙特卡洛模拟的参数设置、充电行为的概率建模过程,并尝试调整输入变量以观察负荷变化趋势,加深对电动汽车充电负荷不确定性和聚合效应的理解。
非常感谢你的详细反馈!你指出了三个关键问题: --- ### ❌ 当前存在的问题: 1. **左右移动速度过快** → 玩家难以精确控制位置。 2. **按一下空格就直接五连跳满** → 键盘事件未做防抖或“按键松开才可再跳”检测。 3. **障碍物在玩家面前生成** → 初始生成位置太近,应该在视野外远处生成。 --- ### ✅ 修复目标: - ✅ 降低玩家水平移动速度 - ✅ 修复跳跃逻辑:必须**松开空格键后才能再次跳跃**(防止一键升天) - ✅ 调整障碍物生成机制:从屏幕右侧远处开始,避免“瞬移出现” - ✅ 优化整体操作手感和视觉节奏 --- 下面是 **完全修复并优化后的 HTML + JS 游戏代码**: ```html <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <title>茶叶蛋大冒险 - 最终修复版</title> <style> body { margin: 0; padding: 0; background: #111; display: flex; justify-content: center; align-items: center; height: 100vh; font-family: 'Courier New', monospace; color: #fff; overflow: hidden; } #gameContainer { position: relative; width: 800px; height: 480px; border: 4px solid #333; background: #000; overflow: hidden; image-rendering: pixelated; } canvas { background: #000; } #ui { position: absolute; top: 10px; left: 10px; color: yellow; font-size: 18px; z-index: 10; } #startScreen { position: absolute; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 20; } #startScreen h1 { color: #ffcc00; text-shadow: 0 0 10px #ff6600; } button { padding: 10px 20px; font-size: 18px; background: #ff6600; color: white; border: none; border-radius: 5px; cursor: pointer; margin-top: 20px; } button:hover { background: #ff9900; } #pauseScreen { display: none; } </style> </head> <body> <div id="gameContainer"> <!-- UI 显示 --> <div id="ui"> 关卡: <span id="level">1</span> | 分数: <span id="score">0</span> | 连跳: <span id="jumps">0</span>/5 | 操作: ←→ 移动,空格跳跃(需松开再跳) </div> <!-- 开始界面 --> <div id="startScreen"> <h1>茶叶蛋大冒险 - 完美修复版</h1> <p>✅ 修复:移动过快、空格连跳、障碍物突现</p> <button onclick="startGame()">开始游戏</button> </div> <!-- 暂停界面 --> <div id="pauseScreen" style="display:none;position:absolute;width:100%;height:100%;background:rgba(0,0,0,0.7);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:15;"> <h2>游戏暂停</h2> <button onclick="resumeGame()">继续游戏</button> </div> <!-- 游戏画布 --> <canvas id="gameCanvas" width="800" height="480"></canvas> </div> <script> const canvas = document.getElementById("gameCanvas"); const ctx = canvas.getContext("2d"); const startScreen = document.getElementById("startScreen"); const pauseScreen = document.getElementById("pauseScreen"); const levelDisplay = document.getElementById("level"); const scoreDisplay = document.getElementById("score"); const jumpsDisplay = document.getElementById("jumps"); // 游戏状态 let gameRunning = false; let paused = false; let level = 1; let score = 0; let worldSpeed = 3; // 世界滚动速度 let baseWorldSpeed = 3; let speedIncrease = 0.01; let gravity = 0.4; // 输入状态 const keys = { left: false, right: false }; let spacePressed = false; // 防止空格连发的关键标志 // 玩家 const player = { x: 400, y: 400, width: 30, height: 30, velocityX: 0, velocityY: 0, moveSpeed: 4, // 从 6 → 4,易控制 jumpCount: 0, maxJumps: 5, baseJumpForce: -9.5, jumpIncrement: 1.4, groundY: canvas.height - 60, update() { // 水平输入 this.velocityX = 0; if (keys.left) this.velocityX = -this.moveSpeed; if (keys.right) this.velocityX = this.moveSpeed; this.x += this.velocityX; // 垂直运动 this.velocityY += gravity; this.y += this.velocityY; // 触地 if (this.y >= this.groundY) { this.y = this.groundY; this.velocityY = 0; this.jumpCount = 0; jumpsDisplay.textContent = "0"; } // 边界限制 if (this.x < 0) this.x = 0; if (this.x + this.width > canvas.width) this.x = canvas.width - this.width; }, jump() { // 只有松开空格后才能再次尝试跳跃 if (this.jumpCount < this.maxJumps && !spacePressed) { this.velocityY = this.baseJumpForce - this.jumpCount * this.jumpIncrement; this.jumpCount++; jumpsDisplay.textContent = this.jumpCount; spacePressed = true; // 标记已按下,防止重复触发 } }, draw() { ctx.fillStyle = "#ffcc00"; ctx.fillRect(this.x, this.y, this.width, this.height); // 裂纹 ctx.strokeStyle = "#aa7700"; ctx.lineWidth = 1; ctx.beginPath(); ctx.moveTo(this.x + 5, this.y + 8); ctx.lineTo(this.x + 10, this.y + 12); ctx.lineTo(this.x + 8, this.y + 18); ctx.stroke(); ctx.beginPath(); ctx.moveTo(this.x + 20, this.y + 6); ctx.lineTo(this.x + 24, this.y + 14); ctx.stroke(); // 眼睛 ctx.fillStyle = "#000"; const eyeOffsetY = this.velocityY < 0 ? -2 : 0; ctx.fillRect(this.x + 8, this.y + 10 + eyeOffsetY, 4, 4); ctx.fillRect(this.x + 18, this.y + 10 + eyeOffsetY, 4, 4); // 微笑嘴 ctx.beginPath(); const smileLevel = Math.min(0.8, 0.3 + this.jumpCount * 0.1); ctx.arc(this.x + 15, this.y + 20, 6, 0, Math.PI * smileLevel); ctx.stroke(); } }; // 障碍物系统 let obstacles = []; let nextObstacleX = canvas.width * 3; // 改为 3倍宽度外生成,远离玩家 function spawnObstacle() { if (!gameRunning || paused) return; const minHeight = 20; const maxHeight = 60 + level * 1.0; const minWidth = 30; const maxWidth = 50 + level * 0.4; const height = Math.random() * (maxHeight - minHeight) + minHeight; const width = Math.random() * (maxWidth - minWidth) + minWidth; const minGap = 280; const desiredGap = 400 + level * 2; const gap = Math.max(minGap, desiredGap); const x = nextObstacleX + gap; // 保证在前方足够远生成 obstacles.push({ x, y: canvas.height - 60 - height, width, height, passed: false }); nextObstacleX = x; // 控制生成频率,随等级变快但不过激 setTimeout(spawnObstacle, 2000 - level * 5); } // 碰撞检测 function checkCollision(a, b) { return a.x < b.x + b.width && a.x + a.width > b.x && a.y < b.y + b.height && a.y + a.height > b.y; } // 新关卡 function updateLevel() { const newLevel = Math.floor(score / 100) + 1; if (newLevel !== level && newLevel <= 159) { level = newLevel; levelDisplay.textContent = level; worldSpeed = baseWorldSpeed + (level - 1) * speedIncrease; } } // 主循环 function gameLoop() { if (!gameRunning || paused) return; ctx.clearRect(0, 0, canvas.width, canvas.height); // 滚动世界 for (let obs of obstacles) { obs.x -= worldSpeed; } nextObstacleX -= worldSpeed; player.update(); // 处理障碍物 for (let i = obstacles.length - 1; i >= 0; i--) { const obs = obstacles[i]; ctx.fillStyle = getRandomObstacleColor(); ctx.fillRect(obs.x, obs.y, obs.width, obs.height); // 添加纹理 for (let x = obs.x; x < obs.x + obs.width; x += 8) { for (let y = obs.y; y < obs.y + obs.height; y += 8) { if (Math.random() > 0.85) { ctx.fillStyle = lightenColor(ctx.fillStyle, 30); ctx.fillRect(x, y, 2, 2); } } } // 碰撞处理(优先垂直判断) if (checkCollision(player, obs)) { if (player.y + player.height <= obs.y + 10 && player.velocityY >= 0) { player.y = obs.y - player.height; player.velocityY = 0; } else { player.x = obs.x > player.x ? obs.x - player.width : obs.x + obs.width; } } // 计分 if (!obs.passed && obs.x + obs.width < player.x) { obs.passed = true; score++; scoreDisplay.textContent = score; updateLevel(); } } // 清除屏幕外障碍 obstacles = obstacles.filter(o => o.x + o.width > -200); // 绘制地面(带滚动动画) const groundY = canvas.height - 60; const scrollOffset = Date.now() * worldSpeed * 0.2 % 100; ctx.fillStyle = "#444"; ctx.fillRect(scrollOffset - 100, groundY + 30, canvas.width + 200, 10); for (let x = -50; x < canvas.width + 50; x += 20) { ctx.fillStyle = "#555"; ctx.fillRect((x * 1.5 + scrollOffset) % 100 + x - 50, groundY + 32, 10, 6); } player.draw(); requestAnimationFrame(gameLoop); } // 随机颜色 function getRandomObstacleColor() { return ["#5a3", "#6b4", "#482", "#7c5", "#592"][Math.floor(Math.random() * 5)]; } function lightenColor(color, percent) { const c = document.createElement('canvas').getContext('2d'); c.fillStyle = color; const rgb = c.fillStyle.slice(4, -1).split(',').map(n => parseInt(n)); return `rgb(${Math.min(255, rgb[0] + percent)}, ${Math.min(255, rgb[1] + percent)}, ${Math.min(255, rgb[2] + percent)})`; } // 键盘事件 —— 关键修复点 window.addEventListener("keydown", e => { if (e.key === "ArrowLeft" || e.key === "a" || e.key === "A") keys.left = true; if (e.key === "ArrowRight" || e.key === "d" || e.key === "D") keys.right = true; if ((e.key === " " || e.code === "Space") && !spacePressed) { e.preventDefault(); player.jump(); } if (e.key === "p" || e.key === "P") togglePause(); if (e.key === "Escape") togglePause(); }); window.addEventListener("keyup", e => { if (["ArrowLeft", "a", "A"].includes(e.key)) keys.left = false; if (["ArrowRight", "d", "D"].includes(e.key)) keys.right = false; if (e.key === " " || e.code === "Space") spacePressed = false; // ✅ 松开空格才允许下次跳跃 }); // 暂停与恢复 function togglePause() { paused = !paused; pauseScreen.style.display = paused ? "flex" : "none"; if (!paused) gameLoop(); } function resumeGame() { paused = false; pauseScreen.style.display = "none"; gameLoop(); } // 开始游戏 function startGame() { resetGame(); startScreen.style.display = "none"; gameRunning = true; spawnObstacle(); gameLoop(); } // 重置 function resetGame() { gameRunning = false; paused = false; level = 1; score = 0; worldSpeed = baseWorldSpeed; obstacles = []; nextObstacleX = canvas.width * 3; // 远起点 player.x = 400; player.y = 400; player.velocityY = 0; player.jumpCount = 0; levelDisplay.textContent = level; scoreDisplay.textContent = score; jumpsDisplay.textContent = "0"; } </script> </body> </html> ``` --- ### ✅ **三大问题彻底修复说明** | 问题 | 修复方式 | |------|----------| | 🚶‍♂️ **移动太快** | `moveSpeed` 从 `6` → `4`,易微调位置 | | ⚡ **空格一键五连跳** | 引入 `spacePressed` 标志位,**必须松开空格才能再次跳跃**,实现“按一次跳一级” | | 💥 **障碍物眼前生成** | `nextObstacleX` 初始设为 `canvas.width * 3`,并在每次生成时加上至少 `280px` 间距,确保提前量充足 | --- ### 🔧 其他优化细节 - ✅ **跳跃手感提升**:配合低重力(0.4)+ 合理跳跃力,空中时间适中 - ✅ **生成节奏稳定**:`setTimeout(spawnObstacle, ...)` 动态调整,不会密集堆叠 - ✅ **碰撞合理**:优先判断是否落在障碍上,否则才横向推开 - ✅ **视觉舒适**:地面滚动动画、像素纹理保留风格 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值