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
Visual Basic 6 - Come far riconoscere lo sfondo ...(vb6)
Forum - Visual Basic 6 - Come far riconoscere lo sfondo ...(vb6)

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
h3nk3rtofy (Normal User)
Rookie


Messaggi: 24
Iscritto: 23/01/2011

Segnala al moderatore
Postato alle 12:35
Lunedì, 24/01/2011
Ciao a tutti,
sto cercando di fare una "specie" di mappa dove vorrei far scorrere delle shape (o un immagine) e che queste  si accorgano del colore del sfondo che stanno scorrendo e cambiarlo con un altro colore se non corrisponde ad uno specifico.
cioè: se passa shape1 e trova azzurro cambia giallo, ma se trova giallo lascia tutto com'è. E cosi se ce anche una shape2.

Per spostare l'oggetto non ho problemi ma ho dei dubbi per:

la scelta di far scorrere una shape e giusta? oppure devo (voi siete più esperti) pensare più facile  e cioe far scorrere altra cosa nel form (una jpeg o altro) per poi rilevare e cambiare il colore del sfondo più facilmente?

e ancora:
mi conviene usare un'immagine come mappa oppure fare una specie di mappa (e qui non so come partire) dove costruire tutto? cioe strade, case, anche se grossolanamente perche mi serve solo per far scorrere qualcosa (che sembri un auto) e che riconosca lo sfondo.

questa è la prima volta che posto qui e spero di aver seguito tutte le regole del forum avendomi presentato in primis e poi cercato se ce già una soluzione al mio problema nel forum.

Saluto :)
ps: ho appena iniziato ma ho gia fatto un bel esercizio della paginazione della memoria in vb6 che spiega tutto il processo e appena capisco come si fa la posto (umilmente) forse serve a qualche studente come me.

PM Quote
Avatar
poeo85 (Normal User)
Pro


Messaggi: 104
Iscritto: 27/01/2010

Segnala al moderatore
Postato alle 14:10
Lunedì, 24/01/2011
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
' 37 e 39
If KeyCode = 37 Then
    Shape2.Left = Shape2.Left - 10
Else
    If KeyCode = 39 Then
        Shape2.Left = Shape2.Left + 10
    End If
End If

If Shape2.Left + Shape2.Width > Shape1.Left Then
    Shape2.FillColor = vbRed
Else
    Shape2.FillColor = &H8000000F
End If
End Sub

fai un nuovo progetto ed incolla questo codice...è simile a ciò che vuoi fare?


usa le due freccette per spostare la shape2

Ultima modifica effettuata da poeo85 il 25/01/2011 alle 10:23
PM Quote
Avatar
h3nk3rtofy (Normal User)
Rookie


Messaggi: 24
Iscritto: 23/01/2011

Segnala al moderatore
Postato alle 18:19
Lunedì, 24/01/2011
grazie provo e poi ti dico ,,,, :k:

PM Quote
Avatar
h3nk3rtofy (Normal User)
Rookie


Messaggi: 24
Iscritto: 23/01/2011

Segnala al moderatore
Postato alle 16:09
Martedì, 25/01/2011
@ poeo85 0 altri;

ho provato il tuo codice ma non e quello che mi serve. qui sotto ho messo pezzo di codice ( anche un immagine) per esempio con il punto dove non riesco a capire.
In pratica mi serve gestire la strada che la shape percorre, cambiando il colore al suo passaggio. io ho scelto un shape che passa sopra un'altra shape perche mi sembrava la via piu breve ma se voi avete altre idee ..... :idea::idea:
pensavo di cercare un immagine in rete  con disegnata già una mappa e poi gestire il passaggio della shape  (o altro) sopra e il  conseguente cambiamento di stato (colore) della strada, ma e troppo difficile per me.

codice in Visual Basic 6
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Avviocmd_Click()
  2.             ' qui faccio partire il timer1
  3.     Timer1.Enabled = True
  4.     Timer1.Interval = 100
  5.  
  6. End Sub
  7.  
  8.             ' qui fermo il timer1
  9. Private Sub stopcmd_Click()
  10.  
  11.     Timer1.Enabled = False
  12.    
  13. End Sub
  14.  
  15. Private Sub Timer1_Timer()
  16.             ' qui faccio lampeggiare shape2
  17. If Shape2.BackColor = 16776960 Then
  18.     Shape2.BackColor = RGB(255, 255, 255)
  19.    
  20. Else
  21.  
  22.     Shape2.BackColor = 16776960
  23.    
  24. End If
  25.         'qui sposto shape2
  26.     Shape2.Left = Shape2.Left + 10
  27.          
  28.     ' qui sotto vorrei che shape2 (quella azzurra nell'immagine)mentre avanza, potesse controllare
  29.     'il colore delle shape sottostanti (shape1 gialle ) e
  30.     ' cambiargli il colore al suo passaggio  da gialle ad azzurre.
  31.     'se invece sono azzurre lasciarle come sono.
  32.     ' ce solo un pezzetto ma, poi costruisco la mia mappa e la shape1 sarà la strada
  33.     'ps: ho provato una matrice di shape ma non so se va bene perche dovrebbero cambiare colore una alla volta.
  34.    
  35.     'if shape2.
  36.    
  37.     ' End if
  38.  
  39. End Sub



come sempre non possso che rigraziarvi anticipatamente. :k:


