Nokioteca [Nokia] Forum: [mshell] Collegare Disegno Ad Un Comando - Nokioteca [Nokia] Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[mshell] Collegare Disegno Ad Un Comando

#1 L   noki57oo 

  • Millennium Member
  • Gruppo: Modder
  • Messaggi: 1881
  • Iscritto: 22 giugno 2008
  • Località:verona
  • Cellulare:N8
  • Firmware:Belle by noki57oo

Inviato 22 maggio 2009 - 20:19

come faccio a collegare un disegno (con il mudulo graph) ad un comando, cioè, se premo 1, voglio ordinargli di muoversi a sinistra (ad un rettangolo per esempio), come faccio?
grazie
(era da un po che non mi facevo vedere...)
0

#2 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 22 maggio 2009 - 22:03

Visualizza Messagginoki57oo, il 22/05/2009 - 21:19, ha scritto:

come faccio a collegare un disegno (con il mudulo graph) ad un comando, cioè, se premo 1, voglio ordinargli di muoversi a sinistra (ad un rettangolo per esempio), come faccio?
grazie
(era da un po che non mi facevo vedere...)


Vai a questo post e preleva ball4.txt caricatelo come ball4.m e vedi se è così che vuoi gestire il rettangolo?
(Nota usa il joystick destra-sinistra per muovere il rettangolo)
Per visualizzare questo link registrati o esegui il log in.


Poi cerca di capire come questo semplice esempio gestisce i tasti e fammi sapere se era così che volevi fare.
Ciao........

Messaggio modificato da lento il 23 maggio 2009 - 07:51

0

#3 L   Il.Socio 

  • Nokioteca Staff
  • Gruppo: Moderatore
  • Messaggi: 7142
  • Iscritto: 02 dicembre 2005
  • Località:Torino
  • Cellulare:N8-00

Inviato 23 maggio 2009 - 03:14

Mi raccomando i titoli!!!
"Domanda mshell" non e' un titolo significativo!!!
Per segnalare allo Staff un messaggio non conforme al regolamento è sufficiente premere il bottone "Segnala" posizionato in basso a sinistra di ciascun messaggio.
0

#4 L   noki57oo 

  • Millennium Member
  • Gruppo: Modder
  • Messaggi: 1881
  • Iscritto: 22 giugno 2008
  • Località:verona
  • Cellulare:N8
  • Firmware:Belle by noki57oo

Inviato 23 maggio 2009 - 08:41

Visualizza Messaggilento, il 22/05/2009 - 23:03, ha scritto:

Vai a questo post e preleva ball4.txt caricatelo come ball4.m e vedi se è così che vuoi gestire il rettangolo?
(Nota usa il joystick destra-sinistra per muovere il rettangolo)
Per visualizzare questo link registrati o esegui il log in.


Poi cerca di capire come questo semplice esempio gestisce i tasti e fammi sapere se era così che volevi fare.
Ciao........


grazie, adesso provo

Visualizza MessaggiIl.Socio, il 23/05/2009 - 04:14, ha scritto:

Mi raccomando i titoli!!!
"Domanda mshell" non e' un titolo significativo!!!


hai ragione, la prossima staro piu attento
0

#5 L   noki57oo 

  • Millennium Member
  • Gruppo: Modder
  • Messaggi: 1881
  • Iscritto: 22 giugno 2008
  • Località:verona
  • Cellulare:N8
  • Firmware:Belle by noki57oo

Inviato 23 maggio 2009 - 09:19

adesso ho un altro problema, coma faccio a far muovere un'immagine?
EDIT:un'altra cosa, perche avendo lasciato solo il rettangolo, dopo un po torna nella posizione iniziale?
EDIT2:come aggiungo le collisioni?

Messaggio modificato da noki57oo il 23 maggio 2009 - 15:42

0

#6 L   noki57oo 

  • Millennium Member
  • Gruppo: Modder
  • Messaggi: 1881
  • Iscritto: 22 giugno 2008
  • Località:verona
  • Cellulare:N8
  • Firmware:Belle by noki57oo

Inviato 23 maggio 2009 - 11:39

che ve ne pare? ok, lo so sono bravo, ma mi potete rispondere alle 3 domande?
use graph as g,ui
ui.menu("menu",["*****","esci"]);
c=ui.cmd();
while true do
if c="*****" then
x=4;
y=104;
iy=-2;
ix=2;
py=120;
tt=0;
a=160;

g.size(240,320);
g.full(true);
ui.keys(true,false);
g.bg(g.black);

g.clear();
do
 x=x+ix;  y=y+iy;
 if x<0 then ix= -ix; end;
 if y<0 or y>225 then iy= -iy; end;

g.pen(g.white);
g.line(5,0,5,320);
g.pen(g.white);
g.line(235,0,235,320);
g.pen(g.white);
g.line(120,0,120,320);
g.pen(g.black); g.brush(g.red);
g.rect(py,a,85,145);

 g.show();
 tasto=ui.cmd(5);
 if x>300 then
  if (y> py) and (y<py+20) then
   ix= -ix;
  else
   tasto=48;
  end;
 end;
 g.pen(g.black); g.brush(g.black); 
g.rect(py,a,85,145); 
if tasto=14 or tasto=15 then tt=tasto; end;
 if tasto=-14 or tasto=-15 then tt=0; end; 
if tasto=16 or tasto=17 then tt=tasto; end;
 if tasto=-16 or tasto=-17 then tt=0; end; 
 if (tt=14) and (py>1) then py=py -4; end;
 if (tt=15) and (py<220)   then py=py +4;  end;
if (tt=17)   then a=a +4; end;
if (tt=16)   then a=a -4; end;
until tasto=48;
end;
if c="esci" then break end
end;

