社区
J2ME
帖子详情
关于MIDP1.0 setClip()手动切图并实现帧动画的问题?
penxm315
2008-11-05 01:53:37
各位大虾帮帮忙,怎样用setClip()来切图,及实现帧动画,我是新手,不是很会用这个函数。
而且很多地方不明白,主要是逻辑上,比如怎样切图后,实现帧动画。让他实现一个动画。
大家帮帮忙,靠各位了,在线等~~
...全文
124
8
打赏
收藏
关于MIDP1.0 setClip()手动切图并实现帧动画的问题?
各位大虾帮帮忙,怎样用setClip()来切图,及实现帧动画,我是新手,不是很会用这个函数。 而且很多地方不明白,主要是逻辑上,比如怎样切图后,实现帧动画。让他实现一个动画。 大家帮帮忙,靠各位了,在线等~~
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bolou2008
2008-11-08
打赏
举报
回复
public class Player extends Canvas
{
Image player;
int player_x = 0;;
int player_y = 0;
int player_w = 16; //每格人物图象的宽
int player_h = 32; //每格人物图象的高
int player_dir = 0; //0为下,1为向左,2为向右,3为向上
int playerFrameIndex;//当前的贞
int player_speed = 3;
public Player()
{
try
{
player = Image.createImage("/player.png");
}
catch (IOException e)
{
e.printStackTrace();
}
Thread t = new Thread();
t.start();
}
public void paint(Graphics g)
{
g.setColor(255,255,255);
g.fillRect(0,0,getWidth(),getHeight());
g.setClip(player_x,player_y,player_w,player_h);
g.drawImage(player ,player_x - playerFrameIndex * player_w ,player_y - player_dir * player_h,20);
g.setClip(0,0,getWidth(),getHeight());
}
protected void keyPressed(int keyCode)
{
switch(keyCode)
{
case KeyMap.KEY_UP:
player_dir = 3;
updata();
player_y -= player_speed;
break;
case KeyMap.KEY_LEFT:
player_dir = 1;
updata();
player_x -= player_speed;
break;
case KeyMap.KEY_RIGHT:
player_dir = 2;
updata();
player_x += player_speed;
break;
case KeyMap.KEY_DOWN:
player_dir = 0;
updata();
player_y += player_speed;
break;
}
repaint();
}
void updata()
{
playerFrameIndex++;
playerFrameIndex %= 3;
}
}
LoginOut
2008-11-07
打赏
举报
回复
[Quote=引用 4 楼 KGBKGB8888 的回复:]
3楼说的不对,绘制动画的时候绝对不能用for循环。
只能定义全局变量去控制绘制帧数。因为如果用for的话,程序瞬间走完循环,根本就看不出动画的效果。
[/Quote]
没看清楚题目,我还以为是画地图呢
prince58
2008-11-06
打赏
举报
回复
查API
WTK22/index.html
自己查三,装了WTK都有说明的。
KGBKGB8888
2008-11-06
打赏
举报
回复
3楼说的不对,绘制动画的时候绝对不能用for循环。
只能定义全局变量去控制绘制帧数。因为如果用for的话,程序瞬间走完循环,根本就看不出动画的效果。
LoginOut
2008-11-06
打赏
举报
回复
[Quote=引用 1 楼 KGBKGB8888 的回复:]
其他的方法,就需要你写个绘制的方法,把绘制参数写到数组中,在绘制的时候根据帧数调用数组参数。
[/Quote]
定义一个二维数组,在用2个for循环
jlabel
2008-11-05
打赏
举报
回复
1楼说的对.
setClip()设置要绘制的区域大小然后就绘制
//绘制
KGBKGB8888
2008-11-05
打赏
举报
回复
有个最笨的方法,就是用switch-case,把每帧的切割方式,显示位置写出来。
其他的方法,就需要你写个绘制的方法,把绘制参数写到数组中,在绘制的时候根据帧数调用数组参数。
在移动设备上用J2ME
实现
动画
.pdf
了解行业知识,介绍手机开发的基本知识,从安装配置到开发一步步紧跟,使你知一会二。
关于j2me game双缓冲
实现
探讨
关于j2me game双缓冲
实现
探讨
对一个运动对象的总结
对一个运动对象的总结 面向对象 j2me lava 游戏开发
C#
实现
图片合成经典源码__0525).rar
C#
实现
图片合成经典源码__0525).rar
j2me半透明图片
实现
j2me半透明图片
实现
半透明图片
实现
半透明图片
实现
J2ME
13,097
社区成员
26,492
社区内容
发帖
与我相关
我的任务
J2ME
Java J2ME
复制链接
扫一扫
分享
社区描述
Java J2ME
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章