用signalr做一个单机游戏

1.定义一个signalr类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;

namespace Signalr
{
    public class MyGame : Hub
    {
        public void Move(int  dir,int  x,int  y)
        {
            Clients.Others.move(dir,x,y);
        }

        public void Stop(int dir)
        {
            Clients.Others.stop(dir);
        }
    }
}

2.前台实现:

@{
    ViewBag.Title = "Home Page";
}


<script src="~/Scripts/jquery-3.3.1.js"></script>

<script src="~/Scripts/jquery.signalR-2.2.2.js"></script>

<script src="/signalr/hubs"></script>
 
<style>
    #payer {
    position:absolute;
    
    }
    
</style>

<script>
    var   user=null;
    var  payer=null;
    var   userStyle=null;

     //服务器连接
    var   myGame=$.connection.myGame;
    //调用方法
    myGame.client.move=function(dir,x,y){
      user.key=dir;
      user.x=x;
      user.y=y;
     show();
    };
    myGame.client.stop=function(dir){
    
    };
       
    $.connection.hub.start().done(function(){
     
        user={
           x:10,
           y:10,
           key:0
         };
    userStyle={
     imgIdx:0,
     width:parseInt(500/2),
     height:parseInt(599/3)
    };
      payer= $("#payer").css({"width":userStyle.width+"px","height":userStyle.height+"px"}).css({"background":"url('/img/parsion.jpg')"});
      $(document).keydown(function(event){
          
       switch(event.key)
      {
        case    's': 
         user.y+=3;
         user.key=0;
         break;
        case    'a':
         user.x-=5;
         user.key=3;
         break;
        case    'd':
         user.x+=5;
         user.key=2;
         break;
        case    'w':
         user.y-=3;
         user.key=1;
         break;
    
       }
       show();
     myGame.server.move(user.key,user.x,user.y);
    });
    
    }).fail(function(){
    
    
    });
    function  show(){
     userStyle.imgIdx++;
      if(userStyle.imgIdx==4)
      userStyle.imgIdx=0;
      payer.css("background-position",userStyle.imgIdx*userStyle.width+"px   "+user.key*userStyle.height+"px   ").css({"left":user.x+"px","top":user.y})
    }
</script>
<div id="payer">

  
</div>

实现效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你的美,让我痴迷

你的好,我会永远记住你的。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值