社区
Android
帖子详情
急求小鱼在水里自由游动算法
panzhiguo1008
2011-08-02 10:09:00
急求小鱼在水里自由游动算法,如多彩水族箱里面的鱼 自由游动
...全文
595
9
打赏
收藏
急求小鱼在水里自由游动算法
急求小鱼在水里自由游动算法,如多彩水族箱里面的鱼 自由游动
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhu071011
2012-10-29
打赏
举报
回复
太可惜了,我不小心把我以前写的那个自由移动的代码搞丢了。我的思路是,每次都为小鱼定一个移动的目标坐标。一旦到达目标坐标就重新随机一个新的目标坐标。随机出新的目标坐标后,将新目标与当前位置进行比较。如果发现x坐标或者y坐标比当前位置大,则执行“x或Y+=n”这样的操作,反之则执行“x或y-=n”这样的操作。这样做的好处是,小鱼高度自由,活动范围十分随机。因为不是所有的鱼都是到了鱼池边再转弯的。
GODloong
2011-08-04
打赏
举报
回复
package pan.move;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;
import android.os.Handler;
import android.view.View;
public class MovingPictureView extends View implements Runnable{
int left=0,top=0;
int dx=1,dy=1;
Handler handler;
Bitmap bitmap;
Bitmap bitmap2;
Boolean isRuning=true;
public MovingPictureView(Context context) {
super(context);
bitmap=((BitmapDrawable)getResources().getDrawable(R.drawable.icon)).getBitmap();
bitmap2=new BitmapFactory().decodeResource(getResources(), R.drawable.icon);
handler=new Handler();
new Thread(this).start();
}
protected void onDraw(Canvas canvas){
canvas.drawBitmap(bitmap, left, top, null);
canvas.drawBitmap(bitmap2,left,top,null);
}
@Override
public void run() {
// TODO Auto-generated method stub
while(isRuning){
dx=left<0||(left+bitmap.getWidth())>getWidth()?-dx:dx;
dy=top<0||(top+bitmap.getHeight())>getHeight()?-dy:dy;
left+=dx;
top+=dy;
handler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
invalidate();
}
});
try{
Thread.sleep(10);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}}
panzhiguo1008
2011-08-04
打赏
举报
回复
package pan.move;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;
import android.os.Handler;
import android.view.View;
public class MovingPictureView extends View implements Runnable{
int left=0,top=0;
int dx=1,dy=1;
Handler handler;
Bitmap bitmap;
Bitmap bitmap2;
Boolean isRuning=true;
public MovingPictureView(Context context) {
super(context);
bitmap=((BitmapDrawable)getResources().getDrawable(R.drawable.icon)).getBitmap();
bitmap2=new BitmapFactory().decodeResource(getResources(), R.drawable.icon);
handler=new Handler();
new Thread(this).start();
}
protected void onDraw(Canvas canvas){
canvas.drawBitmap(bitmap, left, top, null);
canvas.drawBitmap(bitmap2,left,top,null);
}
@Override
public void run() {
// TODO Auto-generated method stub
while(isRuning){
dx=left<0||(left+bitmap.getWidth())>getWidth()?-dx:dx;
dy=top<0||(top+bitmap.getHeight())>getHeight()?-dy:dy;
left+=dx;
top+=dy;
handler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
invalidate();
}
});
try{
Thread.sleep(10);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}}
chaoliu1024
2011-08-02
打赏
举报
回复
通过随机数定位鱼的位置
dina656
2011-08-02
打赏
举报
回复
上面写错了 是周围8格。。。
dina656
2011-08-02
打赏
举报
回复
可以把水箱分成许多小格,每次移动到一个小格,每次随机获得一个小格,最好是获取周围9格的任一一格,如果小格出边界了,就再随机一次,或则直接选择对角的小格移动过去,这样的规则你可以自己规定。。
大掌教
2011-08-02
打赏
举报
回复
碰到边界的话就取随机数坐标作为目的地,用个动画移动到目的地就可以了
panzhiguo1008
2011-08-02
打赏
举报
回复
就是可以在水族箱里自由穿梭的鱼的算法代码, 那位大神抽空给我写个事例呀?! 不胜感激,就是说鱼游到边界的时候自己转过头然后随机选择方向继续游
lackl
2011-08-02
打赏
举报
回复
是随机定位位置还是定位鱼的下一个方向?
360断网
急求
箱
独立版360断网
急求
箱,不用安装360安全卫士,可独立运行 断网修复工具
急求
医疗废物管理整改报告.doc
急求
医疗废物管理整改报告.doc
急求
学生会监察部工作计划!.doc
急求
学生会监察部工作计划!.doc
急求
一个VB密码输入的验证程序编写代码.txt
急求
一个VB密码输入的验证程序编写代码.txt
全国自考《
急求
护理学》试题及答案.docx
全国自考《
急求
护理学》试题及答案.docx
Android
80,471
社区成员
91,384
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章