-
Data: 2014-06-15 23:18:55
Temat: Re: co jest najtrudniejszego w programowaniu?
Od: firr <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]ps jak ktos chce zobaczyc centralny szitowaty fragment tego szitowatego kodu 9ktorego
nie che mi sie przepisywac bo działa a zagadnienie jest mega szitowate) to moge go
wkleic (poniekad po temu ze to dziala na pol cudem i jakbym to zgubil to nie
chcialoby mi sie meczyc jeszcze raz ze "zgadywaniem" tego
(jest to rozbabrany testowy kod na brudno z zalozenia beznadziejnego modulu -
chodzilo tylko o to by te syfiaste skoki w koncu sie odfiltorowywaly, co chyba dziala
bo nawet nie ejstem pewien, na oko dziala)
int cursor_jump_x = 0;
int cursor_jump_y = 0;
int cursor_wrap_x = 200;
int cursor_wrap_y = 200;
bool ShouldSkipMoveTo(int x, int y)
{
POINT p; GetCursorPos(&p);
if( p.x==x && p.y==y ) return 1;
return 0;
}
void JumpCursorTocentre()
{
RECT r; GetWindowRect(hwnd, &r);
cursor_jump_x = (r.left + r.right )/2 ;
cursor_jump_y = (r.top + r.bottom )/2;
SetCursorPos(cursor_jump_x,
cursor_jump_y);
}
int WrapMouse()
{
POINT p; GetCursorPos(&p);
if(p.x > cursor_jump_x + cursor_wrap_x/2) JumpCursorTocentre();
else if(p.x < cursor_jump_x - cursor_wrap_x/2) JumpCursorTocentre();
else if(p.y > cursor_jump_y + cursor_wrap_y/2) JumpCursorTocentre();
else if(p.y < cursor_jump_y - cursor_wrap_y/2) JumpCursorTocentre();
else return 0;
return 1;
}
void ToggleCursor()
{
hide_mouse_cursor=!hide_mouse_cursor;
if(!hide_mouse_cursor) ShowCursor(1);
else ShowCursor(0) ;
}
int ScreenPosX(int client_x)
{
RECT r;
POINT p;
GetClientRect(hwnd, &r);
p.x = r.left + client_x;
p.y = r.top;
ClientToScreen(hwnd, &p);
return p.x;
}
int ScreenPosY(int client_y)
{
RECT r;
POINT p;
GetClientRect(hwnd, &r);
p.x = r.left;
p.y = r.top + client_y;
ClientToScreen(hwnd, &p);
return p.y;
}
int mouse_x = -1;
int mouse_y = -1;
int mouse_dx = -1;
int mouse_dy = -1;
int mouse_prev_x = -1;
int mouse_prev_y = -1;
int mouse_wheel_delta = 0;
void mouse_move(int x, int y)
{
mouse_dx = x - mouse_prev_x;
mouse_dy = y - mouse_prev_y;
mouse_prev_x = x ;
mouse_prev_y = y ;
mouse_x = x ;
mouse_y = y ;
}
void MouseProc(UINT message, WPARAM wparam, LPARAM lparam)
{
if( message==WM_SETCURSOR)
{
WORD ht = LOWORD(lparam);
static bool hiddencursor = false;
if (HTCLIENT==ht && !hiddencursor)
{
hiddencursor = true;
ShowCursor(false);
}
else if (HTCLIENT!=ht && hiddencursor)
{
hiddencursor = false;
ShowCursor(true);
}
}
if( message==WM_MOUSEMOVE)
{
int x = LOWORD(lparam);
int y = HIWORD(lparam);
// if(0)
if(ShouldSkipMoveTo(cursor_jump_x, cursor_jump_y))
{
// ?????????
mouse_dx = 0;
mouse_dy = 0;
mouse_prev_x = x ;
mouse_prev_y = y ;
mouse_x = x ;
mouse_y = y ;
}
else
{
mouse_move(x,y);
}
}
if( message==WM_MOUSEWHEEL)
{
mouse_wheel_delta = (short) HIWORD(wparam);
}
}
///????
int mouse_current_frame_x;
int mouse_current_frame_y;
int mouse_prev_frame_x;
int mouse_prev_frame_y;
int mouse_frame_dx;
int mouse_frame_dy;
void MouseFrame()
{
if( WrapMouse())
{
mouse_prev_frame_x = mouse_current_frame_x ;
mouse_prev_frame_y = mouse_current_frame_y ;
mouse_current_frame_x = ScreenPosX(mouse_x);
mouse_current_frame_y = ScreenPosY(mouse_y);
mouse_frame_dx = mouse_current_frame_x - mouse_prev_frame_x;
mouse_frame_dy = mouse_current_frame_y - mouse_prev_frame_y;
mouse_prev_frame_x = cursor_jump_x ;
mouse_prev_frame_y = cursor_jump_y ;
mouse_current_frame_x = cursor_jump_x;
mouse_current_frame_y = cursor_jump_y;
}
else
{
mouse_prev_frame_x = mouse_current_frame_x ;
mouse_prev_frame_y = mouse_current_frame_y ;
mouse_current_frame_x = ScreenPosX(mouse_x);
mouse_current_frame_y = ScreenPosY(mouse_y);
mouse_frame_dx = mouse_current_frame_x - mouse_prev_frame_x;
mouse_frame_dy = mouse_current_frame_y - mouse_prev_frame_y;
}
to cholerstwo sluzy tylko po temu by cofac skokami kursor i zarazem zwracac dobre
delty ruchu myszy ktore nie uwzgledniaja tych skokow
- jest to megasyfiasty kod na pol napisany na pol zgadniety (czy da sie to radykalnie
uproscic to nie wiem bo jest to tak durne ze nie chce mi sie zebrac by to
przemyslec), jesli chodzi o problemy z myszami to jest to jakies 20% wszystkich
problemow bo sa jeszcze problemy z ogarnianiem tego clipnietego kursora, i z obsluga
dwu myszy na raw input tak by jedna dzialala w zwyklym trybia a druga jako sensor
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-26 #Motodziennik 365 Powrót spalinowych Renault Megane i Scenica, Volvo EX60 oraz ID.Tiguan
- 2026-01-26 Ciekawe fikoły
- 2026-01-26 Toruń => Preseles Inżynier (background baz danych) <=
- 2026-01-26 sznurowadła kwestia prawna
- 2026-01-26 Białystok => Senior Frontend Developer React <=
- 2026-01-26 Warszawa => Consultant Microsoft Dynamics 365 Finance (F&O) <=
- 2026-01-25 Organizacja religijna i nielegalna sprzedaż
- 2026-01-25 Tego "księdza" powinni wywalić z kościołai z pracy w kościele
- 2026-01-25 Zbudowany przez studentów z Holandii samochód koncepcyjny ARIA
- 2026-01-25 Zbudowany przez studentów z Holandii samochód koncepcyjny ARIA
- 2026-01-25 "Teleportacja" polskich statków na pd. Bałtyku - rosyjska zabawa w zakłócanie GPS, Galileo, Beidou i GLONASS
- 2026-01-25 W trakcie porwania prez. Maduro wojsko USONA użyło tajnej broni masowego rażenia: Discombobulator
- 2026-01-25 rozmiar skrzyżowania
- 2026-01-24 Do czego prowadzą REGULACJE opiekuńczego państwa
- 2026-01-23 Stop na zielonym




Sprzedaż nowych mieszkań wyższa niż prognozy. Dokąd zmierza rynek?