java如何让人物动起来_让人物在地图上动起来

其实很简单,在原来添加地图的基础上,添加一个定时器,每间隔一定时间加载一个行动的图片

HBITMAP bit;

HDC  MemDC;

int  w,h;

CString dir;

CString cc;

int  p;

char appdir[256];

int m0; //用于初始化人物为0

int m1;//图片数量的最大值

BOOL getpic(CString cc,int p);

BOOL loadbmp(CString cc);

加载不同图片

BOOL getpic(CString cc,int p)

{

cc.Format("%s\\图片\\人\\c%05d.bmp",dir,p);

loadbmp(cc);

return TRUE;

}

添加定时器

void ClearnDlg::OnTimer(UINT nIDEvent)

{

//添加一个定时器其实用处很简单 不定的加载不同的图片在同一个地方

CClientDC dc(this);

if(getpic("人",p)==FALSE)

AfxMessageBox(cc+"没找到!");

SelectObject(MemDC,bit);

BitBlt(dc.m_hDC,200,160,w,h,MemDC,0,0,SRCCOPY);

p++;

if(p>m1) p=m0;

CDialog::OnTimer(nIDEvent);

}

void ClearnDlg::OnBnClickedOk()

{

CClientDC dc(this);

p=400;

m0=400;

m1=799;

MemDC = CreateCompatibleDC(0);//暂存设备场景

GetCurrentDirectory(256,appdir);

dir=appdir;

//加载地图

cc=dir+"\\图片\\地面.bmp";

if(loadbmp(cc)==FALSE)

AfxMessageBox(cc+"没找到!");

SelectObject(MemDC,bit);

SetBkMode(MemDC,TRANSPARENT);

BitBlt(dc.m_hDC,0,0,400,300,MemDC,0,0,SRCCOPY);

SetTimer(1,150,NULL);

}

void ClearnDlg::OnBnClickedCancel()

{

// TODO: 在此添加控件通知处理程序代码

DeleteDC(MemDC);

DeleteObject(bit);

OnCancel();

}

问题来了,原来加载的图片是否在内存中消失????????????????????????????

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好,让汉字起来可以使用 Java 提供的 Graphics 类来实现。可以使用 Graphics 类的 drawString() 方法来绘制字符串,并使用定时器来不断更新字符串的位置,从而实现动态效果。以下是一个简单的示例代码: ```java import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.Timer; public class MovingText extends JPanel { private String text = "Hello, World!"; // 动态显示的字符串 private int x = 0; // 字符串的 x 坐标 private int y = 100; // 字符串的 y 坐标 private int dx = 5; // 每次更新字符串位置的步长 public MovingText() { // 创建一个定时器,每隔 50 毫秒更新一次字符串位置 Timer timer = new Timer(50, e -> { x += dx; if (x + getFontMetrics(getFont()).stringWidth(text) > getWidth()) { x = 0; } repaint(); }); timer.start(); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.BLACK); g.setFont(new Font("宋体", Font.BOLD, 36)); g.drawString(text, x, y); } public static void main(String[] args) { JFrame frame = new JFrame("Moving Text"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(600, 200); frame.add(new MovingText()); frame.setVisible(true); } } ``` 在这个例子中,我们创建了一个继承自 JPanel 的 MovingText 类,并在其中实现了绘制字符串和更新字符串位置的逻辑。在 main() 方法中创建了一个 JFrame,并将 MovingText 实例添加到 JFrame 中,从而显示出动态的汉字。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值