社区
其它游戏引擎
帖子详情
求一大神帮写愤怒的小鸟 用Javafx
qq_41814558
2019-05-01 11:24:56
求一大神帮写愤怒的小鸟 用Javafx
...全文
45
1
打赏
收藏
求一大神帮写愤怒的小鸟 用Javafx
求一大神帮写愤怒的小鸟 用Javafx
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
韦小宝爱软件开发
2019-07-08
打赏
举报
回复
public void startTopAndBoom(boolean isStart) {
DataBean dataBean = new DataBean();
dataBean.topTopX = 0;
dataBean.topLiftX = this.getRight();
dataBean.topRightX = this.getRight() + 200;
//下边的举行
dataBean.boomBoomX = this.getBottom();
Log.e("startTopAndBoom", "onLayout: " + this.getBottom());
dataBean.boomLiftX = this.getRight();
dataBean.boomRightX = this.getRight() + 200;
dataBean.topLiftX = getRight();
dataBean.topRightX = getRight() + 200;
dataBean.boomLiftX = getRight();
dataBean.boomRightX = getRight() + 200;
if (!isStart)
if (arr.size() == 0)
arr.add(dataBean);
if (isStart)
arr.add(dataBean);
ran = new Random();
int Y = ran.nextInt(this.getBottom());
Log.e("---", "startTopAndBoom: " + Y);
if (Y < (this.getBottom() - 500)) {
dataBean.topBoomX = Y - 500;
dataBean.boomTopX = Y;
// Log.e("----", "上边矩形的下 " + topBoomX + "----" + "下边矩形的上" + boomTopX);
} else if (Y < 500) {
dataBean.topBoomX = 0;
dataBean.boomTopX = 500;
} else {
dataBean.topBoomX = this.getBottom() - 500;
dataBean.boomTopX = this.getBottom();
}
}
全部代码
package com.example.downlist.view;
import android.content.Context;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import com.example.downlist.utils.UIUtlis;
import java.util.ArrayList;
import java.util.Random;
/**
* 愤路的小鸟
*/
public class XiaoNiaoView extends ViewGroup implements View.OnClickListener {
private boolean isStart = false;
ArrayList<DataBean> arr = new ArrayList<>();
private int niao = 400;
private int boomX = this.getBottom(); //矩形的下边
private Paint paint;
private Random ran;
//判断有没有挂
private boolean isLift = true;
//控制线程速度
private int threadGo = 5;
//上下落标记
private boolean isUp = false;
//最终落下的速度
private int luoxia = 0;
//小鸟左边
private int nLift;
//小鸟右边
private int nRight;
//积分器
private int count;
//点击次数
private int thCount = 0;
public XiaoNiaoView(Context context) {
super(context);
drawRect();
startNiao();
}
public XiaoNiaoView(Context context, AttributeSet attrs) {
super(context, attrs);
drawRect();
startNiao();
}
public XiaoNiaoView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
drawRect();
startNiao();
}
@Override
protected void onLayout(boolean b, int i, int i1, int i2, int i3) {
nLift = (this.getRight() / 2) + 80;
nRight = (this.getRight() / 2) - 80;
startTopAndBoom(false);
this.setOnClickListener(this);
}
public void startTopAndBoom(boolean isStart) {
DataBean dataBean = new DataBean();
dataBean.topTopX = 0;
dataBean.topLiftX = this.getRight();
dataBean.topRightX = this.getRight() + 200;
//下边的举行
dataBean.boomBoomX = this.getBottom();
Log.e("startTopAndBoom", "onLayout: " + this.getBottom());
dataBean.boomLiftX = this.getRight();
dataBean.boomRightX = this.getRight() + 200;
dataBean.topLiftX = getRight();
dataBean.topRightX = getRight() + 200;
dataBean.boomLiftX = getRight();
dataBean.boomRightX = getRight() + 200;
if (!isStart)
if (arr.size() == 0)
arr.add(dataBean);
if (isStart)
arr.add(dataBean);
ran = new Random();
int Y = ran.nextInt(this.getBottom());
Log.e("---", "startTopAndBoom: " + Y);
if (Y < (this.getBottom() - 500)) {
dataBean.topBoomX = Y - 500;
dataBean.boomTopX = Y;
// Log.e("----", "上边矩形的下 " + topBoomX + "----" + "下边矩形的上" + boomTopX);
} else if (Y < 500) {
dataBean.topBoomX = 0;
dataBean.boomTopX = 500;
} else {
dataBean.topBoomX = this.getBottom() - 500;
dataBean.boomTopX = this.getBottom();
}
}
//操控小鸟线程
public void startNiao() {
UIUtlis.runOnThread(new Runnable() {
@Override
public void run() {
while (isLift) {
try {
Thread.sleep(threadGo);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (isUp) {
niao -= 3;
if (niao < luoxia) {
isUp = false;
threadGo = 5;
}
} else {
niao += 3;
}
}
}
});
}
//线程专门画上下矩形的
public void drawRect() {
paint = new Paint();
setWillNotDraw(false);
invalidate();
// Log.e("----", "drawRect: " + "----" );
UIUtlis.runOnThread(new Runnable() {
@Override
public void run() {
while (isLift) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i = 0; i < arr.size(); i++) {
arr.get(i).topLiftX -= 2;
arr.get(i).topRightX -= 2;
arr.get(i).boomLiftX -= 2;
arr.get(i).boomRightX -= 2;
if (arr.get(i).topLiftX == 100 || arr.get(i).topLiftX == 101) {
UIUtlis.runOnUIThread(new Runnable() {
@Override
public void run() {
startTopAndBoom(true);
}
});
}
if (arr.get(i).topLiftX <= -200) {
arr.remove(i);
}
}
UIUtlis.runOnUIThread(new Runnable() {
@Override
public void run() {
invalidate();
}
});
}
}
});
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.parseColor("#123456"));
paint.setAntiAlias(true);
paint.setTextSize(50);
canvas.drawText("当前得分:" + count, 60, 60, paint);
canvas.drawText("点击次数:" + thCount, 60, 100, paint);
for (int i = 0; i < arr.size(); i++) {
if (!(arr.get(i).isColor)) {
paint.setColor(Color.parseColor("#123456"));
//画上边的矩形
canvas.drawRect(arr.get(i).topLiftX, arr.get(i).topTopX, arr.get(i).topRightX, arr.get(i).topBoomX, paint);
//Log.e("----", "run: " + arr.get(i).topLiftX + "----" + arr.get(i).topRightX);
//画下边矩形
canvas.drawRect(arr.get(i).boomLiftX, arr.get(i).boomTopX, arr.get(i).boomRightX, arr.get(i).boomBoomX, paint);
paint.setTextSize(20);
paint.setColor(Color.parseColor("#ffffff"));
canvas.drawText("上:" + arr.get(i).topBoomX, arr.get(i).topLiftX, arr.get(i).topBoomX, paint);
if (arr.get(i).boomTopX > 400) {
paint.setColor(Color.parseColor("#ffffff"));
canvas.drawText("下:" + arr.get(i).boomTopX, arr.get(i).topLiftX, arr.get(i).boomTopX + 60, paint);
} else {
paint.setColor(Color.parseColor("#ffffff"));
canvas.drawText("异常柱子:" + arr.get(i).boomTopX, arr.get(i).topLiftX, arr.get(i).boomTopX + 60, paint);
}
if (arr.get(i).boomTopX > 400) {
paint.setColor(Color.parseColor("#ffffff"));
canvas.drawText("当前位置:" + arr.get(i).topLiftX, arr.get(i).topLiftX, arr.get(i).boomTopX + 120, paint);
} else {
paint.setColor(Color.parseColor("#ffffff"));
canvas.drawText("当前位置:" + arr.get(i).topLiftX, arr.get(i).topLiftX, arr.get(i).boomTopX + 120, paint);
}
} else {
paint.setColor(Color.parseColor("#0000ff"));
//画上边的矩形
canvas.drawRect(arr.get(i).topLiftX, arr.get(i).topTopX, arr.get(i).topRightX, arr.get(i).topBoomX, paint);
//Log.e("----", "run: " + arr.get(i).topLiftX + "----" + arr.get(i).topRightX);
//画下边矩形
canvas.drawRect(arr.get(i).boomLiftX, arr.get(i).boomTopX, arr.get(i).boomRightX, arr.get(i).boomBoomX, paint);
paint.setTextSize(20);
paint.setColor(Color.parseColor("#ffffff"));
canvas.drawText("上:" + arr.get(i).topBoomX, arr.get(i).topLiftX, arr.get(i).topBoomX, paint);
if (arr.get(i).boomTopX > 400) {
paint.setColor(Color.parseColor("#ffffff"));
canvas.drawText("下:" + arr.get(i).boomTopX, arr.get(i).topLiftX, arr.get(i).boomTopX + 60, paint);
} else {
paint.setColor(Color.parseColor("#ffffff"));
canvas.drawText("异常柱子:" + arr.get(i).boomTo
基于java的
愤怒
小鸟
游戏系统设计与实现
基于Java的
愤怒
小鸟
游戏系统设计与实现的性能评估是对系统在处理用户操作和游戏逻辑时的效率和稳定性进行评估和分析。以下是性能评估的总结和分析:1、响应速度评估:响应速度评估是测试系统对用户操作响应的及时性。在
愤怒
小鸟
游戏中,包括发射
小鸟
、碰撞检测、得分计算等操作的响应速度都需要进行评估。通过测量这些关键操作的响应时间,可以分析系统在这些操作中的性能表现。在评估过程中,可以使用压力测试工具模拟多个用户同时操作,以测试系统在多用户并发访问下的响应速度。
毕业设计:基于java的
愤怒
小鸟
游戏系统设计与实现
基于Java的
愤怒
小鸟
游戏系统设计与实现的性能评估是对系统在处理用户操作和游戏逻辑时的效率和稳定性进行评估和分析。以下是性能评估的总结和分析:1、响应速度评估:响应速度评估是测试系统对用户操作响应的及时性。在
愤怒
小鸟
游戏中,包括发射
小鸟
、碰撞检测、得分计算等操作的响应速度都需要进行评估。通过测量这些关键操作的响应时间,可以分析系统在这些操作中的性能表现。在评估过程中,可以使用压力测试工具模拟多个用户同时操作,以测试系统在多用户并发访问下的响应速度。
基于java的
愤怒
的
小鸟
游戏系统毕业设计(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
未来可以进一步优化系统的特效和用户交互,增加新的关卡和角色,提升系统的可扩展性和游戏乐趣。请注意,这仅仅是一个简单示例,实际的
愤怒
的
小鸟
游戏系统需要更多的模块和功能的实现。2. 角色管理:设计
小鸟
和敌方角色,包括不同种类的
小鸟
和敌方角色,每个角色具有独特的特殊能力和属性。2. 用户体验:通过优化游戏界面和交互设计,提高用户的游戏体验和娱乐性,包括音效、动画和界面反馈等。1. 可扩展性:设计合理的模块划分和接口规范,方便系统的扩展,如增加新的关卡、角色和特殊能力等。
毕业设计:基于java的
愤怒
的
小鸟
游戏系统设计与实现
基于Java的
愤怒
的
小鸟
游戏系统设计与实现的系统性能评估的总结和分析,是对系统在特定工作负载下的响应速度和资源利用率进行评估和分析,旨在验证系统是否能够满足用户在实际使用中的性能需求。1、并发性能评估:并发性能是指系统在多用户同时访问的情况下的表现。通过模拟多个用户同时进行操作,评估系统的并发性能。可以观察系统是否能够正确处理并发请求,同时保持较好的响应速度。通过增加并发用户数,可以评估系统的并发处理能力和性能瓶颈。
PIXI.js源码解析(7)- shape对象
pixi有很多shape对象,类似Circle,Rectangle。这些不是真正用来显示到界面上的对象,只是代表对应的数学上图形,主要作用是辅助运算,以及保存一些数据。基本上所有ui框架中都有类似的类,改一下语法就可以放到别的语言别的库里使用。我写过一个java的渲染库,用的shape就是直接把pixi的这组类改了一下语法放进去就可以直接用了。 pixi的这一组shape对象方法较少,很适合学习...
其它游戏引擎
456
社区成员
668
社区内容
发帖
与我相关
我的任务
其它游戏引擎
其它游戏引擎
复制链接
扫一扫
分享
社区描述
其它游戏引擎
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章