% -*- mode: latex; -*- mustache tags:  
\ifx\wholebook\relax\else

	\documentclass[10pt,twoside,english]{root/support/latex/sbabook/sbabook}
  \usepackage{import}
  \subimport{root/support/latex/}{common.tex}

  \hypersetup{pdfinfo = {
    Title = {{Pharo Mooc}},
    Author = {},
    Keywords = {pharo, smalltalk}}}
  \begin{document}
\fi

\chapter{D\'{e}fi 4 - Solution}
Comment cr\'{e}er une fen\^{e}tre pour un simple jeu. Cette fen\^{e}tre doit \^{e}tre capable de contenir une image immense comme fond sur lequel on pourra d\'{e}poser des pi\`{e}ces et que ce fond soit scrollable pour d\'{e}couvrir les parties non visibles directement. 
Vous pouvez r\'{e}cup\'{e}rer sur le site \url{http://imgur.com/} des images en utilisant l'url suivante: \url{http://i.imgur.com/}. Les images suivantes \url{http://imgur.com/gallery/OssbQN3.jpeg} et \url{http://i.imgur.com/XXxgr7x.jpeg} se pr\^{e}tent particuli\`{e}rement \`{a} des fonds de cartes.

La solution peut ressembler \`{a} la figure ci-dessous.
\subsection{Indices : }
\begin{itemize}
\item Vous pouvez cr\'{e}er une morph \`{a} partir d'une image en utilisant \textcode{AlphaImageMorph withForm:}
\item Vous pouvez obtenir la taille de l'image (pratique pour cr\'{e}er une PasteUpMorph de bonne taille) vous pouvez utiliser les messages \textcode{width} et \textcode{height}.
\item Vous pouvez downloader une image avec \textcode{ZnEasy getJpeg: url}
\item Regardez \textcode{PasteUpMorph}. Cette morph est une morph pour d\'{e}poser des morphs dedans. Pour d\'{e}finir la taille d'une paste up morph, utiliser le message \textcode{extent:}. Pour d\'{e}finir une morph dans le fond d'une pasteUp, utiliser le message \textcode{backgroundMorph:}
\item Vous allez avoir besoin d'ajouter des scrollbars: Utilisez une \textcode{ScrollPane} morph: Utiliser \textcode{aScrollPane scroller addMorph: aPasteUp} pour mettre des scrollbars autour de \textcode{aPasteUp}.
\end{itemize}


\begin{figure}

\begin{center}
\includegraphics[width=0.8\textwidth]{figures/map.png}\caption{Une superbe carte avec une morph orange. \label{figures/map.png}}\end{center}
\end{figure}

\section{Solution}
\begin{displaycode}{smalltalk}
	| window pane board background |

	background := AlphaImageMorph withForm: (ZnEasy getJpeg: 'http://i.imgur.com/XXxgr7x.jpg').
	background lock.

	board := PasteUpMorph new.
	board 
		color: Color gray;
		borderWidth: 3;
		borderColor: Color black;
		extent: background width@ background height; 
		backgroundMorph: background;
		addMorph: (CircleMorph new color: Color cyan; position: 41@23; yourself);
		addMorph: (Morph new color: Color orange; position: 1200@1200; yourself).

	pane := ScrollPane new.
	pane scroller addMorph: board.

	window := pane openInWindow.
	window position: 20@20; extent: 420@420.
\end{displaycode}


\ifx\wholebook\relax\else
\end{document}
\fi