c# 游戏设计:地图移动

最新推荐文章于 2023-09-26 12:13:39 发布

健忘的松鼠 于 2022-03-12 22:48:19 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

想实现一个小游戏,先做地图移动。步骤记录如下:

1、百度到一张大的迷宫地图,放在项目的debug目录下,备用。

2、创建一个winform项目,不添加任何界面元素。

3、添加数据成员如下:

PictureBox pictureBox1;

Bitmap myBitmap;

Bitmap currBitmap;

Point mypoint;

分别用于显示图片、存储地图,存储界面上的地图,界面上的地图显示的左上角坐标。

4、设置窗体启动后最大化

public Form1()

{

InitializeComponent();

this.WindowState = FormWindowState.Maximized;

}

5、窗口启动后添加图片和做其他各种预备工作。

private void Form1_Shown(object sender, EventArgs e)

{

this.MaximumSize = this.Size;

this.MinimumSize = this.Size;

pictureBox1 = new PictureBox();

pictureBox1.Location = new System.Drawing.Point(0, 0);

pictureBox1.Size = this.Size;

this.Controls.Add(pictureBox1);

myBitmap = new Bitmap("map.jpeg");

currBitmap = new Bitmap(this.Size.Width, this.Size.Height);

pictureBox1.Image = currBitmap;

mypoint = new Point(0, 0);

var g = Graphics.FromImage(pictureBox1.Image);

g.DrawImage(myBitmap, mypoint);

}

6、处理asdw按键按下消息,让地图可以移动。

private void Form1_KeyDown(object sender, KeyEventArgs e)

{

var key = e.KeyValue;

var g = Graphics.FromImage(pictureBox1.Image);

if (key >= 'a' && key <= 'z') key -= ('a' - 'A');

switch(key)

{

case 'A':

mypoint.X -= 10;

if (mypoint.X + myBitmap.Size.Width <currBitmap.Size.Width) mypoint.X = currBitmap.Size.Width-myBitmap.Size.Width;

break;

case 'D':

mypoint.X += 10;

if (mypoint.X>0) mypoint.X = 0;

break;

case 'W':

mypoint.Y -= 10;

if (mypoint.Y + myBitmap.Size.Height < currBitmap.Size.Height) mypoint.Y = currBitmap.Size.Height - myBitmap.Size.Height;

break;

case 'S':

mypoint.Y += 10;

if (mypoint.Y>0) mypoint.Y = 0;

break;

default: break;

}

g.DrawImage(myBitmap, mypoint);

pictureBox1.Refresh();

}

完毕。

显示效果如下:

 下一步找一些小人加上去。

相关知识

游戏设计之我见 —— 动作游戏中的敌人移动设计
游戏体验:如何设计移动端游戏 – 人人都是产品经理,
移动游戏ui设计(一)
《使命召唤20》PvP设计回滚 更长TTK和移动增强
游戏设计
【Unity】Unity游戏开发入门:新手必读的完整游戏开发指南,手把手教你从零开始到制作第一个游戏
学园构想家地图怎么移动 学园构想家移动教学楼攻略
有没有左右移动消除类游戏 2024有趣的左右移动消除游戏合集
游戏UI设计:修炼之道
25年经验关卡设计师:开放世界游戏如何设计?

网址: c# 游戏设计:地图移动 http://www.hyxgl.com/newsview330696.html

推荐资讯