Directorio para programación avanzada de juegos Java
1.1 Actualizar a Java 1.4 1
1.2 Clase de kernel 1
1.3 Ejecutar el programa de versión demo en línea 2
1.4 Profundizar en biblioteca de juegos 3
1.4.1 directorio croftsoft 3
1.4.2 directorio arc 4
1.4.3 directorio bin 4
1.4 .4 Directorio doc 4
1.4.5 directorio ext 5
1.4.6 directorio lib 5
1.4.7 directorio lic 5
1.4.8 directorio res 5
1.4.9 directorio src 6
1.4.10 directorio tmp 6
1.5 Introducción a XML 6
1.6 Usar la compilación con Ant 7
1.7 Trabajar con código abierto 10
1.7.1 Aprender los conceptos básicos de los derechos de autor 10
1.7.2 Elegir una licencia 11
1.7.3 Cambiar el nombre del código modificado 12
1.7.4 ***Compartir el código fuente 13
1.8 Obtener recursos multimedia para el juego 13
1.8.1 Recursos de imágenes 13
1.8.2 Recursos de audio 14
1.9 Ejemplo básico 15
1.9.1 Modificar el código fuente 15
1.9.2 Modificar el archivo de compilación 26
1.10 Resumen 27
1.11 Referencias 27 2.1 Implementar como subprograma 28
2.1. 1 Implementar el método del ciclo de vida 28
2.1.2 Administrar subprocesos de animación de subprogramas 30
2.1.3 Leer archivos JAR 34
2.1.4 Usar complementos para actualizar clientes 36
2.1.5 Comprender las limitaciones 38
2.1.6 Firma de subprogramas 38
2.1.7 Almacenamiento en caché de subprogramas 39
2.2 Implementar como JAR ejecutable 39
2.2.1 Generar archivo de manifiesto 39
2.2.2 Proteger contra la inseguridad 40
2.3 Implementar con Java Web Start 40 p >
2.3.1 Preparar archivos para la versión 41
2.3.2 Acceder al navegador predeterminado 43
2.3.3 Usar reflexión para enlaces dinámicos 46
2.4 Implementar múltiples subprogramas en un solo subprograma 47
2.4.1 MultiAppletStup 48
2.4.2 MultiAppletNews 50
2.4.3 Ciclo de vida 54
2.4.4 LifecycleWindowListener 54
2.4.5 MultiApplet 58
2.4.6 CroftSoftCollection 65
2.5 Resumen 67
2.6 Referencia Literatura 68 3.1 ComponentAnimator 69
3.1.1 Fase de actualización y dibujo 70
3.1.2 Definición de sprite 70
3.1.3 EjemploAnimator 71
3.2 RepaintCollector 73
3.2.1 Serialización de Swing 73
<p>3.2.2 Problemas con la animación 73
3.2.3 RepaintCollector 75
3.2.4 SimpleRepaintCollector 75
3.2.5 BooleanRepaintCollector 77
3.2.6 CoalescingRepaintCollector 78
3.2.7 Otras implementaciones 81
3.3 LoopGovernor 81
3.3.1 Retraso fijo 82
3.3.2 Sincronización de velocidad de fotogramas 84
3.3.3 SamplerLoopGovernor 85
3.3.4 WindowedLoopGovernor 85
3.4 AnimatedComponent 90
3.5 Resumen 98
3.6 Referencias 98 4.1 Implementación de ComponentPainter 99
4.1.1 NullComponentPainter 99
4.1.2 ArrayComponentPainter 99
4.1. 101
4.1.4 SpacePainter 103
4.1.5 TilePainter 106
4.2 Implementación de ComponentUpdater 114
4.2.1 NullComponentUpdater 114 p>
4.2.2 ArrayComponentUpdater 115
4.2.3 EdgeScrollUpdater 115
4.3 Implementación de ComponentAnimator 120
4.3.1 NullComponentAnimator 120
4.3.2 TileAnimator 120
4.3.3 FrameRateAnimator 122
4.3.4 CursorAnimator 126
4.4 Implementación de Sprite 131
4.4 .1 Sprite 131
4.4.2 AbstractSprite 132
4.4.3 IconSprite 135
4.4.4 BounceUpdater 137
4.4 .5 IconSequenceUpdater 141
4.5 Resumen 143 5.1 Imagen acelerada por hardware 144
5.1.1 Imagen 144
5.1.2 Imagen en búfer 145
5.1. 3 VolatileImage 145
5.1.4 Imagen automática 146
5.1.5 Imagen compatible 146
5.1.6 Algoritmo de almacenamiento en caché 149
5.2 Almacenamiento en búfer múltiple y subprocesos múltiples 150
5.3 Modo exclusivo de pantalla completa 160
5.3.1 Habilitar el modo de pantalla completa 160
5.3.2 FullScreenToggler 161
5.3.3 Configurar marco 165
5.3.4 Cambiar modo de visualización 165
5.3.5 DisplayModeL
ib 166
5.3.6 GraphicsDeviceLib 166
5.3.7 Antialiasing 167
5.3.8 BufferStrategyAnimatedComponent 168
5.3.9 FullScreenDemo 170
5.3.10 Preocupaciones sobre el uso del modo exclusivo 177
5.4 Resumen 177
5.5 Referencias 177 6.1 Formato de datos 178
6.1 .1 Serialización de objetos 178
6.1.2 Propiedades 181
6.1.3 XML 182
6.1.4 Imagen de mapa de mosaicos 190
6.1.5 Semillas aleatorias 193
6.2 Mecanismo de persistencia 195
6.2.1 Archivos de recursos JAR 196
6.2.2 Archivos del directorio de inicio del usuario 197
6.2.3 Persistencia JNLP 200
6.2.4 Persistencia del subprograma 203
6.2.5 Persistencia robusta 206
6.2 .6 Base de datos integrada 211 p>
6.2.7 Persistencia del lado del servidor 212
6.3 Integridad de datos 214
6.3.1 Resumen de mensajes 214
6.3.2 Caché hash 215
6.4 Resumen 217
6.5 Referencias 217 7.1 Interfaz 218
7.2 Herencia 218
7.3 Objetivo Marte 221
7.4 Modelo-Vista-Controlador 221
7.4.1 Modelo 222
7.4.2 Herencia de interfaz múltiple 224
7.4.3 Vista 234
7.4.4 Controlador 240
7.5 MVC compuesto 243
7.5.1 Modelo compuesto 243
7.5.2 Vista compuesta 254
7.5.3 Controlador compuesto 260
7.5.4 Combinando los tres 260
7.6 Diseño basado en datos 264
7.6.1 AnimationInit 264
7.6.2 AnimatedApplet 265
7.7 Resumen 269
7.8 Referencias 269 8.1 Cartógrafo 271
p>8.2 NodeInfo 272
8.3 AStar 273
8.4 AStarTest 279
8.5 SpaceTester 283
8.6 GridCartographer 283 p>
8.7 GradientCartographer 286
8.8 TankConsole 289
8.9 TankOperator 290
8.10 StateSpaceNode 291
8.11 TankCartographer 292 p>
8.12 DefaultTankOperator 293
8.13 PlayerTankOperator 297
8.14 Resumen 299
8.15 Referencia 300 9.1 Ejemplo de prueba 3
02
9.2 Código de cliente reutilizable 303
9.2.1 Codificador 304
9.2.2 Analizador 304
9.2.3 StreamLib 304
9.2.4 StringCoder 305
9.2.5 HttpLib 306
9.2.6 Cola 308
9.2.7 ListQueue 309
9.2.8 Loopable 312
9.2.9 Looper 313
9.2.10 HttpMessagePusher 315
9.3 Código de cliente específico del juego 318
9.4 Código reutilizable del lado del servidor 323
9.4.1 Servidor 323
9.4.2 HttpGatewayServlet 324
9.5 Código del lado del servidor específico del juego 327
9.6 WAR empaquetado 330
9.6.1 web.xml 330
9.6.2 build.xml 331
9.7 Resumen 332
9.8 Referencias 332 10.1 Programa de muestra de prueba 333
10.2 Código de cliente reutilizable 334
10.2.1 SerializableCoder 334
10.2.2 HttpMessagePoller 335
10.2.3 Consumidor 340
10.2.4 QueuePuller 340
10.2.5 HttpMessageClient 342
10.3 Código de cliente específico del juego 345
10.3.1 Solicitud 345
10.3.2 Solicitud abstracta 346
10.3.3 Solicitud de fuego 346
10.3.4 Solicitud de movimiento 347 p>
10.3.5 ViewRequest 348
10.3.6 GameData 348
10.3.7 Sincronizador 350
10.3.8 NetController 354
10.3.9 NetMain 356
10.4 Código reutilizable del lado del servidor 357
10.4.1 XmlBeanCoder 358
10.4.2 SerializableLib 359
10.5 Código del lado del servidor específico del juego 360
10.5.1 GameInit 360
10.5.2 Player 362
10.5.3 NetGame 363 p>
10.5.4 MarsServer 370
10.5.5 MarsServlet 376
10.6 Resumen 378
10.7 Referencias 378 11.1 Ejemplo de prueba 379
11.2 Código de cliente reutilizable 381
11.2.1 Autenticación 381
11.2.2 Id 381
11.2.3 Lon
gId 382
11.2.4 ModelId 383
11.2.5 SeriModelId 383
11.3 Código de cliente específico del juego 384
11.3. Solicitud 384
11.3.2 Solicitud coalesceable 384
11.3.3 ChatController 385
11.3.4 Respuesta 386
11.3.5 CreateUserConsumer 386
11.3.6 Evento 387
11.3.7 ChatClient 387
11.3.8 ChatSynchronizer 393
11.3.9 ChatPanel 395
p>11.3.10 ChatApplet 398
11.4 Código del lado del servidor 400
11.4.1 Usuario 400
11.4.2 UserStore 401
11.4.3 PullServer 402
11.4.4 MoveServer 403
11.4.5 SeriChatGame 404
11.4.6 ChatServer 409
11.5 Seguimiento de mensajes 411
11.5.1 Modo multijugador en línea 412
11.5.2 Modo local para un jugador 413
11.6 Ejemplo ampliado 414
11.7 Resumen 414
11.8 Referencias 415 Apéndice A Índice de código fuente 416
Apéndice B Introducción a CVS 420
B.1 Código de pago 420
B.2 Crea tu propio proyecto 421
B.3 Programación paralela 423
B.3.1 Implementa la propiedad del código 423
B .3.2 Monitorearse mutuamente 424
B.3.3 Crear sucursales 425
B.4 Referencias 425