(八)利用processing实现类似吃豆人的运行效果
来源:互联网 发布:c语言产生0 9的随机数 编辑:程序博客网 时间:2024/05/01 09:22
实现简单的吃豆人运行效果:
//114通过上下左右键控制吃豆人的移动class DrawBeans{ int x; int y; int sz, flag; int forward; DrawBeans(int x, int y, int sz){ this.x = x; this.y = y; this.sz = sz; flag = 0; forward = 0; } void draw_right(){ forward = 0; draw_bean(radians(30), radians(330)); draw_eye(); } void draw_left(){ forward = 2; draw_bean(radians(210), radians(510)); draw_eye(); } void draw_up(){ forward = 3; draw_bean(radians(300), radians(600)); draw_eye(); } void draw_down(){ forward = 1; draw_bean(radians(120), radians(420)); draw_eye(); } void draw_ellipse(){ fill(255, 255, 0); ellipse(x, y, sz, sz); draw_eye(); } void draw_eye(){ fill(0); if(forward == 0){ ellipse(x+sz/4-4, y-sz/4, 5, 5); }else if(forward == 1){ ellipse(x+sz/4, y+sz/4 -4, 5, 5); }else if(forward == 2){ ellipse(x-sz/4+4, y-sz/4, 5, 5); }else if(forward == 3){ ellipse(x-sz/4, y-sz/4+4, 5, 5); } noFill(); fill(255, 255, 0); } void draw_bean(float start, float stop){ arc(x, y, sz, sz, start, stop); fill(255, 255, 0); } void move_right(){ if(x+sz/2 == width){ x = width-sz/2; draw_right(); }else { if(flag < 10){ draw_right(); flag+=1; }else if(flag>=10 && flag <15){ draw_ellipse(); flag+=1; }else if(flag == 15){ flag = 0; } x += 1; } } void move_left(){ if(x-sz/2 == 0){ x = sz/2; draw_left(); }else { if(flag < 10){ draw_left(); flag+=1; }else if(flag>=10 && flag <15){ draw_ellipse(); flag+=1; }else if(flag == 15){ flag = 0; } x -= 1; } } void move_up(){ if(y == sz/2){ y = sz/2; draw_up(); }else { if(flag < 10){ draw_up(); flag+=1; }else if(flag>=10 && flag <15){ draw_ellipse(); flag+=1; }else if(flag == 15){ flag = 0; } y-= 1; } } void move_down(){ if(y+sz/2 == height){ y = height-sz/2; draw_down(); }else { if(flag < 10){ draw_down(); flag+=1; }else if(flag>=10 && flag <15){ draw_ellipse(); flag+=1; }else if(flag == 15){ flag = 0; } y += 1; } } void draw_default(){ if(forward == 0) move_right(); else if(forward == 1) move_down(); else if(forward == 2) move_left(); else if(forward == 3) move_up(); }};DrawBeans db;void setup(){ db = new DrawBeans(100, 100, 40); size(640, 480); noStroke(); smooth(); frameRate(120);}void draw(){ background(120); if(keyPressed && key == CODED){ if(keyCode == RIGHT){ db.move_right(); }else if(keyCode == DOWN){ db.move_down(); }else if(keyCode == LEFT){ db.move_left(); }else if(keyCode == UP){ db.move_up(); } } else{ db.draw_default(); }}程序运行结果:
函数使用说明:
通过前面的简单代码就可以实现吃豆人的移动,类成员函数和成员变量还需要进行修改优化
0 0
- (八)利用processing实现类似吃豆人的运行效果
- 【原】利用Silverlight实现类似iGoogle的浮动层拖拽效果
- 利用Silverlight实现类似iGoogle的浮动层拖拽效果
- 利用osg实现类似3dsMax的四视图效果
- 使用Processing+Arduino写的类似雷达扫描效果
- 类似NumberPicker的效果实现
- 类似horizon效果的实现
- (六)利用processing实现图案的绘制
- 利用Processing实现IOGraphica
- 利用SwipeRefreshLayout实现类似知乎客户端的一打开界面就自动刷新的效果
- Dom利用javascript实现模拟弹出对话框效果的代码,类似JQuery中的dialog!
- 利用jQuery srollTop()函数实现类似锚点的定位效果-兼容chrome,firefox,IE,safari
- 利用css的before和after属性,实现类似QQ对话框效果
- Android 利用popwindow实现类似下拉框效果
- 利用Menu和MutiView控件实现类似tabControl效果
- 类似Google Calendar效果的简单实现
- 实现类似 lightbox的 页面等待效果
- mysql实现类似rownumber()的效果
- 第三方框架
- 空悲切
- Android 三种跨界面的通讯方式
- css滚动条样式制定 jscrollpane
- android中用户头像设置的一点心得——关于bitmap被回收的问题
- (八)利用processing实现类似吃豆人的运行效果
- js javascript:void(0) 真正含义
- 高质量PHP代码的50个实用技巧:非常值得收藏
- 使用maven给工程打包
- NavigationBar底部分割线隐藏
- 【分享】LOVELY×CATION 1+2【汉化硬盘版】带全CG存档+日文&中文攻略]
- hdu 4027 Can you answer these queries?
- CoreData
- lightoj 1214 - Large Division【同余定理】