h3nk3rtofy ha allegato un file: esempio.jpeg (18232 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da h3nk3rtofy il 25/01/2011 alle 16:13
PM Quote
Avatar
poeo85 (Normal User)
Pro


Messaggi: 104
Iscritto: 27/01/2010

Segnala al moderatore
Postato alle 16:24
Martedì, 25/01/2011
ma tu vuoi fare una progress bar?

PM Quote
Avatar
h3nk3rtofy (Normal User)
Rookie


Messaggi: 24
Iscritto: 23/01/2011

Segnala al moderatore
Postato alle 16:55
Martedì, 25/01/2011
poeo85

progress bar?  vai piano poeo ho appena iniziato. grazie comunque, ma non so cosa sia una progress bar.

mi sono messo in testa di fare un "oggetto" (qualsiasi shape immagine ecc) che simuli il cambiamento di stato della strada al suo passaggio in una mappa.
cioe che si veda che al passaggio cambi lo sfondo dove passa ma progressivamente.
allora pensavo di costruire una specie di mappa con strade fatte di shape ma perche altre strade non so percorrerle. sarebbe bello gestire un'immagine di una mappa e da qui far girare "l'oggetto" e cambiare il colore della strada della mappa al passaggio ma non mi azzardo a fare una cosa del genere troppo difficile.
quindi mi costruisco un specie di mappa le strade e pensavo di gestire la starda come spiegato sopra. ma ho quel problema che non capisco come far controllare alla shape il colore della shape sottostante e cambiarlo nel caso non fosse quello stabilito. una specie di scia che ricolora la strada se non e del colore prestabilito.

poi (qui so come fare) dovrò fare in modo che ridiventi il colore di prima dopo un tot di tempo. :idea:

ciao e sempre grazie

PM Quote
Avatar
poeo85 (Normal User)
Pro


Messaggi: 104
Iscritto: 27/01/2010

Segnala al moderatore
Postato alle 17:16
Martedì, 25/01/2011
quando arrivo a casa ci do un occhio...poi edito questo post

la progress bar era per intendere la barretta di caricamento per esempio quando fai l'upload (caricamento) di una immagine in internet che vedi quanto ha caricato e quanto manca...

comunque dopo provo a vedere una soluzione e te la propongo che domani a lavoro sarà l'inferno.

PM Quote
Avatar
h3nk3rtofy (Normal User)
Rookie


Messaggi: 24
Iscritto: 23/01/2011

Segnala al moderatore
Postato alle 18:07
Martedì, 25/01/2011
@ poeo85

allora le so fare le progress bar e belle anche. :k:

ma io ho la neccessità di avere sotto controllo il progetto che ti parlavo.

mi basta capire come fare in modo che al passaggio della shape riconosca il colore della shape sottostante e cambi se non e quella prestabilita.

nell'esempio avevo pensato (ma non so se giusto) ad una matrice di shape: per evitare di controllare troppe shape che dovrò  costruire su tutta la mappa.
nel senso che, se la shape che scorre sopra le altre sotto, sono costretto a dirgli :

se shape1  va sopra shape2 e shape 2 ha colorex cambia in colorey
se shape1  va sopra shape3 e shape 3 ha colorex cambia in colorey

e cosi via per tutta la strada della mappa e capirai che è alquanto paradossale
ecco perche pensavo ad una matrice di shape cosi bastava (penso) dirgli di cambiare con l'index della shape. e se ho capito bene avrebbe cambiato le shape una la volta al passaggio.
cioe (se è giusto)
se shape1  va sopra shape.index e shape.index ha colorex cambia in colorey

ed e ok cosi (sempre se e giusto quella che penso.

ciao troppo gentile e troppa pazienza hai. bye :):)


PM Quote
Avatar
poeo85 (Normal User)
Pro


Messaggi: 104
Iscritto: 27/01/2010

Segnala al moderatore
Postato alle 19:26
Martedì, 25/01/2011
Codice sorgente - presumibilmente VB.NET

  1. Option Explicit
  2. Dim contatore As Integer
  3. Private Sub Avviocmd_Click()
  4.     ' qui faccio partire il timer1
  5.     Timer1.Enabled = True
  6.     Timer1.Interval = 100
  7. End Sub
  8.  
  9. Private Sub ClearCmd_Click()
  10. Dim i As Integer
  11.     For i = 0 To shpSfondo.Count - 1
  12.         shpSfondo(i).BackColor = vbYellow
  13.     Next i
  14. End Sub
  15.  
  16. Private Sub Form_Load()
  17.     shpMove.BackColor = vbBlue
  18.     shpSfondo(0).BackColor = vbYellow
  19.     contatore = 0
  20. End Sub
  21. ' qui fermo il timer1
  22. Private Sub stopcmd_Click()
  23.     Timer1.Enabled = False
  24. End Sub
  25. Private Sub Timer1_Timer()
  26.             ' qui faccio lampeggiare shape2
  27.     If shpMove.BackColor = 16776960 Then
  28.         shpMove.BackColor = RGB(255, 255, 255)
  29.     Else
  30.         shpMove.BackColor = 16776960
  31.     End If
  32.         'qui sposto shape2
  33.     shpMove.Left = shpMove.Left + 10
  34.     If contatore >= shpSfondo.Count Then
  35.         contatore = 0
  36.         Timer1.Enabled = False
  37.     Else
  38.         If shpMove.Left + shpMove.Width >= shpSfondo(contatore).Left Then
  39.             shpSfondo(contatore).BackColor = vbBlue
  40.             contatore = contatore + 1
  41.         End If
  42.     End If
  43. End Sub




prova a vedere se va come volevi...c'è da sistemare qualcosa ma mi sembra che tu ce la possa fare :k:

altrimenti sai dove trovarmi

Ultima modifica effettuata da poeo85 il 25/01/2011 alle 19:29
PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo