Advertisement
Guest User

Untitled

a guest
Apr 9th, 2013
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.33 KB | None | 0 0
  1. package com.gorgo.pirates.view;
  2.  
  3. import android.content.Context;
  4. import android.graphics.Canvas;
  5. import android.graphics.Color;
  6. import android.util.Log;
  7.  
  8. import com.example.pirates.R;
  9. import com.gorgo.pirates.controller.GameEngine;
  10. import com.gorgo.pirates.model.Guybrush;
  11.  
  12. public class GuybrushRenderer implements Renderer {
  13.  
  14.     private static final String TAG = GuybrushRenderer.class.getSimpleName();
  15.  
  16.     private Guybrush guybrush;
  17.     private Text textGuy;
  18.  
  19.     SpriteTile currentGuy, currentEnemy;
  20.  
  21.     public GuybrushRenderer(Guybrush guybrush, Context context) {
  22.         this.guybrush = guybrush;
  23.         textGuy = new Text(context);
  24.  
  25.         currentGuy = new SpriteTile(R.drawable.guybrush_light, R.xml.guybrush_light,
  26.                 context, "guybrush");
  27.         currentGuy.setCurrentAnimation(guybrush.getAnimation(), false);
  28.         Log.d(TAG, "Guybrush CARICATO");
  29.  
  30.     }
  31.  
  32.     public void render(Canvas canvas, GameEngine gameEngine) {
  33.         // Check SurfaceDestroyed
  34.         if (canvas != null) {
  35.            
  36.             // Calcolo la posizione di Guybrush.
  37.             // SpriteTile disegna Guybrush in base al dispositivo
  38.             currentGuy.setXpos((int) (canvas.getWidth() / 4.57));
  39.             currentGuy.setYpos((int) (canvas.getHeight() / 1.06));
  40.  
  41.             // Se il Guybrush è in idle, imposto in idle la sua animazione
  42.             CheckIdle();
  43.  
  44.             // Disegno l'animazione
  45.             currentGuy.draw(canvas);
  46.  
  47.             // Se Guybrush sta parlando stampa cosa sta dicendo
  48.             Speak(canvas, guybrush.getSpeech());
  49.  
  50.             // Controlla se l'animazione è stata cambiata
  51.             // TODO: Controllare che vada veramente qui
  52.             CheckAnimation();
  53.         }
  54.     }
  55.  
  56.     // TODO:Attenzione che se è idle checkAnimation() non va
  57.     private void CheckAnimation() {
  58.         if (currentGuy.hasAnimationFinished()) {
  59.             System.out.println("Animazione finita");
  60.             if (currentGuy.getCurrentAnimation() != guybrush.getAnimation()) {
  61.                 currentGuy.setCurrentAnimation(guybrush.getAnimation(), false);
  62.                 System.out.println("Animazione cambiata");
  63.  
  64.             }
  65.         }
  66.     }
  67.  
  68.     private void CheckIdle() {
  69.         if (guybrush.getIdle()) {
  70.             currentGuy.setAnimationIdle();
  71.         }
  72.  
  73.     }
  74.  
  75.     private void Speak(Canvas canvas, String speech) {
  76.         if (guybrush.getSpeaking()) {
  77.             currentGuy.setIdle(false);
  78.             guybrush.setIdle(false);
  79.             textGuy.draw(canvas, speech, 5000, Color.WHITE);
  80.         }
  81.  
  82.         if (textGuy.getFinished()) {
  83.             currentGuy.setAnimationIdle();
  84.             guybrush.setSpeaking(false);
  85.         }
  86.  
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement