Te he echo este código.
Es algo sencillo pero te va servir para comprender el problema y para que veas las soluciones que le puedes dar.
Código C++:
Ver original#include "miniwin.h"
#include <iostream>
#include <cmath>
using namespace miniwin;
int ancho = 800; //anchura de la ventana
int alto = 600; //altura de la ventana
float x = ancho/2; //coordenada x inicia en medio de la ventana
float y = alto/2; //coordenada y inicia en medio de la ventana
float rx; //variable para guardar coordenada x del raton
float ry; //variable para guardar coordenada y del raton
float distancia; //variable para guardar la distancia del centro del circulo y el raton
int borde_izquierdo = 0; //borde izquierdo es el inicio del lado derecho de la ventana y es 0
int borde_derecho = ancho; //borde derecho es e el contrario y es igual que el ancho que elejimos antes
int retraso = 10; //retraso es el tiempo que tarda cada loop, es similar a sytem("pause");
int velocidad = 5; //velocidad a la que se desplaza la pelota
int radio = 20; //radio de la pelota
int t; //variable para guardar tecla pulsada.
int main(){
//creamos una ventana del tamaño de ancho por alto 800x600 en mi ejemplo pero se puede cambiar.
vredimensiona(ancho, alto);
//GAMELOOP
while ( true ) {
//LOGICA DE JUEGO
//movemos con las fleshas del teclado por si te gusta asi XD
t = tecla();
if(t==IZQUIERDA){
x-=velocidad;
}
if(t==DERECHA){
x+=velocidad;
}
if(t==ARRIBA){
y-=velocidad;
}
if(t==ABAJO){
y+=velocidad;
}
//movemos con el raton
rx = raton_x();
ry = raton_y();
//grarda en la variable distancia la distancia entre el centro del circulo y el raton, lo usaremos para saber si estamos dentro del circulo con el raton.
distancia
= sqrt( pow( rx
- x
, 2) + pow(ry
- y
, 2));
if( raton_boton_izq() == true && distancia < radio ){
x = raton_x();
y = raton_y();
}
//PINTAMOS CAMBIOS
color(VERDE);
circulo_lleno( x, y, radio); //creamos un circulo de color ver en las coordenadas x,y del tamaño de la variable radio
refresca(); //mostra el resultado en pantalla
borra(); //borra la imagen antes de hacer todo otravez
espera(retraso); //similar a system("pause");
}//FIN GAMELOOP
return 0;
}
puedes usar el raton o las fleshas para mover el circulo verde ;)
No te va resolver el problema por que simplemente te muestra la mecánica.
Deberías poner un rectángulo de fondo y pegar las imágenes en el y no en la ventana. Así si mueves el rectángulo lo mueves todas las imágenes que estén en el.
o sea el rectángulo se basa en la esquina de la ventana y las imágenes se basan en las coordenadas del rectángulo.
Si mueves el fondo se mueven todas las imágenes. =D
A ver que te parece XD