Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Scrollbar non trovo una soluzione
Forum - C# / VB.NET - Scrollbar non trovo una soluzione

Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 10:38
Mercoledì, 07/12/2016
Salve ragazzi, sono stato l'intera giornata a tentare di far funzionare una scrollbar come si deve
ma per quanto mi abbia potuto tirare i capelli non sono riuscito a farla funzionare.
ho provato 10mila modi possibili ma nulla.

Vi spiego il problema

Per prima cosa guardate questa immagine

https://cdn.discordapp.com/attachments/204694484758429697/2 ...

Sto renderizzando in mono.
ogni blocco misura 32x32

Dunque, ho un controllo che misura 800 x 600 Pixel

Mentre la dimensione reale della mappa è di 960 x 640 ( 30 x 20 ) blocchi esempio

Se io vedo 800 pixel sò per certo che gli altri 160 pixel sono invisibili perché si trovano dove l'utente non riesce a vedere.

( 800 - 600 = 160)  in questo caso ho una differenza di 160 pixel

Ora ho una ScrollBar orizzontale
dove il suo valore minimo è 0
il suo valore massimo e 1024

dovrei fare in modo di dividere qui 1000 per quanti spostamenti siano necessari per scrollare la mappa.

ho scritto questo

Codice sorgente - presumibilmente C++

  1. int grandezza_da_spostare = editor1.MapSize_Width - 800;
  2.             float sposta = mrhScrollBar1.Maximum / grandezza_da_spostare;
  3.  
  4.             float spostamenti = mrhScrollBar1.Value / grandezza_da_spostare;
  5.  
  6.             float val = sposta * 32 - spostamenti;
  7.  
  8.          
  9.             editor1.MoveCamX((spostamenti-1) * 32);



fin quando la mappa è di 30 blocchi (30*32 = 960 - 800 = 160 ) funziona
ma se metto tipo 35 blocchi non funziona più

qualche idea?



https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:49
Mercoledì, 07/12/2016
Dove e come allochi lo spazio?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 11:01
Mercoledì, 07/12/2016
nei metodi get e set

creo un mappa in questo modo


NewMap(30,30)  esempio


parametro w,h
editor1.Map_Width = (w*32);
editor1.Map_Height = (h * 32);


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote