本人现在刚刚学习C#,前几天按照视频教程做了个俄罗斯方块的游戏;
有天偶然重新玩了下是男人就下100层的游戏,相信大家都玩过吧,突然非常想去把它做出来,
以前也是想学好一种编程语言,但是都是学到皮毛就深入不下去了,有上班太忙时间不足的原因
但是我觉得主要原因还是兴趣不足,不能长期坚持。希望这次通过做小游戏的方法提高兴趣吧,让
自己坚持下去。希望大侠们多多指教啊
现在有个问题:就是我不太清楚这个控制人物左右移动、滚轮台阶的动画效果是怎么实现的,
因为我的思路是用一系列图片来完成动画效果,但是我在网上搜了些这方面的资料,发现他们都是
通过一个图片把所有的动作放进去来实现的,这样的话我就不知道该怎么做了,我想这个肯定是很
基本的东西,但是由于我是新手啦,只好硬着头皮请教大侠们了。希望能详细指导下这块的实现方法,
如果有这一部分的代码能贴出来就更加完美了。
感谢支持
有天偶然重新玩了下是男人就下100层的游戏,相信大家都玩过吧,突然非常想去把它做出来,
以前也是想学好一种编程语言,但是都是学到皮毛就深入不下去了,有上班太忙时间不足的原因
但是我觉得主要原因还是兴趣不足,不能长期坚持。希望这次通过做小游戏的方法提高兴趣吧,让
自己坚持下去。希望大侠们多多指教啊
现在有个问题:就是我不太清楚这个控制人物左右移动、滚轮台阶的动画效果是怎么实现的,
因为我的思路是用一系列图片来完成动画效果,但是我在网上搜了些这方面的资料,发现他们都是
通过一个图片把所有的动作放进去来实现的,这样的话我就不知道该怎么做了,我想这个肯定是很
基本的东西,但是由于我是新手啦,只好硬着头皮请教大侠们了。希望能详细指导下这块的实现方法,
如果有这一部分的代码能贴出来就更加完美了。
感谢支持
silverlight下有人写了开源的代码.楼主可查找.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;namespace WindowsApplication77
{
public partial class Form1 : Form
{
Bitmap OrgBmp = null;
int XPos = 0;
int YPos = 0;
int XStep = 1;
int YStep = 1;
int X = 0; public Form1()
{
InitializeComponent(); OrgBmp = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height);
using (Graphics G = Graphics.FromImage(OrgBmp))
G.FillRectangle(new SolidBrush(this.BackColor), this.ClientRectangle); Thread T = new Thread(new ThreadStart(ShowThread));
T.IsBackground = true;
T.Start();
} void T_Tick(object sender, EventArgs e)
{
ShowThread();
} void ShowThread()
{
try
{
while (true)
{
if (XPos + 30 > this.ClientRectangle.Width)
XStep = -1;
if (XPos < 0)
XStep = 1;
if (YPos + 30 > this.ClientRectangle.Height)
YStep = -1;
if (YPos < 0)
YStep = 1;
XPos += XStep;
YPos += YStep;
Bitmap CacheBmp = new Bitmap(OrgBmp);
using (Graphics G = Graphics.FromImage(CacheBmp))
{
X = X + 5 % 360;
G.FillPie(Brushes.Red, new Rectangle(XPos, YPos, 30, 30), X, 270);
}
this.Invoke(new DrawForm(DoDrawForm), new Object[] { CacheBmp });
Thread.Sleep(10);
}
}
catch
{
// 退出程序忽略异常
}
} delegate void DrawForm(Bitmap CacheBmp); void DoDrawForm(Bitmap CacheBmp)
{
using (Graphics G = this.CreateGraphics())
G.DrawImage(CacheBmp, new Point(0, 0));
}
}
}
{
ShowThread();
}是多余的,可以删掉