![]() |
|||||
|
MOVER EL FONDO Ahora desarrollaremos un ejemplo que nos permite
crear el efecto de movimiento del fondo. Esta técnica es muy útil para hacerle
creer al usuario que los objetos se están moviendo en el universo creado para
el juego, mientras que en realidad lo único que se mueve es el fondo (en inglés
background) de la pantalla. Program RotarFondo // Se define el tamaño de la ventana Define AnchoPantalla As Int = 640 Define AltoPantalla As Int = 480 // Se crean las variables para
almacenar la información relevante //
sobre el sprite Define
NombreSprite As String Define
AltoSprite As Int Define AnchoSprite As Int Method DibujarCiudad() NombreSprite="CIUDAD" LoadSprite(NombreSprite,
"CityScape.png") // Se obtienen las
dimensiones del sprite AnchoSprite = GetSpriteWidth(
NombreSprite ) AltoSprite = GetSpriteHeight(
NombreSprite ) // Se le dice a KPL
que coloque el sprite de la ciudad en la // parte inferior de la pantalla, y que repita // horizontalmente la misma imagen hasta llenarla por // completo. Esto se hace para que el fondo llene toda la // pantalla aun si la imagen utilizada en el sprite es más // pequeña. TileSprite(
NombreSprite, 0, AltoPantalla - AltoSprite, AnchoPantalla + 2, AltoSprite, 0, 0 ) End Method Method Main() // Se le dice a KPL
que utilice nuestro tamaño personalizado // para la pantalla SetScreenSize(AnchoPantalla,AltoPantalla) // Se dibuja la
ciudad DibujarCiudad() While True BeginFrame() // Se copia una
porción de la parte izquierda de la // pantalla justo hacia el extremo derecho de la misma. // Hay que tener en
cuenta que la única parte de la // pantalla que este método copia son los sprites a los // cuales se les ha
aplicado la instrucción TileSprite CopyRect(
0, AltoPantalla -
AltoSprite, 1, AltoSprite, AnchoPantalla + 1, AltoPantalla - AltoSprite ) // Se rota todo el
ancho de la pantalla, desde la punta // de los edificios hasta la parte inferior de la // misma, un píxel a la izquierda. El
área que se rota // incluye la porción que se copió en el paso anterior. // De esta forma es
como se logra el efecto de // continuidad en el fondo. ScrollBackground(
0, AltoPantalla -
AltoSprite, AnchoPantalla + 2, AltoSprite, -1, 0 ) RefreshScreen() Delay(20) End While End Method End Program
|
|||||
|
|||||
![]() |
|||||