Возможность отключения анимаций спрайтов
This commit is contained in:
parent
93b1328e43
commit
c86ca63df2
@ -7,6 +7,10 @@
|
||||
#rp.assets = archive + "everlastingsummer/"
|
||||
rp.assets = sdcard + "everlastingsummer/"
|
||||
|
||||
# Прочие настройки
|
||||
# анимация переходов для спрайтов
|
||||
rp.sprite_transitions = false
|
||||
|
||||
# Использовать стартовое меню
|
||||
rp.menu = false
|
||||
rp.menu_background = "bg/ext_road_night.jpg"
|
||||
|
@ -79,6 +79,10 @@ public final class MainActivity extends Activity {
|
||||
finish();
|
||||
openScenario(config.getValue("rp.scenario"));
|
||||
}
|
||||
// Эффекты переходов для спрайтов
|
||||
if (config.isValueExists("rp.sprite_transitions")) {
|
||||
ViewActivity.useSpriteTransitions = config.getValueAsBoolean("rp.sprite_transitions");
|
||||
}
|
||||
// Меню
|
||||
if (config.getValueAsBoolean("rp.menu")) {
|
||||
menuMode(config);
|
||||
|
@ -1,6 +1,5 @@
|
||||
package com.annimon.everlastingsummer;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.HashMap;
|
||||
@ -12,10 +11,10 @@ import com.annimon.everlastingsummer.ast.Variables;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.res.AssetFileDescriptor;
|
||||
import android.graphics.Bitmap;
|
||||
import android.media.MediaPlayer;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
@ -51,6 +50,8 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
||||
private static final FadeInfo NO_FADE = new FadeInfo(false, false, 0);
|
||||
private static ViewActivity instance;
|
||||
|
||||
public static boolean useSpriteTransitions = true;
|
||||
|
||||
public static ViewActivity getInstance() {
|
||||
return instance;
|
||||
}
|
||||
@ -66,7 +67,7 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
||||
|
||||
private MapPlaces places;
|
||||
private Characters characters;
|
||||
private Map<String, AnimatableImageView> spriteInContainer;
|
||||
private Map<String, ImageView> spriteInContainer;
|
||||
private DisplayMetrics displayMetrics;
|
||||
|
||||
private transient boolean blockTap, cancelNextStep;
|
||||
@ -95,7 +96,7 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
||||
|
||||
background.setOnTouchListener(new TouchGesture(this, this));
|
||||
|
||||
spriteInContainer = new HashMap<String, AnimatableImageView>();
|
||||
spriteInContainer = new HashMap<String, ImageView>();
|
||||
|
||||
characters = new CharactersES();
|
||||
characters.makeNamesKnown();
|
||||
@ -326,12 +327,13 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
||||
}
|
||||
|
||||
public void sprite(String whoid, String params, String position, String alias, String effect) {
|
||||
AnimatableImageView img;
|
||||
ImageView img;
|
||||
final String key = TextUtils.isEmpty(alias) ? whoid : alias;
|
||||
if (spriteInContainer.containsKey(key)) {
|
||||
img = spriteInContainer.get(key);
|
||||
} else {
|
||||
img = new AnimatableImageView(this);
|
||||
if (useSpriteTransitions) img = new AnimatableImageView(this);
|
||||
else img = new ImageView(this);
|
||||
spriteInContainer.put(key, img);
|
||||
}
|
||||
final FrameLayout.LayoutParams flp = new FrameLayout.LayoutParams(
|
||||
@ -339,7 +341,9 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
||||
setSpritePosition(img, flp, position);
|
||||
final String path = PathResolver.sprite(whoid, params);
|
||||
try {
|
||||
img.setImageBitmap(IOUtil.readBitmap(path), effect);
|
||||
final Bitmap bitmap = IOUtil.readBitmap(path);
|
||||
if (useSpriteTransitions) ((AnimatableImageView)img).setImageBitmap(bitmap, effect);
|
||||
else img.setImageBitmap(bitmap);
|
||||
if (container != img.getParent())
|
||||
container.addView(img, flp);
|
||||
} catch (Exception ioe) {
|
||||
@ -349,17 +353,25 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
||||
|
||||
public void hideSprite(final String whoid, final String effect) {
|
||||
if (!spriteInContainer.containsKey(whoid)) return;
|
||||
final AnimatableImageView img = spriteInContainer.get(whoid);
|
||||
img.hideDrawable(effect, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
hide(img);
|
||||
} catch (Exception ex) {
|
||||
if (Logger.DEBUG) Logger.log("hide sprite: " + whoid + " with effect: " + effect, ex);
|
||||
final ImageView img = spriteInContainer.get(whoid);
|
||||
if (useSpriteTransitions) {
|
||||
((AnimatableImageView)img).hideDrawable(effect, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
hide(img);
|
||||
} catch (Exception ex) {
|
||||
if (Logger.DEBUG) Logger.log("hide sprite: " + whoid + " with effect: " + effect, ex);
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
try {
|
||||
hide(img);
|
||||
} catch (Exception ex) {
|
||||
if (Logger.DEBUG) Logger.log("hide sprite: " + whoid + " with effect: " + effect, ex);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void hide(ImageView img) {
|
||||
|
Loading…
Reference in New Issue
Block a user