这次我们来基于 SmallGameLib构建一个最简单的游戏DEMO。
我们把它叫做walkMan,基本功能就是 玩家可以控制一个角色在屏幕上 上下左右 四个方向行走。
截图如下:
下面一步步来构建我们的DEMO:
我们先建立工程,导入SmallGameLib源码。(为何不以dll的形式发布?因为代码实在没多少,所以我们以源码形式发布更加方便)
修改Config/GameStatus.cs 我们此游戏只有一个状态,修改如下:
namespace GDE.SmallGameLib
{
public enum GameStatus
{
游戏中,
}
}
将图片 map.jpg man.jpg添加到 resource/image/下
然后构建我们的角色类,在Logic下新建 Man.cs,引用 GDE.SmallGameLib,构造我们的主角,派生自BaseObj,并实现其四个方向行走的逻辑:
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using GDE.SmallGameLib;
namespace example1.Logic
{
public enum ManDirection
{
上,下,左,右,停
}
public class Man : BaseObj
{
static public ManDirection direction = ManDirection.停;
public Man()
{
setImage("man.png");
H = 80;
W = 60;
}
public override void logic()
{
switch (direction)
{
case ManDirection.上:
Y-=5;
break;
case ManDirection.下:
Y+=5;
break;
case ManDirection.左:
X-=5;
break;
case ManDirection.右:
X+=5;
break;
}
if (X < 0) X = 0;
if (X + W > Config.ScreenW) X = Config.ScreenW - W;
if (Y < 0) Y = 0;
if (Y + H > Config.ScreenH) Y = Config.ScreenH - H;
}
}
}
然后构建我们的层类,在Logic目录下新建 Layer.cs,引用GDE.SmallGameLib,构建我们的主层。该层中只有一个角色,就是我们的主角:
using GDE.SmallGameLib;
namespace example1.Logic
{
public class Layer : BaseLayer
{
public Layer()
{
AddObj(new Man());
}
}
}
构建我们的引擎核心类,在Logic下新建 walkMan.cs
using GDE.SmallGameLib;
namespace example1.Logic
{
public class walkMan : GameEngine
{
public walkMan(UserControl mainPage, Canvas rootCanvas, GameStatus startStatus) :
base(mainPage, rootCanvas, startStatus)
{
}
protected override void TickGameFrameLoop(object sender, EventArgs e)
{
layersLogic();
}
}
}
然后在我们的MainPage下启动该引擎,并编写按键处理相关程序:
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
walkMan gameCore = new walkMan(this, RootCanvas, GameStatus.游戏中);
gameCore.AddLayer(new Layer(), 0);
GameEngine.LoopStart();
}
private void MainPage_KeyUp(object sender, KeyEventArgs e)
{
//Man.direction = ManDirection.停;
}
private void MainPage_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
switch (e.Key)
{
case Key.Left:
Man.direction = ManDirection.左;
break;
case Key.Right:
Man.direction = ManDirection.右;
break;
case Key.Up:
Man.direction = ManDirection.上;
break;
case Key.Down:
Man.direction = ManDirection.下;
break;
}
}
}
在MainPage.xaml中指定按键处理函数及游戏背景图片,并设置根画布
<UserControl x:Class="example1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400" KeyDown="MainPage_KeyDown" KeyUp="MainPage_KeyUp">
<Canvas x:Name="RootCanvas">
<Image Height="300" Source="Resource/Image/map.jpg" Stretch="Fill" Width="400" Canvas.ZIndex="-1"/>
</Canvas>
</UserControl>
整个DEMO就完成了~
用户可以通过上下左右来操作角色移动,角色在碰到四周的时候将不能继续移动。是不是很简单?
分享到:
相关推荐
【ASP.NET源码——Silverlight 2.0 功能展示Demo源码】 此压缩包包含的是一个基于ASP.NET技术的Silverlight 2.0功能演示项目。Silverlight是微软推出的一种浏览器插件,用于创建丰富的、交互式的网络应用程序,与...
Silverlight 5 开发工具包- 中文
【标题】"SilverlightDemo"揭示的是一个基于微软Silverlight技术的应用实例,它展示了Silverlight在构建富互联网应用程序(RIA)中的强大功能。Silverlight,作为一款轻量级的插件,旨在为Web提供丰富的媒体体验和...
这个"silverlight学习demo实例"集合是为初学者和开发者提供的一个实践平台,帮助他们更好地理解和掌握Silverlight的核心功能和应用。 首先,我们来看"DemoAnimation"。这个子目录很可能是关于Silverlight动画的示例...
《Silverlight网络游戏飞行岛2.0源码》是一款基于Microsoft Silverlight技术开发的网络游戏,它展示了Silverlight在游戏...对于想要涉足网络游戏开发,尤其是Silverlight领域的开发者来说,这是一个宝贵的实践案例。
在本文中,我们将深入探讨Silverlight中的自定义DataGrid实现,以及如何利用Grid控件来构建这样一个功能。Silverlight是一种由Microsoft开发的富互联网应用程序(RIA)平台,它允许开发者创建交互性强、视觉效果丰富...
总的来说,这个源码实例提供了一个将ASP.NET和Silverlight结合应用于娱乐应用的实例,对于提升开发者在Web游戏开发领域的技能和经验具有很大价值。通过分析和重构源码,你可以深化对这两种技术的理解,并能将其应用...
Silverlight是微软开发的一个跨浏览器、跨平台的插件,用于在Web上创建和展示富媒体内容。Silverlight 4作为其第四个主要版本,增加了许多新功能,如桌面拖放支持、打印功能、改进的文本渲染、更强大的数据绑定以及...
在本文中,我们将深入探讨Silverlight中的一个关键特性——DataTemplate,以及如何利用它来创建一个可切换视图的功能。DataTemplate是Silverlight界面设计中的重要工具,它允许开发者定义数据对象如何在UI中呈现。在...
本篇文章将深入探讨一个基于Silverlight 3平台的在线绘图Demo——"Silverlight SharpDraw",揭示其核心技术和实现方式。 Silverlight是微软推出的一款跨浏览器、跨平台的插件,用于创建和展示丰富的交互式媒体和...
【ASP.NET源码——[影音娱乐]Silverlight打苍蝇游戏.zip】是一个包含ASP.NET源代码的压缩包,主要用于创建一款基于Silverlight技术的在线打苍蝇游戏。在这个项目中,开发者利用了ASP.NET框架的强大功能,结合...
总之,Silverlight视频聊天Demo是一个综合性的学习资源,它涵盖了媒体处理、网络通信、用户交互等多个方面。对于初学者来说,通过研究这个Demo,不仅可以了解Silverlight的基础用法,还能深入理解实时音视频聊天应用...
它作为一个插件,可以在主流浏览器上运行,提供跨平台、跨浏览器的支持,旨在增强网页的视觉效果和功能。 **技术背景与发展历程** 在2007年,微软首次推出了Silverlight,作为与Adobe Flash竞争的产品。随着互联网...
Farseer Physics Engine则是一个物理模拟引擎,常用于2D和3D游戏开发中,它可以模拟现实世界的物理现象,如重力、碰撞检测和刚体动力学。在Silverlight游戏中,Farseer能帮助创建更真实的游戏环境,增加游戏的互动性...
使用《SilverLight 4 RIA开发全程解析》所阐述的在线业务的新特性,您可以创建一个与传统的基于ASP.NET的网站相比响应速度大为提高的Web应用程序。为了了解这些新特性以及改进的Silverlight工具包,我们在每一章中都...
【总结】:"ASP.NET源码——[影音娱乐]Silverlight实现的MoveBox游戏.zip"提供了一个实践性的学习案例,涵盖了ASP.NET后端开发和Silverlight前端技术。通过研究这个项目,开发者可以增进对这两项技术的掌握,为未来...
《SL图文教程:Silverlight网页游戏开发》是一份详尽的教学资源,专为初学者设计,旨在引导没有SL(Silverlight)基础的人进入这个富媒体技术的世界。Silverlight是微软推出的一种强大的网络应用程序开发框架,尤其...