Messaggio modificato da noki57oo il 23 maggio 2009 - 15:42

0

#7 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 23 maggio 2009 - 16:53

Visualizza Messagginoki57oo, il 23/05/2009 - 12:39, ha scritto:

che ve ne pare? ok, lo so sono bravo, ma mi potete rispondere alle 3 domande?

Se ti riferisi al sottoscritto Scusa ma fino al giorno 30 ho poco tempo...
Per l'ultima volta vi imploro di identare ste programmi :thumbs: alrimenti Mi getterò nel baratro del caos informatico da cui non potrò più far ritorno.

Ho notato un tentativo di identazione forse non ti è completamente chiaro il metodo per farlo leggi qui
Per visualizzare questo link registrati o esegui il log in.


Per aiutarti ti allego il tuo programma identato Download file  Noki57_i.txt (1,11K)
Numero di downloads: 2 e qui evidenzio con le lettere ì-ù-ò-è-à i blocchi di istruzioni che vanno identati.
use graph as g,ui
ui.menu("menu",["*****","esci"]);
c=ui.cmd();
while true do //<-----while c="*****" do
ì if c="*****" then // <---- non serve
ì ù x=4;
ì ù y=104;
ì ù iy=-2;
ì ù ix=2;
ì ù py=120;
ì ù tt=0;
ì ù a=160;
ì ù
ì ù g.size(240,320);
ì ù g.full(true);
ì ù ui.keys(true,false);
ì ù g.bg(g.black);
ì ù 
ì ù g.clear();
ì ù do
ì ù ò x=x+ix;  y=y+iy;
ì ù ò if x<0 then ix= -ix; end;
ì ù ò if y<0 or y>225 then iy= -iy; end;
ì ù ò
ì ù ò g.pen(g.white)ì;
ì ù ò g.line(5,0,5,320);
ì ù ò g.pen(g.white);
ì ù ò g.line(235,0,235,320);
ì ù ò g.pen(g.white);
ì ù ò g.line(120,0,120,320);
ì ù ò g.pen(g.black); g.brush(g.red);
ì ù ò g.rect(py,a,85,145);
ì ù ò
ì ù ò g.show();
ì ù ò tasto=ui.cmd(5);
ì ù ò if x>300 then
ì ù ò è if (y> py) and (y<py+20) then
ì ù ò è à ix= -ix;
ì ù ò è else
ì ù ò è à tasto=48;	// <--- anche senza premere tasti dopo n cicli si verifica
ì ù ò è end;
ì ù ò end;
ì ù ò g.pen(g.black); g.brush(g.black);
ì ù ò g.rect(py,a,85,145);
ì ù ò if tasto=14 or tasto=15 then tt=tasto; end;
ì ù ò if tasto=-14 or tasto=-15 then tt=0; end;
ì ù ò if tasto=16 or tasto=17 then tt=tasto; end;
ì ù ò if tasto=-16 or tasto=-17 then tt=0; end;
ì ù ò if (tt=14) and (py>1) then py=py -4; end;
ì ù ò if (tt=15) and (py<220)   then py=py +4;  end;
ì ù ò if (tt=17)   then a=a +4; end;
ì ù ò if (tt=16)   then a=a -4; end;
ì ù until tasto=48;
ì end;
ì if c="esci" then break end // <---- non serve
end;

Come vedi il blocco indicato da (ò) del do.....until tasto=48; continua a ciclare anche se non premi un tasto quindi
continua a incrementare (decrementare) i valori x,y sino a far attivare l'istruzione tasto=48
che genera l'uscita dal blocco (ò) ma non dal blocco (ù) quindi resetta al valore originario le variabili e ripete tutto.

Quello che ti ho passato era una lettura non bloccante della tastiera.
Forse a te serve che il programma si fermi all'istruzione tasto=ui.cmd(5); in attesa della pressione di un tasto.
in tal caso tasto=ui.cmd(-1); oltre a riconsigliarti di leggere la guida di 'masmil1988'
metti anche il comando ui.keys(true,false); in questo modo ui.keys(false,false);
in tal caso anche il controllo dei tasti negativi lo puoi eliminare.

Per caricare un immagine e muoverla a ri leggete la guida di 'masmil1988'. :rolleyes:
variabile=g.icon("e:\\Images\\immagine.png"); così la carichi in una variabile
g.pu(x,y,variabile); così la stampi.

Per le immagini chiedi aiuto a '6587gianluca' le sà gestire bene e può darti una mano anche per le trasparenze.

Credimi su quanto riporto possono esserci errori scusa ho dovuto redigere di corsa.

Ciao....
0

#8 L   noki57oo 

  • Millennium Member
  • Gruppo: Modder
  • Messaggi: 1881
  • Iscritto: 22 giugno 2008
  • Località:verona
  • Cellulare:N8
  • Firmware:Belle by noki57oo

Inviato 23 maggio 2009 - 16:59

posso dire solo una cosa, grazie mille

Messaggio modificato da Il.Socio il 23 maggio 2009 - 20:09
Motivo della modifica: Evita di usare i bottoni "Quote" o "Reply" se non sai come usarli... Per andare sul sicuro, usa i bottoni "Fast Reply" o "Post Reply" :)

0

#9 L   noki57oo 

  • Millennium Member
  • Gruppo: Modder
  • Messaggi: 1881
  • Iscritto: 22 giugno 2008
  • Località:verona
  • Cellulare:N8
  • Firmware:Belle by noki57oo

Inviato 23 maggio 2009 - 17:21

ora non torna piu alla posizione iniziale, ora posso continuare lo sviluppo!
0

Condividi questa discussione:


Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione