Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Un paio di domande sul canvas

    Ciao a tutti, sono uno studente di quinta superiore e sto cercando di sviluppare un gioco col canvas.
    Perdonate la stupidità delle domande.

    1. Nel gioco ci sono delle immagini le quali, cliccate, dovrebbero produrre degli eventi.
    C'è qualche tipo immagine con implementate queste funzionalità? Oppure esiste un modo per farlo?

    2. Vorrei inoltre creare un menu (es.: Gioca, Opzioni, Esci...), sempre in canvas (in sostanza vorrei questa volta delle scritte al cui click avviene un evento). Come si fa?

    Spero di essere stato chiaro.
    Grazie a tutti!
    Please, don't leave any threads alive

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Il Canvas non è lo strumento ideale per fare ciò che ti serve. Esso è un componente che permette di essere disegnato e/o a ricevere eventi.

    Può andar bene per disegnare un'immagine e ricevere eventi di clic su di essa (lavorandoci un po' con il MouseListener e le coordinate del clic), ma per i menu ti suggerisco di studiarti le classi che servono a questo scopo: MenuBar, Menu e MenuItem (visto che lavori con AWT) del package java.awt e le classi ActionListener e ActionEvent del package java.awt.event per la gestione degli input dal mouse.

    Immagino che a scuola vi stiano insegnando espressamente AWT perchè, per iniziare, è giusto conoscerlo. E' per questo che ti ho suggerito le classi AWT da studiare e non le controparti Swing... se, al contrario, avete iniziato a vedere Swing (ma parli di Canvas, quindi non credo), allora abbandona Canvas e compagnia bella.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Quindi dici che l'unico modo con il canvas è lavorare sulle coordinate memorizzate?
    Non esistono metodi appositi?
    Comunque ho scelto di usare canvas invece di swing perchè per il resto del programma mi viene più comodo, in quanto i componenti vari come jlabel ecc.. rallenterebbero il tutto durante i movimenti delle immagini..
    Grazie della risposta!
    Please, don't leave any threads alive

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da mirko.bertani
    Quindi dici che l'unico modo con il canvas è lavorare sulle coordinate memorizzate?
    Non esistono metodi appositi?
    Comunque ho scelto di usare canvas invece di swing perchè per il resto del programma mi viene più comodo, in quanto i componenti vari come jlabel ecc.. rallenterebbero il tutto durante i movimenti delle immagini..
    Grazie della risposta!
    Ehm... non ho capito in che modo i componenti Swing rallentino durante i movimenti (forse perchè ancora non avete visto i thread? Senza thread non ci sono animazioni... nemmeno con AWT), in ogni caso ti avviso che mescolare componenti Swing e AWT non è cosa da farsi: Swing e AWT lavorano su layer differenti e vengono "disegnati" in modo diverso. Se mescolati, i comportamenti (a livello visivo) non sono predicibili, comportando anomalie nell'esecuzione (ti troveresti con componenti che vanno a finire sotto altri, ecc). Quindi, no... non lo fare. Se usi Canvas, non usare Swing e viceversa.

    Usando Swing, per di più, hai molte meno complicazioni: ti basta una JLabel per visualizzare l'immagine ed intercettarne eventuali clic (senza dover star lì "impazzire" con le coordinate).

    PS: al posto del canvas puoi tranquillamente usare un JPanel in Swing... solo che per i componenti Swing non si ridefinisce il metodo paint(), ma paintComponent().

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Si si i Thread ovviamente li abbiamo fatti, ma proprio perchè ero abituato a usare swing ho avuto un po' di difficoltà ad adattarmi al canvas, probabilmente è per questo che sembro un po' confuso nelle domande.
    Comunque grazie sei stato molto chiaro e credo di aver capito cosa intendi!
    Prenderò una decisione sul da farsi.
    Grazie ancora ciao!
    Please, don't leave any threads alive

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.