社区
J2ME
帖子详情
关于MIDP1.0 setClip()手动切图并实现帧动画的问题?
penxm315
2008-11-05 01:53:37
各位大虾帮帮忙,怎样用setClip()来切图,及实现帧动画,我是新手,不是很会用这个函数。
而且很多地方不明白,主要是逻辑上,比如怎样切图后,实现帧动画。让他实现一个动画。
大家帮帮忙,靠各位了,在线等~~
...全文
152
8
打赏
收藏
关于MIDP1.0 setClip()手动切图并实现帧动画的问题?
各位大虾帮帮忙,怎样用setClip()来切图,及实现帧动画,我是新手,不是很会用这个函数。 而且很多地方不明白,主要是逻辑上,比如怎样切图后,实现帧动画。让他实现一个动画。 大家帮帮忙,靠各位了,在线等~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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,把每帧的切割方式,显示位置写出来。
其他的方法,就需要你写个绘制的方法,把绘制参数写到数组中,在绘制的时候根据帧数调用数组参数。
MIDP1
.0下使用
set
Clip
的小
问题
本文介绍在
Midp1
.0环境下如何解决透明图像不可创建的
问题
,通过定制函数
实现
从大图中裁剪小图,并针对超出屏幕范围的情况提供了解决方案。
在
MIDP1
.0中简单模拟图片翻转功能
博客介绍了
MIDP1
.0中
实现
图片翻转功能的方法,包括水平翻转和逆时针90度翻转,通过
set
Clip
()函数控制绘图区域,但绘制速度慢。之后使用双缓冲技术改进,虽显示速度加快,但存在载入慢、仅适用于矩形图片、占用内存多等缺点,代码在索尼爱立信模拟器测试通过。
MIDP1
.0 能否从大图里切出来的小图
实现
透明
本文介绍在
MIDP1
.0环境中如何创建透明的小图,由于
MIDP1
.0本身限制,通常无法直接创建透明图片,但通过特定方法如使用
set
Clip
()可以在屏幕上显示部分大图;对于诺基亚设备,利用DirectUtils.createImage()方法并设置ARGBcolor值为0可以创建透明背景。
MIDP1
.0
实现
图片翻转
本文介绍如何使用
MIDP1
.0在Nokia UI API中
实现
图片翻转效果,包括左右翻转、上下翻转及180度翻转。通过自定义方法drawTransImage和draw
Clip
Image,利用
set
clip
()来完成不同方向的翻转。
J2ME游戏开发学习之用
set
Clip
分割图片
博客主要围绕游戏开发中图片处理展开,介绍了将零碎小图片合成大图,再分割大图的方法,给出了分割图片的代码示例。同时指出MIDP 1.0中上述做法会丢失透明像素,并提供了两种补救措施。
J2ME
13,096
社区成员
26,491
社区内容
发帖
与我相关
我的任务
J2ME
Java J2ME
复制链接
扫一扫
分享
社区描述
Java J2ME
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章