动画(一个小球在两个柱子间来回移动)

<style>       
 * {           
  margin: 0;            
 padding: 0;        
 }
      
        .ball {            
        width: 100px;            
        height: 100px;            
        background: red;            
        border-radius: 50%;            
        position: absolute;            
        top: 200px;           
         left: 10px;       
          }
        .warl-l {            
        width: 5px;            
        height: 500px;            
        background: black;            
        position: absolute;            
        left: 5px;        
        }
        .warl-r {            
        width: 5px;            
        height: 500px;            
        background: black;            
        position: absolute;            
        left: 700px;        
        }
            </style>
            </head>
<body>
 <button>开始</button>    
 <div class="warl-l"></div>    
 <div class="ball"></div>    
 <div class="warl-r"></div> 
    
 <script>        
 var o = document.querySelector('.ball');        
 var oWall_r = document.querySelector('.warl-r');        
 var wallLeft = document.querySelector('.warl-l');
        var w = o.offsetWidth;//球的宽度        
        var wL_r = oWall_r.offsetLeft;//右边的宽度        
        var maxLeft = wL_r - w;//往右最大位移距离
        var minLeft = wallLeft.offsetWidth + wallLeft.offsetLeft;//最小左边距
              
        var t;        
        document.querySelector('button').onclick = function () {            
        t = setInterval(move, 10);
        };
        //向右移动       
         function move() {            
         var l = o.offsetLeft;//取出小球的左边距           
          if (l >= maxLeft) {                
          clearInterval(t);                
          setInterval(moveLeft, 10);            
          } else {                
          o.style.left = l + 5 + 'px';           
           }        
           }        
           function moveLeft() {            
           var l = o.offsetLeft;//取出小球的左边距           
            if (l <= minLeft) {                
            clearInterval(t);                
            setInterval(move, 10);           
             } else {                
             o.style.left = l - 5 + 'px';            
             }       
              }
    </script>
    </body>
使用easyx库实现分屏控制两个小球移动,可以通过以下步骤来完成: 1. **初始化图形窗口**:使用`initgraph`函数初始化图形窗口,并设置窗口大小。 2. **定义小球结构体**:定义一个结构体来存储小球的位置、速度和颜色等信息。 3. **绘制小球**:编写一个函数来绘制小球。 4. **更新小球位置**:编写一个函数来更新小球的位置。 5. **处理键盘输入**:编写一个函数来处理键盘输入,控制小球移动。 6. **分屏显示**:将窗口分成两个部分,分别显示两个小球。 以下是一个简单的示例代码: ```cpp #include <graphics.h> #include <conio.h> // 定义小球结构体 struct Ball { int x, y; int vx, vy; COLORREF color; }; // 绘制小球 void drawBall(Ball ball) { setfillcolor(ball.color); solidcircle(ball.x, ball.y, 20); } // 更新小球位置 void updateBall(Ball &ball) { ball.x += ball.vx; ball.y += ball.vy; } // 处理键盘输入 void handleInput(Ball &ball1, Ball &ball2) { if (_kbhit()) { char ch = _getch(); switch (ch) { case 'w': ball1.y -= ball1.vy; break; case 's': ball1.y += ball1.vy; break; case 'a': ball1.x -= ball1.vx; break; case 'd': ball1.x += ball1.vx; break; case 'i': ball2.y -= ball2.vy; break; case 'k': ball2.y += ball2.vy; break; case 'j': ball2.x -= ball2.vx; break; case 'l': ball2.x += ball2.vx; break; } } } int main() { // 初始化图形窗口 initgraph(800, 600); // 定义两个小球 Ball ball1 = {100, 300, 5, 5, RED}; Ball ball2 = {700, 300, 5, 5, BLUE}; while (true) { // 清屏 cleardevice(); // 处理键盘输入 handleInput(ball1, ball2); // 更新小球位置 updateBall(ball1); updateBall(ball2); // 绘制小球 drawBall(ball1); drawBall(ball2); // 分屏显示 line(400, 0, 400, 600); // 延时 Sleep(10); } // 关闭图形窗口 closegraph(); return 0; } ``` 这个示例代码展示了如何使用easyx库实现分屏控制两个小球移动。窗口被分成两个部分,分别显示两个小球。用户可以使用键盘上的`w`, `a`, `s`, `d`键控制第一个小球移动,使用`i`, `j`, `k`, `l`键控制第二个小球移动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值