求一大神帮写愤怒的小鸟 用Javafx

qq_41814558 2019-05-01 11:24:56
求一大神帮写愤怒的小鸟 用Javafx
...全文
45 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
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

456

社区成员

发帖
与我相关
我的任务
社区描述
其它游戏引擎
社区管理员
  • 其它游戏引擎社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