diff --git a/_RemoveForDeployment_/Images/PSD/Schneemann.psd b/_RemoveForDeployment_/Images/PSD/Schneemann.psd
new file mode 100644
index 0000000..d19bcaa
Binary files /dev/null and b/_RemoveForDeployment_/Images/PSD/Schneemann.psd differ
diff --git a/_RemoveForDeployment_/Images/PSD/blaues_auto.psd b/_RemoveForDeployment_/Images/PSD/blaues_auto.psd
index cf56438..565fcd7 100644
Binary files a/_RemoveForDeployment_/Images/PSD/blaues_auto.psd and b/_RemoveForDeployment_/Images/PSD/blaues_auto.psd differ
diff --git a/_RemoveForDeployment_/Images/PSD/rotes_auto.psd b/_RemoveForDeployment_/Images/PSD/rotes_auto.psd
new file mode 100644
index 0000000..65fd36a
Binary files /dev/null and b/_RemoveForDeployment_/Images/PSD/rotes_auto.psd differ
diff --git a/_RemoveForDeployment_/Images/PSD/teddy.psd b/_RemoveForDeployment_/Images/PSD/teddy.psd
new file mode 100644
index 0000000..5f98f34
Binary files /dev/null and b/_RemoveForDeployment_/Images/PSD/teddy.psd differ
diff --git a/www/index.html b/www/index.html
index b13ed6c..e97f663 100644
--- a/www/index.html
+++ b/www/index.html
@@ -30,6 +30,7 @@
+
diff --git a/www/js/app.js b/www/js/app.js
index a792b1e..990e6a3 100644
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -1,7 +1,9 @@
// Ionic Starter App
-
-//Global variable für alle Superglobalen Werte
+/*
+* Global variable für alle Superglobalen Werte
+* Gesetzt aber noch ungenutzt
+*/
window.globalVariable = {
//custom color style variable
color: {
diff --git a/www/lib/angular-css/angular-css.js b/www/lib/angular-css/angular-css.js
new file mode 100644
index 0000000..0145d0b
--- /dev/null
+++ b/www/lib/angular-css/angular-css.js
@@ -0,0 +1,666 @@
+/**
+ * AngularCSS - CSS on-demand for AngularJS
+ * @version v1.0.8
+ * @author Alex Castillo
+ * @link http://castillo-io.github.io/angular-css
+ * @license MIT License, http://www.opensource.org/licenses/MIT
+ */
+
+'use strict';
+
+(function (angular) {
+
+ /**
+ * AngularCSS Module
+ * Contains: config, constant, provider and run
+ **/
+ var angularCSS = angular.module('angularCSS', []);
+
+ // Old module name handler
+ angular.module('door3.css', [])
+ .run(function () {
+ console.error('AngularCSS: The module name "door3.css" is now deprecated. Please use "angularCSS" instead.');
+ });
+
+ // Provider
+ angularCSS.provider('$css', [function $cssProvider() {
+
+ // Defaults - default options that can be overridden from application config
+ var defaults = this.defaults = {
+ element: 'link',
+ rel: 'stylesheet',
+ type: 'text/css',
+ container: 'head',
+ method: 'append',
+ weight: 0
+ };
+
+ var DEBUG = false;
+
+ // Turn off/on in order to see console logs during dev mode
+ this.debugMode = function(mode) {
+ if (angular.isDefined(mode))
+ DEBUG = mode;
+ return DEBUG;
+ };
+
+ this.$get = ['$rootScope','$injector','$q','$window','$timeout','$compile','$http','$filter','$log', '$interpolate',
+ function $get($rootScope, $injector, $q, $window, $timeout, $compile, $http, $filter, $log, $interpolate) {
+
+ var $css = {};
+
+ var template = '';
+
+ // Using correct interpolation symbols.
+ template = template
+ .replace(/{{/g, $interpolate.startSymbol())
+ .replace(/}}/g, $interpolate.endSymbol());
+
+ // Variables - default options that can be overridden from application config
+ var mediaQuery = {}, mediaQueryListener = {}, mediaQueriesToIgnore = ['print'], options = angular.extend({}, defaults),
+ container = angular.element(document.querySelector ? document.querySelector(options.container) : document.getElementsByTagName(options.container)[0]),
+ dynamicPaths = [];
+
+ // Parse all directives
+ angular.forEach($directives, function (directive, key) {
+ if (directive.hasOwnProperty('css')) {
+ $directives[key] = parse(directive.css);
+ }
+ });
+
+ /**
+ * Listen for directive add event in order to add stylesheet(s)
+ **/
+ function $directiveAddEventListener(event, directive, scope) {
+ // Binds directive's css
+ if (scope && directive.hasOwnProperty('css')) {
+ $css.bind(directive.css, scope);
+ }
+ }
+
+ /**
+ * Listen for route change event and add/remove stylesheet(s)
+ **/
+ function $routeEventListener(event, current, prev) {
+ // Removes previously added css rules
+ if (prev) {
+ $css.remove($css.getFromRoute(prev).concat(dynamicPaths));
+ // Reset dynamic paths array
+ dynamicPaths.length = 0;
+ }
+ // Adds current css rules
+ if (current) {
+ $css.add($css.getFromRoute(current));
+ }
+ }
+
+ /**
+ * Listen for state change event and add/remove stylesheet(s)
+ **/
+ function $stateEventListener(event, current, params, prev) {
+ // Removes previously added css rules
+ if (prev) {
+ $css.remove($css.getFromState(prev).concat(dynamicPaths));
+ // Reset dynamic paths array
+ dynamicPaths.length = 0;
+ }
+ // Adds current css rules
+ if (current) {
+ $css.add($css.getFromState(current));
+ }
+ }
+
+ /**
+ * Map breakpoitns defined in defaults to stylesheet media attribute
+ **/
+ function mapBreakpointToMedia(stylesheet) {
+ if (angular.isDefined(options.breakpoints)) {
+ if (stylesheet.breakpoint in options.breakpoints) {
+ stylesheet.media = options.breakpoints[stylesheet.breakpoint];
+ }
+ delete stylesheet.breakpoints;
+ }
+ }
+
+ /**
+ * Parse: returns array with full all object based on defaults
+ **/
+ function parse(obj) {
+ if (!obj) {
+ return;
+ }
+ // Function syntax
+ if (angular.isFunction(obj)) {
+ obj = angular.copy($injector.invoke(obj));
+ }
+ // String syntax
+ if (angular.isString(obj)) {
+ obj = angular.extend({
+ href: obj
+ }, options);
+ }
+ // Array of strings syntax
+ if (angular.isArray(obj) && angular.isString(obj[0])) {
+ angular.forEach(obj, function (item) {
+ obj = angular.extend({
+ href: item
+ }, options);
+ });
+ }
+ // Object syntax
+ if (angular.isObject(obj) && !angular.isArray(obj)) {
+ obj = angular.extend({}, options, obj);
+ }
+ // Array of objects syntax
+ if (angular.isArray(obj) && angular.isObject(obj[0])) {
+ angular.forEach(obj, function (item) {
+ obj = angular.extend(item, options);
+ });
+ }
+ // Map breakpoint to media attribute
+ mapBreakpointToMedia(obj);
+ return obj;
+ }
+
+ // Add stylesheets to scope
+ $rootScope.stylesheets = [];
+
+ // Adds compiled link tags to container element
+ container[options.method]($compile(template)($rootScope));
+
+ // Directive event listener (emulated internally)
+ $rootScope.$on('$directiveAdd', $directiveAddEventListener);
+
+ // Routes event listener ($route required)
+ $rootScope.$on('$routeChangeSuccess', $routeEventListener);
+
+ // States event listener ($state required)
+ $rootScope.$on('$stateChangeSuccess', $stateEventListener);
+
+ /**
+ * Bust Cache
+ **/
+ function bustCache(stylesheet) {
+ if (!stylesheet) {
+ if(DEBUG) $log.error('No stylesheets provided');
+ return;
+ }
+ var queryString = '?cache=';
+ // Append query string for bust cache only once
+ if (stylesheet.href.indexOf(queryString) === -1) {
+ stylesheet.href = stylesheet.href + (stylesheet.bustCache ? queryString + (new Date().getTime()) : '');
+ }
+ }
+
+ /**
+ * Filter By: returns an array of routes based on a property option
+ **/
+ function filterBy(array, prop) {
+ if (!array || !prop) {
+ if(DEBUG) $log.error('filterBy: missing array or property');
+ return;
+ }
+ return $filter('filter')(array, function (item) {
+ return item[prop];
+ });
+ }
+
+ /**
+ * Add Media Query
+ **/
+ function addViaMediaQuery(stylesheet) {
+ if (!stylesheet) {
+ if(DEBUG) $log.error('No stylesheet provided');
+ return;
+ }
+ // Media query object
+ mediaQuery[stylesheet.href] = $window.matchMedia(stylesheet.media);
+ // Media Query Listener function
+ mediaQueryListener[stylesheet.href] = function(mediaQuery) {
+ // Trigger digest
+ $timeout(function () {
+ if (mediaQuery.matches) {
+ // Add stylesheet
+ $rootScope.stylesheets.push(stylesheet);
+ } else {
+ var index = $rootScope.stylesheets.indexOf($filter('filter')($rootScope.stylesheets, {
+ href: stylesheet.href
+ })[0]);
+ // Remove stylesheet
+ if (index !== -1) {
+ $rootScope.stylesheets.splice(index, 1);
+ }
+ }
+ });
+ };
+ // Listen for media query changes
+ mediaQuery[stylesheet.href].addListener(mediaQueryListener[stylesheet.href]);
+ // Invoke first media query check
+ mediaQueryListener[stylesheet.href](mediaQuery[stylesheet.href]);
+ }
+
+ /**
+ * Remove Media Query
+ **/
+ function removeViaMediaQuery(stylesheet) {
+ if (!stylesheet) {
+ if(DEBUG) $log.error('No stylesheet provided');
+ return;
+ }
+ // Remove media query listener
+ if ($rootScope && angular.isDefined(mediaQuery)
+ && mediaQuery[stylesheet.href]
+ && angular.isDefined(mediaQueryListener)) {
+ mediaQuery[stylesheet.href].removeListener(mediaQueryListener[stylesheet.href]);
+ }
+ }
+
+ /**
+ * Is Media Query: checks for media settings, media queries to be ignore and match media support
+ **/
+ function isMediaQuery(stylesheet) {
+ if (!stylesheet) {
+ if(DEBUG) $log.error('No stylesheet provided');
+ return;
+ }
+ return !!(
+ // Check for media query setting
+ stylesheet.media
+ // Check for media queries to be ignored
+ && (mediaQueriesToIgnore.indexOf(stylesheet.media) === -1)
+ // Check for matchMedia support
+ && $window.matchMedia
+ );
+ }
+
+ /**
+ * Get From Route: returns array of css objects from single route
+ **/
+ $css.getFromRoute = function (route) {
+ if (!route) {
+ if(DEBUG) $log.error('Get From Route: No route provided');
+ return;
+ }
+ var css = null, result = [];
+ if (route.$$route && route.$$route.css) {
+ css = route.$$route.css;
+ }
+ else if (route.css) {
+ css = route.css;
+ }
+ // Adds route css rules to array
+ if (css) {
+ if (angular.isArray(css)) {
+ angular.forEach(css, function (cssItem) {
+ if (angular.isFunction(cssItem)) {
+ dynamicPaths.push(parse(cssItem));
+ }
+ result.push(parse(cssItem));
+ });
+ } else {
+ if (angular.isFunction(css)) {
+ dynamicPaths.push(parse(css));
+ }
+ result.push(parse(css));
+ }
+ }
+ return result;
+ };
+
+ /**
+ * Get From Routes: returns array of css objects from ng routes
+ **/
+ $css.getFromRoutes = function (routes) {
+ if (!routes) {
+ if(DEBUG) $log.error('Get From Routes: No routes provided');
+ return;
+ }
+ var result = [];
+ // Make array of all routes
+ angular.forEach(routes, function (route) {
+ var css = $css.getFromRoute(route);
+ if (css.length) {
+ result.push(css[0]);
+ }
+ });
+ return result;
+ };
+
+ /**
+ * Get From State: returns array of css objects from single state
+ **/
+ $css.getFromState = function (state) {
+ if (!state) {
+ if(DEBUG) $log.error('Get From State: No state provided');
+ return;
+ }
+ var result = [];
+ // State "views" notation
+ if (angular.isDefined(state.views)) {
+ angular.forEach(state.views, function (item) {
+ if (item.css) {
+ if (angular.isFunction(item.css)) {
+ dynamicPaths.push(parse(item.css));
+ }
+ result.push(parse(item.css));
+ }
+ });
+ }
+ // State "children" notation
+ if (angular.isDefined(state.children)) {
+ angular.forEach(state.children, function (child) {
+ if (child.css) {
+ if (angular.isFunction(child.css)) {
+ dynamicPaths.push(parse(child.css));
+ }
+ result.push(parse(child.css));
+ }
+ if (angular.isDefined(child.children)) {
+ angular.forEach(child.children, function (childChild) {
+ if (childChild.css) {
+ if (angular.isFunction(childChild.css)) {
+ dynamicPaths.push(parse(childChild.css));
+ }
+ result.push(parse(childChild.css));
+ }
+ });
+ }
+ });
+ }
+ // State default notation
+ if (
+ angular.isDefined(state.css) ||
+ (angular.isDefined(state.data) && angular.isDefined(state.data.css))
+ ) {
+ var css = state.css || state.data.css;
+ // For multiple stylesheets
+ if (angular.isArray(css)) {
+ angular.forEach(css, function (itemCss) {
+ if (angular.isFunction(itemCss)) {
+ dynamicPaths.push(parse(itemCss));
+ }
+ result.push(parse(itemCss));
+ });
+ // For single stylesheets
+ } else {
+ if (angular.isFunction(css)) {
+ dynamicPaths.push(parse(css));
+ }
+ result.push(parse(css));
+ }
+ }
+ return result;
+ };
+
+ /**
+ * Get From States: returns array of css objects from states
+ **/
+ $css.getFromStates = function (states) {
+ if (!states) {
+ if(DEBUG) $log.error('Get From States: No states provided');
+ return;
+ }
+ var result = [];
+ // Make array of all routes
+ angular.forEach(states, function (state) {
+ var css = $css.getFromState(state);
+ if (angular.isArray(css)) {
+ angular.forEach(css, function (cssItem) {
+ result.push(cssItem);
+ });
+ } else {
+ result.push(css);
+ }
+ });
+ return result;
+ };
+
+ /**
+ * Preload: preloads css via http request
+ **/
+ $css.preload = function (stylesheets, callback) {
+ // If no stylesheets provided, then preload all
+ if (!stylesheets) {
+ stylesheets = [];
+ // Add all stylesheets from custom directives to array
+ if ($directives.length) {
+ Array.prototype.push.apply(stylesheets, $directives);
+ }
+ // Add all stylesheets from ngRoute to array
+ if ($injector.has('$route')) {
+ Array.prototype.push.apply(stylesheets, $css.getFromRoutes($injector.get('$route').routes));
+ }
+ // Add all stylesheets from UI Router to array
+ if ($injector.has('$state')) {
+ Array.prototype.push.apply(stylesheets, $css.getFromStates($injector.get('$state').get()));
+ }
+ stylesheets = filterBy(stylesheets, 'preload');
+ }
+ if (!angular.isArray(stylesheets)) {
+ stylesheets = [stylesheets];
+ }
+ var stylesheetLoadPromises = [];
+ angular.forEach(stylesheets, function(stylesheet, key) {
+ stylesheet = stylesheets[key] = parse(stylesheet);
+ stylesheetLoadPromises.push(
+ // Preload via ajax request
+ $http.get(stylesheet.href).error(function (response) {
+ if(DEBUG) $log.error('AngularCSS: Incorrect path for ' + stylesheet.href);
+ })
+ );
+ });
+ if (angular.isFunction(callback)) {
+ $q.all(stylesheetLoadPromises).then(function () {
+ callback(stylesheets);
+ });
+ }
+ };
+
+ /**
+ * Bind: binds css in scope with own scope create/destroy events
+ **/
+ $css.bind = function (css, $scope) {
+ if (!css || !$scope) {
+ if(DEBUG) $log.error('No scope or stylesheets provided');
+ return;
+ }
+ var result = [];
+ // Adds route css rules to array
+ if (angular.isArray(css)) {
+ angular.forEach(css, function (cssItem) {
+ result.push(parse(cssItem));
+ });
+ } else {
+ result.push(parse(css));
+ }
+ $css.add(result);
+ if(DEBUG) $log.debug('$css.bind(): Added', result);
+ $scope.$on('$destroy', function () {
+ $css.remove(result);
+ if(DEBUG) $log.debug('$css.bind(): Removed', result);
+ });
+ };
+
+ /**
+ * Add: adds stylesheets to scope
+ **/
+ $css.add = function (stylesheets, callback) {
+ if (!stylesheets) {
+ if(DEBUG) $log.error('No stylesheets provided');
+ return;
+ }
+ if (!angular.isArray(stylesheets)) {
+ stylesheets = [stylesheets];
+ }
+ angular.forEach(stylesheets, function(stylesheet) {
+ stylesheet = parse(stylesheet);
+ // Avoid adding duplicate stylesheets
+ if (stylesheet.href && !$filter('filter')($rootScope.stylesheets, { href: stylesheet.href }).length) {
+ // Bust Cache feature
+ bustCache(stylesheet);
+ // Media Query add support check
+ if (isMediaQuery(stylesheet)) {
+ addViaMediaQuery(stylesheet);
+ }
+ else {
+ $rootScope.stylesheets.push(stylesheet);
+ }
+ if(DEBUG) $log.debug('$css.add(): ' + stylesheet.href);
+ }
+ });
+ // Broadcasts custom event for css add
+ $rootScope.$broadcast('$cssAdd', stylesheets, $rootScope.stylesheets);
+ };
+
+ /**
+ * Remove: removes stylesheets from scope
+ **/
+ $css.remove = function (stylesheets, callback) {
+ if (!stylesheets) {
+ if(DEBUG) $log.error('No stylesheets provided');
+ return;
+ }
+ if (!angular.isArray(stylesheets)) {
+ stylesheets = [stylesheets];
+ }
+ // Only proceed based on persist setting
+ stylesheets = $filter('filter')(stylesheets, function (stylesheet) {
+ return !stylesheet.persist;
+ });
+ angular.forEach(stylesheets, function(stylesheet) {
+ stylesheet = parse(stylesheet);
+ // Get index of current item to be removed based on href
+ var index = $rootScope.stylesheets.indexOf($filter('filter')($rootScope.stylesheets, {
+ href: stylesheet.href
+ })[0]);
+ // Remove stylesheet from scope (if found)
+ if (index !== -1) {
+ $rootScope.stylesheets.splice(index, 1);
+ }
+ // Remove stylesheet via media query
+ removeViaMediaQuery(stylesheet);
+ if(DEBUG) $log.debug('$css.remove(): ' + stylesheet.href);
+ });
+ // Broadcasts custom event for css remove
+ $rootScope.$broadcast('$cssRemove', stylesheets, $rootScope.stylesheets);
+ };
+
+ /**
+ * Remove All: removes all style tags from the DOM
+ **/
+ $css.removeAll = function () {
+ // Remove all stylesheets from scope
+ if ($rootScope && $rootScope.hasOwnProperty('stylesheets')) {
+ $rootScope.stylesheets.length = 0;
+ }
+ if(DEBUG) $log.debug('all stylesheets removed');
+ };
+
+ // Preload all stylesheets
+ $css.preload();
+
+ return $css;
+
+ }];
+
+ }]);
+
+ /**
+ * Links filter - renders the stylesheets array in html format
+ **/
+ angularCSS.filter('$cssLinks', function () {
+ return function (stylesheets) {
+ if (!stylesheets || !angular.isArray(stylesheets)) {
+ return stylesheets;
+ }
+ var result = '';
+ angular.forEach(stylesheets, function (stylesheet) {
+ result += '\n\n';
+ });
+ return result;
+ }
+ });
+
+ /**
+ * Run - auto instantiate the $css provider by injecting it in the run phase of this module
+ **/
+ angularCSS.run(['$css', function ($css) { } ]);
+
+ /**
+ * AngularJS hack - This way we can get and decorate all custom directives
+ * in order to broadcast a custom $directiveAdd event
+ **/
+ var $directives = [];
+ var originalModule = angular.module;
+ var arraySelect = function(array, action) {
+ return array.reduce(
+ function(previous, current) {
+ previous.push(action(current));
+ return previous;
+ }, []);
+ };
+ var arrayExists = function(array, value) {
+ return array.indexOf(value) > -1;
+ };
+
+ angular.module = function () {
+ var module = originalModule.apply(this, arguments);
+ var originalDirective = module.directive;
+ module.directive = function(directiveName, directiveFactory) {
+ var originalDirectiveFactory = angular.isFunction(directiveFactory) ?
+ directiveFactory : directiveFactory[directiveFactory ? (directiveFactory.length - 1) : 0];
+ try {
+ var directive = angular.copy(originalDirectiveFactory)();
+ directive.directiveName = directiveName;
+ if (directive.hasOwnProperty('css') && !arrayExists(arraySelect($directives, function(x) {return x.ddo.directiveName}), directiveName)) {
+ $directives.push({ ddo: directive, handled: false });
+ }
+ } catch (e) { }
+ return originalDirective.apply(this, arguments);
+ };
+ var originalComponent = module.component;
+ module.component = function (componentName, componentObject) {
+ componentObject.directiveName = componentName;
+ if (componentObject.hasOwnProperty('css') && !arrayExists(arraySelect($directives, function(x) {return x.ddo.directiveName}), componentName)) {
+ $directives.push({ ddo: componentObject, handled: false });
+ }
+ return originalComponent.apply(this, arguments);
+ };
+ module.config(['$provide','$injector', function ($provide, $injector) {
+ angular.forEach($directives, function ($dir) {
+ if (!$dir.handled) {
+ var $directive = $dir.ddo;
+ var dirProvider = $directive.directiveName + 'Directive';
+ if ($injector.has(dirProvider)) {
+ $dir.handled = true;
+ $provide.decorator(dirProvider, ['$delegate', '$rootScope', '$timeout', function ($delegate, $rootScope, $timeout) {
+ var directive = $delegate[0];
+ var compile = directive.compile;
+ if (!directive.css) {
+ directive.css = $directive.css;
+ }
+ directive.compile = function() {
+ var link = compile ? compile.apply(this, arguments): false;
+ return function(scope) {
+ var linkArgs = arguments;
+ $timeout(function () {
+ if (link) {
+ link.apply(this, linkArgs);
+ }
+ });
+ $rootScope.$broadcast('$directiveAdd', directive, scope);
+ };
+ };
+ return $delegate;
+ }]);
+ }
+ }
+ });
+ }]);
+ return module;
+ };
+ /* End of hack */
+
+})(angular);
diff --git a/www/spielsets/minispielset2/css/minispiel.css b/www/spielsets/minispielset2/css/minispiel.css
new file mode 100644
index 0000000..8ec76d8
--- /dev/null
+++ b/www/spielsets/minispielset2/css/minispiel.css
@@ -0,0 +1,47 @@
+.teddy {
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ width: 256px;
+ height: 256px;
+ margin-left: -128px;
+ margin-top: -128px;
+ overflow: hidden;
+}
+
+.teddybackground {
+ background: url('../images/Teddybackgound.png');
+}
+
+
+.teddyani1 {
+ width: 256px;
+ height: 1024px;
+ background: url('../images/Teddybear_ani1.png') left center;
+ -webkit-animation: teddyspriteani 1.4s steps(4) infinite;
+}
+
+.teddyani2 {
+ width: 256px;
+ height: 1024px;
+ background: url('../images/Teddybear_ani2.png') left center;
+ -webkit-animation: teddyspriteani 1.4s steps(4) infinite;
+}
+
+.teddyani3 {
+ width: 256px;
+ height: 1024px;
+ background: url('../images/Teddybear_ani3.png') left center;
+ -webkit-animation: teddyspriteani 1.4s steps(4) infinite;
+}
+
+.teddyani4 {
+ width: 256px;
+ height: 1024px;
+ background: url('../images/Teddybear_ani4.png') left center;
+ -webkit-animation: teddyspriteani 1.4s steps(4) infinite;
+}
+
+@-webkit-keyframes teddyspriteani {
+ 100% { background-position: 0 -1024px; }
+}
\ No newline at end of file
diff --git a/www/spielsets/minispielset2/images/Teddy2.png b/www/spielsets/minispielset2/images/Teddy2.png
new file mode 100644
index 0000000..5272954
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddy2.png differ
diff --git a/www/spielsets/minispielset2/images/Teddy2_1.png b/www/spielsets/minispielset2/images/Teddy2_1.png
new file mode 100644
index 0000000..1f8cdef
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddy2_1.png differ
diff --git a/www/spielsets/minispielset2/images/Teddy3.png b/www/spielsets/minispielset2/images/Teddy3.png
new file mode 100644
index 0000000..5744f25
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddy3.png differ
diff --git a/www/spielsets/minispielset2/images/Teddy3_1.png b/www/spielsets/minispielset2/images/Teddy3_1.png
new file mode 100644
index 0000000..0f116dd
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddy3_1.png differ
diff --git a/www/spielsets/minispielset2/images/Teddy4.png b/www/spielsets/minispielset2/images/Teddy4.png
new file mode 100644
index 0000000..2943b2e
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddy4.png differ
diff --git a/www/spielsets/minispielset2/images/Teddy4_1.png b/www/spielsets/minispielset2/images/Teddy4_1.png
new file mode 100644
index 0000000..aa98495
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddy4_1.png differ
diff --git a/www/spielsets/minispielset2/images/Teddy5.png b/www/spielsets/minispielset2/images/Teddy5.png
new file mode 100644
index 0000000..1b7296b
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddy5.png differ
diff --git a/www/spielsets/minispielset2/images/Teddy5_1.png b/www/spielsets/minispielset2/images/Teddy5_1.png
new file mode 100644
index 0000000..bda4184
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddy5_1.png differ
diff --git a/www/spielsets/minispielset2/images/Teddy6.png b/www/spielsets/minispielset2/images/Teddy6.png
new file mode 100644
index 0000000..7ab09f1
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddy6.png differ
diff --git a/www/spielsets/minispielset2/images/Teddy6_1.png b/www/spielsets/minispielset2/images/Teddy6_1.png
new file mode 100644
index 0000000..cd06592
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddy6_1.png differ
diff --git a/www/spielsets/minispielset2/images/Teddy7.png b/www/spielsets/minispielset2/images/Teddy7.png
new file mode 100644
index 0000000..9640d3d
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddy7.png differ
diff --git a/www/spielsets/minispielset2/images/Teddy7_1.png b/www/spielsets/minispielset2/images/Teddy7_1.png
new file mode 100644
index 0000000..defd410
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddy7_1.png differ
diff --git a/www/spielsets/minispielset2/images/Teddy8.png b/www/spielsets/minispielset2/images/Teddy8.png
new file mode 100644
index 0000000..cdd744d
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddy8.png differ
diff --git a/www/spielsets/minispielset2/images/Teddy8_1.png b/www/spielsets/minispielset2/images/Teddy8_1.png
new file mode 100644
index 0000000..f146d8f
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddy8_1.png differ
diff --git a/www/spielsets/minispielset2/images/Teddybackgound.png b/www/spielsets/minispielset2/images/Teddybackgound.png
new file mode 100644
index 0000000..e3c2fb6
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddybackgound.png differ
diff --git a/www/spielsets/minispielset2/images/Teddybear_ani1.png b/www/spielsets/minispielset2/images/Teddybear_ani1.png
new file mode 100644
index 0000000..847c0ea
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddybear_ani1.png differ
diff --git a/www/spielsets/minispielset2/images/Teddybear_ani2.png b/www/spielsets/minispielset2/images/Teddybear_ani2.png
new file mode 100644
index 0000000..e72a1da
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddybear_ani2.png differ
diff --git a/www/spielsets/minispielset2/images/Teddybear_ani3.png b/www/spielsets/minispielset2/images/Teddybear_ani3.png
new file mode 100644
index 0000000..c0a938f
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddybear_ani3.png differ
diff --git a/www/spielsets/minispielset2/images/Teddybear_ani4.png b/www/spielsets/minispielset2/images/Teddybear_ani4.png
new file mode 100644
index 0000000..c241639
Binary files /dev/null and b/www/spielsets/minispielset2/images/Teddybear_ani4.png differ
diff --git a/www/spielsets/minispielset2/images/background.png b/www/spielsets/minispielset2/images/background.png
new file mode 100644
index 0000000..fb08de9
Binary files /dev/null and b/www/spielsets/minispielset2/images/background.png differ
diff --git a/www/spielsets/minispielset2/sound/kitzeldenbaeren.mp3 b/www/spielsets/minispielset2/sound/kitzeldenbaeren.mp3
new file mode 100644
index 0000000..67e7b4f
Binary files /dev/null and b/www/spielsets/minispielset2/sound/kitzeldenbaeren.mp3 differ
diff --git a/www/spielsets/minispielset2/sound/lachen1.mp3 b/www/spielsets/minispielset2/sound/lachen1.mp3
new file mode 100644
index 0000000..c53b53b
Binary files /dev/null and b/www/spielsets/minispielset2/sound/lachen1.mp3 differ
diff --git a/www/spielsets/minispielset2/sound/lachen2.mp3 b/www/spielsets/minispielset2/sound/lachen2.mp3
new file mode 100644
index 0000000..b970701
Binary files /dev/null and b/www/spielsets/minispielset2/sound/lachen2.mp3 differ
diff --git a/www/spielsets/minispielset2/systemsounds.json b/www/spielsets/minispielset2/systemsounds.json
new file mode 100644
index 0000000..44e47af
--- /dev/null
+++ b/www/spielsets/minispielset2/systemsounds.json
@@ -0,0 +1,5 @@
+[
+ {"id": 0, "type": "gamesound", "sound": "/android_asset/www/spielsets/minispielset1/sound/kitzeldenbaeren.mp3"},
+ {"id": 1, "type": "lachensound", "sound": "/android_asset/www/spielsets/minispielset1/sound/lachen1.mp3"},
+ {"id": 2, "type": "lachensound", "sound": "/android_asset/www/spielsets/minispielset1/sound/lachen2.mp3"}
+]
\ No newline at end of file
diff --git a/www/spielsets/spielset1/css/spielset.css b/www/spielsets/spielset1/css/spielset.css
new file mode 100644
index 0000000..e69de29