提问者:小点点

处理中的图像移动/重力问题2.2.1


我正在尝试将重力应用于已加载到处理数据文件中的图像。所有图像都工作正常,一切都很好。然而,我为以前只是一个形状的对象设置的重力条件与我放置的图像不匹配。

这是源代码,如果真的很马虎,对不起…我是个新手。

基本上,我有一个粘贴图像、一个背景图像和一个气球。我希望气球在我点击鼠标时释放,然后向上飞行。当我只是使用简单的对象时,它工作得很好,但是当我使用存储的图像时,我就遇到了错误。我做错了什么?我把这段代码弄得有多糟糕?我真的要疯了,试图找出我做错了什么。

顺便说一下,我正在使用处理2.2.1

float line;
float xpos;
float ypos;
float speed = 1;
float gravity = 1;
int bodyHeight = 160;

float easing = 0.02;
PImage b;
PImage lol;
PImage balloon;

void setup(){
    size(500,500);

    b=loadImage("1406075208097 copy.jpg");
    lol=loadImage("Dark-Wood-Background.jpg");
    //Here's where I have trouble
    balloon=loadImage("1194986736244974413balloon-red-aj.svg.thumb.png");
    xpos = (mouseX);
    ypos = (mouseY);

    }


void draw(){

    //DRAW BACKGROUND
    background(b);


    stroke(0);
    //DRAW THE TETHER
    line(width/2,height/2,mouseX,mouseY);
    //THE BALLOON
    noStroke();
    fill(245,91,97);
    image(balloon,mouseX-10,mouseY-30);
    //THE STICK
    noStroke();
    fill(144,113,73);
    image(lol,228,250);

    //This next section sets up the conditions for the balloon on the stick.
    if(mousePressed){
    //DRAW BACKGROUND
    background(b);


    stroke(0);
    //DRAW THE TETHER
    line(width/2,height/2,mouseX,mouseY);
    //THE STICK
    image(lol,228,250);
    //THIS NEXT SECTION IS FOR THE UPWARD MOVING BALLOON
    image(balloon,mouseX-10,mouseY-30);

    ypos = speed-.9999999;

    speed = speed - gravity;
    // If square reaches the bottom
    // Reverse speed
    if (ypos > height){

    speed = speed * -99.99999999999999999999999999999;
    }
}
}

共1个答案

匿名用户

看这一行:

 image(balloon,mouseX-10,mouseY-30);

您总是在鼠标位置绘制气球图像。您永远不会使用xpos或ypos变量来绘制气球图像。

尝试在绘制气球时实际使用xpos和ypos来定位气球。