Min ImageMaker.

Hej
 
Nu har jag försökt att fånga så många av spelets funktioner som möjligt på en film här, vilket är svårt när jag spelar multiplayer själv.
 
Medan jag skriver så renderas filmen här bredvid, den är på 42% och det tar tid.
 
När jag spelade in och gick igenom delarna i spelet så kan jag ha upptäckt en bugg, jag är inte säker.
I filmen låter jag lite fundersam över hur lampor plötsligt försvinner men inte kan se att de verkligen blivit skjutna utav motståndaren.
Jag tror att spelet inte synkade pga min Internetuppkoppling med wifi:t, ena mobilens enheter sköt på min lampa utan att det syntes på den andra mobilen. Dumma Internetuppkoppling.
Får helt enkelt kolla upp det närmare, det är inte svårare än så.
 
Nu har filmen jag ska ladda upp renderats till 57%..
 
Här kommer filmen..
 
 
Se på filmen och kommentera om det är någonting som väcker idéer.
Knapparna är fortfarande inte det vackraste men det tar jag senare, än finns det mycket stora saker kvar att göra innan skönheten.
 
Därför knapparna blev ännu svårare att se texten på är för att jag har förbättrat funktionen på hur knapparna skapas och all text blir vit just för tillfället, tidigare hade jag många stökiga funktioner för att skapa knapparna men nu har jag gjort ett objekt som skapar och ritar dem. Ska lägga till så att färgen också skapas dynamiskt beroende på in-parametrar.
 
Här är lite kod på detta..
 
public class ImageMaker
{
 public class Character
 {
   public int mDiffM = 0;
   public Texture mCharacter = null;
 }
 private Character[][] mCharacters = null;
 private void createChar(String theChar, int charSize)
 {
  int arraySizes[] = { 2, 4, 8, 16, 32, 64, 128, 256, 512 };
  Paint paint = new Paint();
  Rect bounds = new Rect();
  paint.setTextSize(charSize);
 
  // Text Size paint.getTextBounds(theChar, 0, 1, bounds);
  int charW = bounds.width();
  int charH = bounds.height();
  int charM = (charW > charH ? charW : charH);
  int i = 0;
 
  for (int t=arraySizes.length-1;t>=0;t--)
  {
   if (charM < arraySizes[t])
    i = t;
   }
   Bitmap tempChar = Bitmap.createBitmap( (int) arraySizes[i], arraySizes[i], Bitmap.Config.RGB_565);
   Canvas canvas = new Canvas(tempChar);
 
   if (this.mCharacters[charSize][theChar.charAt(0)] == null && !TextureManager.getInstance().containsTexture("characterChar_" + charSize + "_" + theChar.charAt(0)))
   {
    Character aChar = new Character(); aChar.mDiffM = (arraySizes[i] - charM) - 2;
    tempChar.eraseColor(Color.BLACK); canvas.drawBitmap(tempChar, 0, 0, paint);
    paint.setAntiAlias(true);
    paint.setColor(Color.rgb(250, 250, 250));  // Text Color
    canvas.drawText("" + theChar.charAt(0), 0, bounds.height(), paint);
   Texture texture = new Texture(tempChar.copy(Bitmap.Config.RGB_565, false));
   aChar.mCharacter = texture; this.mCharacters[charSize][theChar.charAt(0)] = aChar;
   TextureManager.getInstance().addTexture("charactersChar_" + charSize + "_" + theChar.charAt(0), texture);
   }
   else if (TextureManager.getInstance().containsTexture("characterChar_" + charSize + "_" + theChar.charAt(0)))
   {
    this.mCharacters[charSize][theChar.charAt(0)].mCharacter = TextureManager.getInstance().getTexture("characterChar_" + charSize + "_" + theChar.charAt(0));
   }
  }
  public ImageMaker ()
   .........
 
  public void blitString (FrameBuffer fB, String theText, int textSize, int x, int y)
  {
   for (int i = 0; i < theText.length(); i++)
   {
    if (this.mCharacters[textSize][theText.charAt(i)] == null || (this.mCharacters[textSize][theText.charAt(i)] != null && this.mCharacters[textSize][theText.charAt(i)].mCharacter == null))
       this.createChar("" + theText.charAt(i), textSize);
 
    Character ch = this.mCharacters[textSize][theText.charAt(i)];
    Texture te = ch.mCharacter; int width = te.getWidth() - ch.mDiffM;
    int height = te.getHeight() - ch.mDiffM; int coW = (i * width);
    int top = y;
    int textCenterW = (int) (x) - (int) ((theText.length() * 0.5f) * width);
    int textCenterH = top + ((fB.getHeight() - top) / 2) - (height / 2);
    fB.blit(te, 0, 0, textCenterW + coW, textCenterH, width, height, true);
    }
   }
}
 
Jag har uteslutit lite kod och det här objektet ska göras bättre och effektivare innan jag är klar med det, skrev om kod on the fly medan jag höll på med annat. Förbättrad och uppsnyggad version på detta objekt kommer senare.
 
Tack på förhand.

Kommentarer

Populära inlägg i den här bloggen

Lite ljud.

Monsterattack.

Skuggor.