Je lisais ce topic et j'ai décidé de tenter le coup. À mon grand étonnement, cela semblait vraiment plus facile que ce que je suis en train de faire. J'ai une certaine confusion au sujet de la variable "DesiredPos". Eh bien au moins dans ma mise en œuvre. J'essaye de déplacer une fenêtre constamment et de la faire réagir comme une balle quand elle touche les bords des moniteurs. Comme la balle dans le jeu Pong. J'ai fait des programmes comme celui-ci qui bougent la souris, mais je ne peux pas sembler tourner la tête autour de celui-ci.Simulation du mouvement d'une fenêtre et avoir réagi aux collisions
C'est ce que j'ai jusqu'à présent, j'ai une expérience limitée quand il s'agit d'un grand nombre de fonctions dans l'API Windows. Gardez à l'esprit que c'est un brouillon hardcore.
EDIT Je n'ai pas implémenté la détection de collision mais je voulais juste que la partie mobile fonctionne.
#include <windows.h>
#include <math.h>
int newX(int oldx);
int newY(int oldy);
double SmoothMoveELX(double x);
int main()
{
int lengthInMs = 10*1000;
HWND notepad = FindWindow("Notepad",NULL);
RECT window;
SetTimer(
notepad,
NULL,
30,
(TIMERPROC)NULL
);
int startTime = GetTickCount();
int pos = elap/lengthInMs;
while(1)
{
RECT window;
GetWindowRect(notepad,&window);
int elap = (GetTickCount() - startTime);
if(elap >= lengthInMs)
{
int NEWX = NewX(window.x);
int NEWY = NewY(window.y);
MoveWindow(
notepad,
NEWX,
NEWY,
100,
100,
TRUE
);
}
}
}
int NewX(int oldx)
{
int newx = oldx*(1-SmoothMoveELX(pos))
+ 10 *SmoothMoveELX(pos));
return newx;
}
int newY(int oldy)
{
int newy = oldy*(1-SmoothMoveELX(pos))
+ 10 *SmoothMoveELX(pos));
return newy;
}
double SmoothMoveELX(double x)
{
double PI = Atan(1) * 4;
return ((cos(1 - x) * PI + 1) /2)
}
Alors, quelle est votre question? – Blorgbeard