Beruflich Dokumente
Kultur Dokumente
Minigolf
Minigolf
Este ejemplo muestra cmo usar el Fling (deslizamiento) y los gestos TouchUp(tocar) y
TouchDown(soltar).
Para jugar a este minijuego el jugador primero posiciona su pelota en soporte y entonces
puede lanzarla hacia el agujero, la pelota rebotar contra los obstculos y paredes. Por cada
lanzamiento el contador de golpes aumentar. La puntuacin total es el nmero de golpes
utilizados.
Parte 1 Crea una nueva App y una pelota que responda a los
lanzamientos
Vamos a construir esta aplicacin por etapas, aadiendo una funcionalidad del juego cada vez.
AccedealAppInventorycreaunnuevoproyectoconelnombreMinigolf.Cuandoseabrela
ventana de diseo observa que AppInventor automtica mente nombra la primera pantalla
comoScreen1,peropuedescambiarlo.
En la pantalla de Propiedades (panel de la derecha). Desmarca la Checkbox llamada
Scrollableparaquelapantallanosemuevamientraslaappestenmarcha.Laspantallasen
lasquesepuedehacerscroll(deslizaryquesemueva)notienenunaalturadeterminada.Al
nopermitirelscrollennuestraApptendremosquedefinirla.
Aade los siguientes componentes en el designer:
Component
Type
Palette
Group
Nombre Objetivo Properties
Canvas1 Basic Canvas1 Elcanvasserelcampo
degolf
Height:300
Width:FillParent
BackgroundColor:Verdeodelcolorque
quieras;)
BallSprite Animation GolfBall Estaeslapelotaquehay
quemeterenelagujero
Radius=10
Color:Blanco(tpico)
Speed:0
Interval:1(ms)
Z=2(asaparecerporencimadelcampoz=0)
BallSprite Animation Hole Esteseraelagujero Radius=15
Color:negro(porejemplo)
Speed:0
Clock1 Basic Clock1 Controlarel
movimientodelapelota
respectodeltiempo
TimerAlwaysFires
TimerEnabled
TimerInterval:100
Se atasca la pelota en el borde?
Estoesfcilmentesolucionableconestepequeobloque.Puedesencontrarelbloqueedge
(borde)debajodeMydefinitions.
EntoncesaadiremosaleventoGolfBall.Flunglosbloquesqueseencuentranrecuadradosen
rojo.
Ylossiguientesbloquesaleventoquecontrolacuandolapelotaentraenelagujero:
Con estos cambios deberas ver los contadores Total Strokes (golpes totales) y This Hole
(este agujero) en la parte superior de la pantalla. Ambos aumentarn una unidad con cada
lanzamientodelapelotaperoelcontadorThisHolesepondra0cuandolapelotaentreen
elhoyo.
Parte 3: Posicionar la pelota en el soporte usando los eventos
TouchUp y TouchDown
Yatenemosunjuegoquefunciona!Peroahoravamosahacerlomsinteresanteydivertido.
Primero colocaremos un soporte y dejaremos al jugador posicionar la pelota de golf en l
antesdeempezaralanzarla.
Vuelve al Designer y aade tres nuevos componentes:
Component
Type
Palette
Group
What Youll
Name It
Purpose Properties
ImageSprite Animation Tee Un area rectangular en la que el
jugador puede colocar la pelota
antes de lanzarla.
Sube la imagen del
soporte (ctrl+click
para descargar).
ImageSprite Animation LeftSprite Esta es una fleche que el jugador
usar para mover la pelota hacia
la izquierda en el Tee
(soporte).
Sube la imagen de la
flecha (ctrl+click para
descargar)
ImageSprite Animation RightSprite Esta es una fleche que el jugador
usar para mover la pelota hacia
la derecha en el Tee (soporte).
Sube la imagen de la
flecha (ctrl+click para
descargar
Programa el tamao del canvas y la colocacin de la pelota:
Primero programa la disposicin de los componentes anteriores en pantalla. Lo mejor para
acomodarse a todos los tamaos de pantalla es colocar los objetos en la pantalla en relacin
con el tamao de la pantalla de forma que en pantallas ms grandes las imgenes se vern
ms grandes y si las pantallas son pequeas las imgenes se vern pequeas. De forma que
siempreseverbienindependientementedeltamaoyresolucindelapantalla.
Los bloques de abajo muestran cmo crear la pantalla dinmicamente para que todo est
donde tenga que estar y tenga el tamao que tiene que tener. Empezamos haciendo que el
canvasseadeltamaodelapantallaydespuscolocamoscadaobjetoenrelacinaltamao
delcanvas.Intentacomprenderestosbloquesantesdecontinuar.
Posicionar la pelota de golf en el Tee (soporte) usando TouchUp y TouchDown en
las imgenes de las flechas:
Paracontrolarestocrearemos2variablesglobalesmsqueseactivarncadavezquesepulsa
suflecha.
Encadapartidaeljugadorpuedeposicionarlapelotaencualquierlugardelteeantesde
lanzarlapelota.Paraprogramaresto,primerotienesqueasegurartedequelapelotanoha
sidolanzadaya.Sielnmerodelanzamientos=0sabemosquesepuedemoverlapelota.
LosbloquesdentrodeClock1.Timersehanmovidoaunnuevoprocedure(mtodo)
llamadoMoveBallOnCourse.
Defineunanuevavariableglobalparatenerunseguimientodelnmerodehoyo:
AadelossiguientesbloquesalmtodoSetupNewHole
Programa el botn New Game (juego nuevo), el cual es muy simple. Cuando se pulsa el
botn tenemos que resetear un montn de variables y por ltimo llamaremos a
SetupNewHole(paraquegenereunnivelaleatorio).
Cadavezquesereseteeeljuegoelobstculosecolocaraleatoriamente.Aadeestebloqueal
procedure(mtodo)SetupNewHole:
Y ya est ;). Comparte la apk con tus amigos y prueba el juego para ver que todo funciona
como tiene que funcionar. En este juego se utiliza muchsimo la aleatoriedad, es algo normal
para que que el juego siempre sea diferente y los jugadores no se aburran as que intenta
introducirlaentusjuegos.
Parte 5: retos
Aquhay3retosquepuedenhacertujuegomejor.
Reto1:programalacolisinentrelabolayelhoyoparaquelabolasoloentresillevapoca
velocidad(comoenlavidareal).
Reto2:Hayunpequeobug(error)cuandolapelotagolpealosladosverticalesdel
obstculo.Piensaencmosolucionaresteproblemaparaquelapelotareboteenladireccin
esperada.
Reto3:Limitaelnmerodehoyosporjuego.Mantnlacuentadelnmerodehoyosyacaba
eljuegodespusdeunnmero.(Unminigolftpicotiene18hoyos).
Resumen:
Elproyectoalfinalquedatalqueas:
Aladerechapodemosverelpanelde
Componentes
AbajopodemosverelBlocksEditorresultante