feat: Version recomposée initiale
|
@ -0,0 +1,66 @@
|
||||||
|
## Java
|
||||||
|
|
||||||
|
*.class
|
||||||
|
*.war
|
||||||
|
*.ear
|
||||||
|
hs_err_pid*
|
||||||
|
|
||||||
|
## GWT
|
||||||
|
war/
|
||||||
|
html/war/gwt_bree/
|
||||||
|
html/gwt-unitCache/
|
||||||
|
.apt_generated/
|
||||||
|
html/war/WEB-INF/deploy/
|
||||||
|
html/war/WEB-INF/classes/
|
||||||
|
.gwt/
|
||||||
|
gwt-unitCache/
|
||||||
|
www-test/
|
||||||
|
.gwt-tmp/
|
||||||
|
|
||||||
|
## Android Studio and Intellij and Android in general
|
||||||
|
android/libs/armeabi/
|
||||||
|
android/libs/armeabi-v7a/
|
||||||
|
android/libs/x86/
|
||||||
|
android/gen/
|
||||||
|
.idea/
|
||||||
|
*.ipr
|
||||||
|
*.iws
|
||||||
|
*.iml
|
||||||
|
out/
|
||||||
|
com_crashlytics_export_strings.xml
|
||||||
|
|
||||||
|
## Eclipse
|
||||||
|
.classpath
|
||||||
|
.project
|
||||||
|
.metadata
|
||||||
|
**/bin/
|
||||||
|
tmp/
|
||||||
|
*.tmp
|
||||||
|
*.bak
|
||||||
|
*.swp
|
||||||
|
*~.nib
|
||||||
|
.settings/
|
||||||
|
.loadpath
|
||||||
|
.externalToolBuilders/
|
||||||
|
*.launch
|
||||||
|
|
||||||
|
## NetBeans
|
||||||
|
**/nbproject/private/
|
||||||
|
build/
|
||||||
|
nbbuild/
|
||||||
|
dist/
|
||||||
|
nbdist/
|
||||||
|
nbactions.xml
|
||||||
|
nb-configuration.xml
|
||||||
|
|
||||||
|
## Gradle
|
||||||
|
|
||||||
|
.gradle
|
||||||
|
gradle-app.setting
|
||||||
|
build/
|
||||||
|
|
||||||
|
## OS Specific
|
||||||
|
.DS_Store
|
||||||
|
/android-sdk/
|
||||||
|
/html/
|
||||||
|
/keystore/
|
After Width: | Height: | Size: 51 KiB |
|
@ -0,0 +1,167 @@
|
||||||
|
## GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
![logo](https://www.gnu.org/graphics/lgplv3-with-text-154x68.png)
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|
||||||
|
This version of the GNU Lesser General Public License incorporates
|
||||||
|
the terms and conditions of version 3 of the GNU General Public
|
||||||
|
License, supplemented by the additional permissions listed below.
|
||||||
|
|
||||||
|
0. Additional Definitions.
|
||||||
|
|
||||||
|
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||||
|
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||||
|
General Public License.
|
||||||
|
|
||||||
|
"The Library" refers to a covered work governed by this License,
|
||||||
|
other than an Application or a Combined Work as defined below.
|
||||||
|
|
||||||
|
An "Application" is any work that makes use of an interface provided
|
||||||
|
by the Library, but which is not otherwise based on the Library.
|
||||||
|
Defining a subclass of a class defined by the Library is deemed a mode
|
||||||
|
of using an interface provided by the Library.
|
||||||
|
|
||||||
|
A "Combined Work" is a work produced by combining or linking an
|
||||||
|
Application with the Library. The particular version of the Library
|
||||||
|
with which the Combined Work was made is also called the "Linked
|
||||||
|
Version".
|
||||||
|
|
||||||
|
The "Minimal Corresponding Source" for a Combined Work means the
|
||||||
|
Corresponding Source for the Combined Work, excluding any source code
|
||||||
|
for portions of the Combined Work that, considered in isolation, are
|
||||||
|
based on the Application, and not on the Linked Version.
|
||||||
|
|
||||||
|
The "Corresponding Application Code" for a Combined Work means the
|
||||||
|
object code and/or source code for the Application, including any data
|
||||||
|
and utility programs needed for reproducing the Combined Work from the
|
||||||
|
Application, but excluding the System Libraries of the Combined Work.
|
||||||
|
|
||||||
|
1. Exception to Section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
You may convey a covered work under sections 3 and 4 of this License
|
||||||
|
without being bound by section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
2. Conveying Modified Versions.
|
||||||
|
|
||||||
|
If you modify a copy of the Library, and, in your modifications, a
|
||||||
|
facility refers to a function or data to be supplied by an Application
|
||||||
|
that uses the facility (other than as an argument passed when the
|
||||||
|
facility is invoked), then you may convey a copy of the modified
|
||||||
|
version:
|
||||||
|
|
||||||
|
a) under this License, provided that you make a good faith effort to
|
||||||
|
ensure that, in the event an Application does not supply the
|
||||||
|
function or data, the facility still operates, and performs
|
||||||
|
whatever part of its purpose remains meaningful, or
|
||||||
|
|
||||||
|
b) under the GNU GPL, with none of the additional permissions of
|
||||||
|
this License applicable to that copy.
|
||||||
|
|
||||||
|
3. Object Code Incorporating Material from Library Header Files.
|
||||||
|
|
||||||
|
The object code form of an Application may incorporate material from
|
||||||
|
a header file that is part of the Library. You may convey such object
|
||||||
|
code under terms of your choice, provided that, if the incorporated
|
||||||
|
material is not limited to numerical parameters, data structure
|
||||||
|
layouts and accessors, or small macros, inline functions and templates
|
||||||
|
(ten or fewer lines in length), you do both of the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the object code that the
|
||||||
|
Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
4. Combined Works.
|
||||||
|
|
||||||
|
You may convey a Combined Work under terms of your choice that,
|
||||||
|
taken together, effectively do not restrict modification of the
|
||||||
|
portions of the Library contained in the Combined Work and reverse
|
||||||
|
engineering for debugging such modifications, if you also do each of
|
||||||
|
the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the Combined Work that
|
||||||
|
the Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
c) For a Combined Work that displays copyright notices during
|
||||||
|
execution, include the copyright notice for the Library among
|
||||||
|
these notices, as well as a reference directing the user to the
|
||||||
|
copies of the GNU GPL and this license document.
|
||||||
|
|
||||||
|
d) Do one of the following:
|
||||||
|
|
||||||
|
0) Convey the Minimal Corresponding Source under the terms of this
|
||||||
|
License, and the Corresponding Application Code in a form
|
||||||
|
suitable for, and under terms that permit, the user to
|
||||||
|
recombine or relink the Application with a modified version of
|
||||||
|
the Linked Version to produce a modified Combined Work, in the
|
||||||
|
manner specified by section 6 of the GNU GPL for conveying
|
||||||
|
Corresponding Source.
|
||||||
|
|
||||||
|
1) Use a suitable shared library mechanism for linking with the
|
||||||
|
Library. A suitable mechanism is one that (a) uses at run time
|
||||||
|
a copy of the Library already present on the user's computer
|
||||||
|
system, and (b) will operate properly with a modified version
|
||||||
|
of the Library that is interface-compatible with the Linked
|
||||||
|
Version.
|
||||||
|
|
||||||
|
e) Provide Installation Information, but only if you would otherwise
|
||||||
|
be required to provide such information under section 6 of the
|
||||||
|
GNU GPL, and only to the extent that such information is
|
||||||
|
necessary to install and execute a modified version of the
|
||||||
|
Combined Work produced by recombining or relinking the
|
||||||
|
Application with a modified version of the Linked Version. (If
|
||||||
|
you use option 4d0, the Installation Information must accompany
|
||||||
|
the Minimal Corresponding Source and Corresponding Application
|
||||||
|
Code. If you use option 4d1, you must provide the Installation
|
||||||
|
Information in the manner specified by section 6 of the GNU GPL
|
||||||
|
for conveying Corresponding Source.)
|
||||||
|
|
||||||
|
5. Combined Libraries.
|
||||||
|
|
||||||
|
You may place library facilities that are a work based on the
|
||||||
|
Library side by side in a single library together with other library
|
||||||
|
facilities that are not Applications and are not covered by this
|
||||||
|
License, and convey such a combined library under terms of your
|
||||||
|
choice, if you do both of the following:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work based
|
||||||
|
on the Library, uncombined with any other library facilities,
|
||||||
|
conveyed under the terms of this License.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library that part of it
|
||||||
|
is a work based on the Library, and explaining where to find the
|
||||||
|
accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
6. Revised Versions of the GNU Lesser General Public License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the GNU Lesser General Public License from time to time. Such new
|
||||||
|
versions will be similar in spirit to the present version, but may
|
||||||
|
differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Library as you received it specifies that a certain numbered version
|
||||||
|
of the GNU Lesser General Public License "or any later version"
|
||||||
|
applies to it, you have the option of following the terms and
|
||||||
|
conditions either of that published version or of any later version
|
||||||
|
published by the Free Software Foundation. If the Library as you
|
||||||
|
received it does not specify a version number of the GNU Lesser
|
||||||
|
General Public License, you may choose any version of the GNU Lesser
|
||||||
|
General Public License ever published by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Library as you received it specifies that a proxy can decide
|
||||||
|
whether future versions of the GNU Lesser General Public License shall
|
||||||
|
apply, that proxy's public statement of acceptance of any version is
|
||||||
|
permanent authorization for you to choose that version for the
|
||||||
|
Library.
|
|
@ -0,0 +1,32 @@
|
||||||
|
----------------------------------------------------------------
|
||||||
|
## WireChem
|
||||||
|
|
||||||
|
![The new chemistry game](https://github.com/dahut87/WireChem/raw/develop/Graphisme/logo.png)
|
||||||
|
|
||||||
|
http://wirechem.palon.fr
|
||||||
|
|
||||||
|
*(C) Copyright 2013-2014 Nicolas Hordé
|
||||||
|
Licence GPL V3.0*
|
||||||
|
|
||||||
|
----------------------------------------------------------------
|
||||||
|
### A lire absolument
|
||||||
|
|
||||||
|
#### QU'EST CE QUE WIRECHEM ?
|
||||||
|
|
||||||
|
WireChem est un jeu de type puzzle basé sur les automates cellulaires
|
||||||
|
et sur la chimie.
|
||||||
|
|
||||||
|
#### PUIS-JE COPIER LE JEU ?
|
||||||
|
|
||||||
|
Le jeu est soumis à la licence LGPL V3.0 jointe au programme, vous
|
||||||
|
pouvez copier et modifier librement ce programme à des fins non-
|
||||||
|
commerciales. A vous de lire la suite...
|
||||||
|
|
||||||
|
#### DOIS-JE PAYER SI JE JOUE ?
|
||||||
|
|
||||||
|
Vous pouvez faire des dons pour encourager le développement du jeu
|
||||||
|
mais aucun droit n'est n'est du lors de l'usage du jeu.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,121 @@
|
||||||
|
android {
|
||||||
|
buildToolsVersion "21.1.2"
|
||||||
|
compileSdkVersion 21
|
||||||
|
sourceSets {
|
||||||
|
main {
|
||||||
|
manifest.srcFile 'AndroidManifest.xml'
|
||||||
|
java.srcDirs = ['src']
|
||||||
|
aidl.srcDirs = ['src']
|
||||||
|
renderscript.srcDirs = ['src']
|
||||||
|
res.srcDirs = ['res']
|
||||||
|
assets.srcDirs = ['assets']
|
||||||
|
}
|
||||||
|
|
||||||
|
instrumentTest.setRoot('tests')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// needed to add JNI shared libraries to APK when compiling on CLI
|
||||||
|
tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
|
||||||
|
pkgTask.jniFolders = new HashSet<File>()
|
||||||
|
pkgTask.jniFolders.add(new File(projectDir, 'libs'))
|
||||||
|
}
|
||||||
|
|
||||||
|
// called every time gradle gets executed, takes the native dependencies of
|
||||||
|
// the natives configuration, and extracts them to the proper libs/ folders
|
||||||
|
// so they get packed with the APK.
|
||||||
|
task copyAndroidNatives() {
|
||||||
|
file("libs/armeabi/").mkdirs();
|
||||||
|
file("libs/armeabi-v7a/").mkdirs();
|
||||||
|
file("libs/x86/").mkdirs();
|
||||||
|
|
||||||
|
configurations.natives.files.each { jar ->
|
||||||
|
def outputDir = null
|
||||||
|
if(jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
|
||||||
|
if(jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
|
||||||
|
if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
|
||||||
|
if(outputDir != null) {
|
||||||
|
copy {
|
||||||
|
from zipTree(jar)
|
||||||
|
into outputDir
|
||||||
|
include "*.so"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
task run(type: Exec) {
|
||||||
|
def path
|
||||||
|
def localProperties = project.file("../local.properties")
|
||||||
|
if (localProperties.exists()) {
|
||||||
|
Properties properties = new Properties()
|
||||||
|
localProperties.withInputStream { instr ->
|
||||||
|
properties.load(instr)
|
||||||
|
}
|
||||||
|
def sdkDir = properties.getProperty('sdk.dir')
|
||||||
|
if (sdkDir) {
|
||||||
|
path = sdkDir
|
||||||
|
} else {
|
||||||
|
path = "$System.env.ANDROID_HOME"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
path = "$System.env.ANDROID_HOME"
|
||||||
|
}
|
||||||
|
|
||||||
|
def adb = path + "/platform-tools/adb"
|
||||||
|
commandLine "$adb", 'shell', 'am', 'start', '-n', 'fr.evolving.game.android/fr.evolving.game.android.AndroidLauncher'
|
||||||
|
}
|
||||||
|
|
||||||
|
// sets up the Android Eclipse project, using the old Ant based build.
|
||||||
|
eclipse {
|
||||||
|
// need to specify Java source sets explicitely, SpringSource Gradle Eclipse plugin
|
||||||
|
// ignores any nodes added in classpath.file.withXml
|
||||||
|
sourceSets {
|
||||||
|
main {
|
||||||
|
java.srcDirs "src", 'gen'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jdt {
|
||||||
|
sourceCompatibility = 1.6
|
||||||
|
targetCompatibility = 1.6
|
||||||
|
}
|
||||||
|
|
||||||
|
classpath {
|
||||||
|
plusConfigurations += [ project.configurations.compile ]
|
||||||
|
containers 'com.android.ide.eclipse.adt.ANDROID_FRAMEWORK', 'com.android.ide.eclipse.adt.LIBRARIES'
|
||||||
|
}
|
||||||
|
|
||||||
|
project {
|
||||||
|
name = appName + "-android"
|
||||||
|
natures 'com.android.ide.eclipse.adt.AndroidNature'
|
||||||
|
buildCommands.clear();
|
||||||
|
buildCommand "com.android.ide.eclipse.adt.ResourceManagerBuilder"
|
||||||
|
buildCommand "com.android.ide.eclipse.adt.PreCompilerBuilder"
|
||||||
|
buildCommand "org.eclipse.jdt.core.javabuilder"
|
||||||
|
buildCommand "com.android.ide.eclipse.adt.ApkBuilder"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// sets up the Android Idea project, using the old Ant based build.
|
||||||
|
idea {
|
||||||
|
module {
|
||||||
|
sourceDirs += file("src");
|
||||||
|
scopes = [ COMPILE: [plus:[project.configurations.compile]]]
|
||||||
|
|
||||||
|
iml {
|
||||||
|
withXml {
|
||||||
|
def node = it.asNode()
|
||||||
|
def builder = NodeBuilder.newInstance();
|
||||||
|
builder.current = node;
|
||||||
|
builder.component(name: "FacetManager") {
|
||||||
|
facet(type: "android", name: "Android") {
|
||||||
|
configuration {
|
||||||
|
option(name: "UPDATE_PROPERTY_FILES", value:"true")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
package fr.evolving.game.android;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.backends.android.AndroidApplication;
|
||||||
|
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
|
||||||
|
import fr.evolving.game.main;
|
||||||
|
|
||||||
|
public class AndroidLauncher extends AndroidApplication {
|
||||||
|
@Override
|
||||||
|
protected void onCreate (Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
|
||||||
|
initialize(new main(), config);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,121 @@
|
||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
jcenter()
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.6'
|
||||||
|
classpath 'com.android.tools.build:gradle:1.2.3'
|
||||||
|
classpath 'org.robovm:robovm-gradle-plugin:1.9.0'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
allprojects {
|
||||||
|
apply plugin: "eclipse"
|
||||||
|
apply plugin: "idea"
|
||||||
|
|
||||||
|
version = '1.0'
|
||||||
|
ext {
|
||||||
|
appName = 'WireChem'
|
||||||
|
gdxVersion = '1.7.2'
|
||||||
|
roboVMVersion = '1.9.0'
|
||||||
|
box2DLightsVersion = '1.4'
|
||||||
|
ashleyVersion = '1.5.0'
|
||||||
|
aiVersion = '1.5.0'
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
|
||||||
|
maven { url "https://oss.sonatype.org/content/repositories/releases/" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
project(":desktop") {
|
||||||
|
apply plugin: "java"
|
||||||
|
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile project(":core")
|
||||||
|
compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-controllers-desktop:$gdxVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-controllers-platform:$gdxVersion:natives-desktop"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-tools:$gdxVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-desktop"
|
||||||
|
compile fileTree(dir: 'libs', include: ['*.jar'])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
project(":android") {
|
||||||
|
apply plugin: "android"
|
||||||
|
|
||||||
|
configurations { natives }
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile project(":core")
|
||||||
|
compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-controllers:$gdxVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-controllers-android:$gdxVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-ai:$aiVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-bullet:$gdxVersion"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-armeabi"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-armeabi-v7a"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-x86"
|
||||||
|
compile "com.badlogicgames.box2dlights:box2dlights:$box2DLightsVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-ai:$aiVersion"
|
||||||
|
compile fileTree(dir: 'libs', include: ['*.jar'])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
project(":ios") {
|
||||||
|
apply plugin: "java"
|
||||||
|
apply plugin: "robovm"
|
||||||
|
|
||||||
|
configurations { natives }
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile project(":core")
|
||||||
|
compile "org.robovm:robovm-rt:$roboVMVersion"
|
||||||
|
compile "org.robovm:robovm-cocoatouch:$roboVMVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-ios"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-ios"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
project(":core") {
|
||||||
|
apply plugin: "java"
|
||||||
|
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile "com.badlogicgames.gdx:gdx:$gdxVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
|
||||||
|
compile "com.badlogicgames.box2dlights:box2dlights:$box2DLightsVersion"
|
||||||
|
compile "com.badlogicgames.ashley:ashley:$ashleyVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-ai:$aiVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-controllers:$gdxVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-bullet:$gdxVersion"
|
||||||
|
compile fileTree(dir: 'libs', include: ['*.jar'])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.eclipse.doLast {
|
||||||
|
delete ".project"
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
apply plugin: "java"
|
||||||
|
|
||||||
|
sourceCompatibility = 1.6
|
||||||
|
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
|
||||||
|
|
||||||
|
sourceSets.main.java.srcDirs = [ "src/" ]
|
||||||
|
|
||||||
|
|
||||||
|
eclipse.project {
|
||||||
|
name = appName + "-core"
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
package fr.evolving.UI;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.graphics.Color;
|
||||||
|
import com.badlogic.gdx.graphics.Texture;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.Sprite;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.ui.ImageTextButton;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.utils.Align;
|
||||||
|
|
||||||
|
import fr.evolving.assets.AssetLoader;
|
||||||
|
|
||||||
|
public class ButtonLevel extends ImageTextButton {
|
||||||
|
public int level;
|
||||||
|
public int world;
|
||||||
|
public boolean Final;
|
||||||
|
public int[][] Link;
|
||||||
|
public boolean Activated;
|
||||||
|
TextureRegion Finalled,Locked;
|
||||||
|
public String id,shortid;
|
||||||
|
public int xx,yy;
|
||||||
|
private Color[] Levelcolors={AssetLoader.Skin_level.getColor("world1"),AssetLoader.Skin_level.getColor("world2"),AssetLoader.Skin_level.getColor("world3"),AssetLoader.Skin_level.getColor("world4"),AssetLoader.Skin_level.getColor("world5")};
|
||||||
|
Label Thelabel;
|
||||||
|
|
||||||
|
public ButtonLevel(String shortid,String id,int world, int level, boolean Final, int[][] Link, boolean Activated,int x, int y) {
|
||||||
|
super(id, AssetLoader.Skin_level, "world"+String.valueOf(world));
|
||||||
|
this.xx=x;
|
||||||
|
this.yy=y;
|
||||||
|
this.id=id;
|
||||||
|
this.shortid=shortid;
|
||||||
|
this.level=level;
|
||||||
|
this.world=world;
|
||||||
|
this.Final=Final;
|
||||||
|
this.Link=Link;
|
||||||
|
this.Activated=Activated;
|
||||||
|
if (Final==true) {
|
||||||
|
Finalled=AssetLoader.Skin_level.getAtlas().findRegion("boss");
|
||||||
|
}
|
||||||
|
if (Activated==false) {
|
||||||
|
this.setDisabled(true);
|
||||||
|
Locked=AssetLoader.Skin_level.getAtlas().findRegion("locked");
|
||||||
|
}
|
||||||
|
this.setColor(1f, 0.47f+(float)x/Gdx.graphics.getWidth()*0.529f,0.607f+(float)x/Gdx.graphics.getWidth()*0.392f, 1f);
|
||||||
|
this.setBounds(x/1024.0f*Gdx.graphics.getWidth(), y/768.0f*Gdx.graphics.getHeight(), 111, 125);
|
||||||
|
Thelabel=new Label(this.shortid, AssetLoader.Skin_level,"Levelshort");
|
||||||
|
Thelabel.setColor(xx/1024f,xx/1024f,xx/1024f,1f);
|
||||||
|
Thelabel.setPosition(xx/1024.0f*Gdx.graphics.getWidth()+54, yy/768.0f*Gdx.graphics.getHeight()+20, Align.bottom | Align.center);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Color getLevelcolor() {
|
||||||
|
return Levelcolors[world];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void draw(Batch batch, float parentAlpha) {
|
||||||
|
super.draw(batch, parentAlpha);
|
||||||
|
if (Final) {
|
||||||
|
batch.draw(Finalled,xx/1024.0f*Gdx.graphics.getWidth(),yy/768.0f*Gdx.graphics.getHeight());
|
||||||
|
}
|
||||||
|
if (!Activated) {
|
||||||
|
batch.draw(Locked,xx/1024.0f*Gdx.graphics.getWidth()+this.getWidth()-Locked.getRegionWidth(),yy/768.0f*Gdx.graphics.getHeight()+this.getHeight()-Locked.getRegionWidth());
|
||||||
|
}
|
||||||
|
Thelabel.draw(batch, 1f);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,95 @@
|
||||||
|
package fr.evolving.assets;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.Preferences;
|
||||||
|
import com.badlogic.gdx.audio.Sound;
|
||||||
|
import com.badlogic.gdx.graphics.Color;
|
||||||
|
import com.badlogic.gdx.graphics.Pixmap;
|
||||||
|
import com.badlogic.gdx.graphics.Texture;
|
||||||
|
import com.badlogic.gdx.graphics.Texture.TextureFilter;
|
||||||
|
import com.badlogic.gdx.graphics.TextureData;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.Animation;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.TextureAtlas.AtlasRegion;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||||
|
import com.badlogic.gdx.graphics.Texture.TextureWrap;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
|
||||||
|
|
||||||
|
public class AssetLoader {
|
||||||
|
public static Skin Skin_level;
|
||||||
|
public static TextureAtlas Atlas_level;
|
||||||
|
public static Texture Texture_fond;
|
||||||
|
public static Texture Texture_fond2;
|
||||||
|
public static Texture Texture_logo;
|
||||||
|
public static Sound intro;
|
||||||
|
private static Preferences prefs;
|
||||||
|
|
||||||
|
public static void addstyle(TextureAtlas Atlas_level,String Name) {
|
||||||
|
AtlasRegion AnAtlasRegion = Atlas_level.findRegion(Name);
|
||||||
|
if (AnAtlasRegion==null) return;
|
||||||
|
TextureData ATextureData = AnAtlasRegion.getTexture().getTextureData();
|
||||||
|
ATextureData.prepare();
|
||||||
|
Pixmap Pixmap_Over=ATextureData.consumePixmap();
|
||||||
|
Pixmap Pixmap_Disable=new Pixmap(Pixmap_Over.getWidth(), Pixmap_Over.getHeight(), Pixmap.Format.RGBA8888);
|
||||||
|
Pixmap Pixmap_Down=new Pixmap(Pixmap_Over.getWidth(), Pixmap_Over.getHeight(), Pixmap.Format.RGBA8888);
|
||||||
|
for(int x=0; x < Pixmap_Over.getWidth(); x++)
|
||||||
|
{
|
||||||
|
for(int y =0; y < Pixmap_Over.getHeight(); y++)
|
||||||
|
{
|
||||||
|
Color acolor= new Color(Pixmap_Over.getPixel(x, y));
|
||||||
|
Pixmap_Down.drawPixel(x, y,Color.rgba8888(acolor.a,0f,0f,acolor.a));
|
||||||
|
Pixmap_Disable.drawPixel(x, y, Color.rgba8888(acolor.r*0.352f,acolor.g*0.352f,acolor.b*0.352f,acolor.a));
|
||||||
|
Pixmap_Over.drawPixel(x, y, Color.rgba8888(acolor.r,acolor.g*0.2f,acolor.b*0.2f,acolor.a));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Atlas_level.addRegion(Name+"_disabled", new TextureRegion(new Texture(Pixmap_Disable),AnAtlasRegion.getRegionX(),AnAtlasRegion.getRegionY(),AnAtlasRegion.getRegionWidth(),AnAtlasRegion.getRegionHeight()));
|
||||||
|
Atlas_level.addRegion(Name+"_over", new TextureRegion(new Texture(Pixmap_Over),AnAtlasRegion.getRegionX(),AnAtlasRegion.getRegionY(),AnAtlasRegion.getRegionWidth(),AnAtlasRegion.getRegionHeight()));
|
||||||
|
Atlas_level.addRegion(Name+"_down", new TextureRegion(new Texture(Pixmap_Down),AnAtlasRegion.getRegionX(),AnAtlasRegion.getRegionY(),AnAtlasRegion.getRegionWidth(),AnAtlasRegion.getRegionHeight()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void loadall() {
|
||||||
|
Gdx.app.log("Chargements des éléments multimédia","ok");
|
||||||
|
Texture_fond = new Texture(Gdx.files.internal("pictures/fond.png"));
|
||||||
|
Texture_fond.setWrap(TextureWrap.Repeat, TextureWrap.Repeat);
|
||||||
|
Texture_fond2 = new Texture(Gdx.files.internal("pictures/fond2.png"));
|
||||||
|
Texture_fond2.setWrap(TextureWrap.Repeat, TextureWrap.Repeat);
|
||||||
|
Atlas_level= new TextureAtlas(Gdx.files.internal("textures/level.pack"));
|
||||||
|
for(int i=0; i < 5; i++)
|
||||||
|
addstyle(Atlas_level,"leveler"+String.valueOf(i));
|
||||||
|
addstyle(Atlas_level,"arrows");
|
||||||
|
addstyle(Atlas_level,"arrows2");
|
||||||
|
addstyle(Atlas_level,"exit2");
|
||||||
|
Skin_level = new Skin(Gdx.files.internal("textures/level.json"),Atlas_level);
|
||||||
|
prefs = Gdx.app.getPreferences("WireWorld");
|
||||||
|
|
||||||
|
if (!prefs.contains("resolutionx")) {
|
||||||
|
prefs.putInteger("resolutionx", 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void load() {
|
||||||
|
Gdx.app.log("Chargements des éléments minimalistes","ok");
|
||||||
|
Texture_logo = new Texture(Gdx.files.internal("pictures/logo.png"));
|
||||||
|
Texture_logo.setFilter(TextureFilter.Linear,TextureFilter.Linear);
|
||||||
|
intro = Gdx.audio.newSound(Gdx.files.internal("musics/intro.mp3"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setHighScore(int val) {
|
||||||
|
prefs.putInteger("highScore", val);
|
||||||
|
prefs.flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getHighScore() {
|
||||||
|
return prefs.getInteger("highScore");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void dispose() {
|
||||||
|
Texture_logo.dispose();
|
||||||
|
Texture_fond.dispose();
|
||||||
|
Skin_level.dispose();
|
||||||
|
Atlas_level.dispose();
|
||||||
|
intro.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,127 @@
|
||||||
|
package fr.evolving.assets;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.ObjectInputStream;
|
||||||
|
import java.io.ObjectOutputStream;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
import fr.evolving.automata.Cell;
|
||||||
|
import fr.evolving.automata.Grid;
|
||||||
|
import fr.evolving.automata.Level;
|
||||||
|
|
||||||
|
public class SaveObject {
|
||||||
|
|
||||||
|
private static String DB_DRIVER = "";
|
||||||
|
private static String DB_CONNECTION = "";
|
||||||
|
private static String DB_USER = "";
|
||||||
|
private static String DB_PASSWORD = "";
|
||||||
|
|
||||||
|
public SaveObject(String DRIVER, String CONNECTION, String USER, String PASSWORD) {
|
||||||
|
DB_DRIVER=DRIVER;
|
||||||
|
DB_CONNECTION=CONNECTION;
|
||||||
|
DB_USER=USER;
|
||||||
|
DB_PASSWORD=PASSWORD;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void saveObject(Object javaObject) throws Exception
|
||||||
|
{
|
||||||
|
try{
|
||||||
|
Connection conn = getDBConnection();
|
||||||
|
PreparedStatement ps=null;
|
||||||
|
String sql=null;
|
||||||
|
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||||
|
ObjectOutputStream oos = new ObjectOutputStream(bos);
|
||||||
|
oos.writeObject(javaObject);
|
||||||
|
oos.flush();
|
||||||
|
oos.close();
|
||||||
|
bos.close();
|
||||||
|
byte[] data = bos.toByteArray();
|
||||||
|
sql="insert into worlds (javaObject) values(?)";
|
||||||
|
ps=conn.prepareStatement(sql);
|
||||||
|
ps.setObject(1, data);
|
||||||
|
ps.executeUpdate();
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getObject(Object javaObject) throws Exception
|
||||||
|
{
|
||||||
|
Connection conn=getDBConnection();
|
||||||
|
PreparedStatement ps=null;
|
||||||
|
ResultSet rs=null;
|
||||||
|
Object mc =null;
|
||||||
|
String sql="select * from worlds where id=1";
|
||||||
|
ps=conn.prepareStatement(sql);
|
||||||
|
rs=ps.executeQuery();
|
||||||
|
if(rs.next())
|
||||||
|
{
|
||||||
|
ByteArrayInputStream bais;
|
||||||
|
ObjectInputStream ins;
|
||||||
|
try {
|
||||||
|
bais = new ByteArrayInputStream(rs.getBytes("javaObject"));
|
||||||
|
ins = new ObjectInputStream(bais);
|
||||||
|
mc = ins.readObject();
|
||||||
|
ins.close();
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mc;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Connection getDBConnection() {
|
||||||
|
Connection dbConnection = null;
|
||||||
|
try {
|
||||||
|
Class.forName(DB_DRIVER);
|
||||||
|
}
|
||||||
|
catch (ClassNotFoundException e) {
|
||||||
|
System.out.println(e.getMessage());
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
dbConnection = DriverManager.getConnection(DB_CONNECTION,DB_USER,DB_PASSWORD);
|
||||||
|
return dbConnection;
|
||||||
|
}
|
||||||
|
catch (SQLException e) {
|
||||||
|
System.out.println(e.getMessage());
|
||||||
|
}
|
||||||
|
return dbConnection;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Level[] initObject()
|
||||||
|
{
|
||||||
|
Level[] thelevels=new Level[9];
|
||||||
|
|
||||||
|
thelevels[0]=new Level("Introduction",
|
||||||
|
"Prise en main de l'interface de WireChem{#169} et amener l'électron neutre sur le senseur.",
|
||||||
|
"e0",
|
||||||
|
new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
||||||
|
new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
||||||
|
38f,
|
||||||
|
450f,
|
||||||
|
-1,
|
||||||
|
0,
|
||||||
|
new Grid(20,20),
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
99999,
|
||||||
|
99999,
|
||||||
|
99999,
|
||||||
|
99999,
|
||||||
|
"",
|
||||||
|
false,
|
||||||
|
new int[][]{{0, 1}, {0, 8}});
|
||||||
|
return thelevels;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
package fr.evolving.automata;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public class Automata implements Serializable{
|
||||||
|
private int X;
|
||||||
|
private int Y;
|
||||||
|
private Grid MyGrid;
|
||||||
|
private Cell Current;
|
||||||
|
private transient Cell Old;
|
||||||
|
|
||||||
|
public Automata(int X,int Y,Grid MyGrid) {
|
||||||
|
this.X=X;
|
||||||
|
this.Y=Y;
|
||||||
|
this.MyGrid=MyGrid;
|
||||||
|
this.Current=new Cell();
|
||||||
|
this.Old=new Cell();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Automata GetRelative(int X,int Y) {
|
||||||
|
int goX=this.X+X;
|
||||||
|
int goY=this.Y+Y;
|
||||||
|
if (goX<0 || goY<0 || goX>=this.MyGrid.automatas.length || goY>=this.MyGrid.automatas[0].length) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return this.MyGrid.automatas[goX][goY];
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
package fr.evolving.automata;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.Sprite;
|
||||||
|
|
||||||
|
public class Cell implements Serializable{
|
||||||
|
public int Fiber;
|
||||||
|
public boolean Copper;
|
||||||
|
public transient int Fiber_old;
|
||||||
|
public transient Sprite Sprite ;
|
||||||
|
public Transmuter Transmuter;
|
||||||
|
|
||||||
|
public Cell() {
|
||||||
|
this.Fiber=0;
|
||||||
|
this.Copper=false;
|
||||||
|
this.Fiber_old=0;
|
||||||
|
this.Sprite=null;
|
||||||
|
this.Transmuter=null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
package fr.evolving.automata;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
|
||||||
|
public class Grid implements Serializable{
|
||||||
|
public Cell[][] Cells;
|
||||||
|
private Integer sizeX,sizeY;
|
||||||
|
|
||||||
|
public Grid(Integer X,Integer Y) {
|
||||||
|
this.sizeX=X;
|
||||||
|
this.sizeY=Y;
|
||||||
|
this.Cells = new Cell[this.sizeX][this.sizeY];
|
||||||
|
for (int x=0;x<this.sizeX;x++) {
|
||||||
|
for (int y=0;y<this.sizeY;y++) {
|
||||||
|
this.Cells[x][y]=new Cell();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Cell GetXY(int X,int Y) {
|
||||||
|
if (X<0 || Y<0 || X>=this.sizeX || Y>=this.sizeY) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return this.Cells[X][Y];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
package fr.evolving.automata;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public class Level implements Serializable{
|
||||||
|
String Name;
|
||||||
|
String Description;
|
||||||
|
String Element;
|
||||||
|
int[] Current;
|
||||||
|
int[] Victory;
|
||||||
|
float X;
|
||||||
|
float Y;
|
||||||
|
int Tech;
|
||||||
|
int Cout;
|
||||||
|
Grid Grid;
|
||||||
|
int Cycle;
|
||||||
|
int Temp;
|
||||||
|
int Rayon;
|
||||||
|
int Nrj;
|
||||||
|
int Maxcycle;
|
||||||
|
int Maxtemp;
|
||||||
|
int Maxrayon;
|
||||||
|
int Maxnrj;
|
||||||
|
boolean Special;
|
||||||
|
String Tuto;
|
||||||
|
int[][] Link;
|
||||||
|
|
||||||
|
public Level(String Name,String Description,String Element,int[] Current,int[] Victory,float X,float Y,int Tech,int Cout,Grid World,int Cycle,int Temp,int Rayon,int Nrj,int Maxcycle,int Maxtemp,int Maxrayon,int Maxnrj,String Tuto,boolean Special, int[][] Link){
|
||||||
|
this.Name=Name;
|
||||||
|
this.Description=Description;
|
||||||
|
this.Element=Element;
|
||||||
|
this.Current=Current;
|
||||||
|
this.Victory=Victory;
|
||||||
|
this.X=X;
|
||||||
|
this.Y=Y;
|
||||||
|
this.Tech=Tech;
|
||||||
|
this.Cout=Cout;
|
||||||
|
this.Grid=World;
|
||||||
|
this.Cycle=Cycle;
|
||||||
|
this.Temp=Temp;
|
||||||
|
this.Rayon=Rayon;
|
||||||
|
this.Nrj=Nrj;
|
||||||
|
this.Maxcycle=Maxcycle;
|
||||||
|
this.Maxtemp=Maxtemp;
|
||||||
|
this.Maxrayon=Maxrayon;
|
||||||
|
this.Maxnrj=Maxnrj;
|
||||||
|
this.Special=Special;
|
||||||
|
this.Tuto=Tuto;
|
||||||
|
this.Link=Link;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
package fr.evolving.automata;
|
||||||
|
|
||||||
|
abstract public class Transmuter {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
package fr.evolving.automata;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public class World implements Serializable{
|
||||||
|
String Name;
|
||||||
|
String Description;
|
||||||
|
String Element;
|
||||||
|
Integer[] Current;
|
||||||
|
Integer[] Victory;
|
||||||
|
Integer X;
|
||||||
|
Integer Y;
|
||||||
|
Integer Tech;
|
||||||
|
Integer Cout;
|
||||||
|
Grid World;
|
||||||
|
Integer Cycle;
|
||||||
|
Integer Temp;
|
||||||
|
Integer Rayon;
|
||||||
|
Integer Nrj;
|
||||||
|
Integer Maxcycle;
|
||||||
|
Integer Maxtemp;
|
||||||
|
Integer Maxrayon;
|
||||||
|
Integer Maxnrj;
|
||||||
|
String Tuto;
|
||||||
|
Integer[][] Link;
|
||||||
|
|
||||||
|
public void World(String Name,String Description,String Element,Integer[] Current,Integer[] Victory,Integer X,Integer Y,Integer Tech,Integer Cout,Grid World,Integer Cycle,Integer Temp,Integer Rayon,Integer Nrj,Integer Maxcycle,Integer Maxtemp,Integer Maxrayon,Integer Maxnrj,String Tuto,Integer[][] Link){
|
||||||
|
this.Name=Name;
|
||||||
|
this.Description=Description;
|
||||||
|
this.Element=Element;
|
||||||
|
this.Current=Current;
|
||||||
|
this.Victory=Victory;
|
||||||
|
this.X=X;
|
||||||
|
this.Y=Y;
|
||||||
|
this.Tech=Tech;
|
||||||
|
this.Cout=Cout;
|
||||||
|
this.World=World;
|
||||||
|
this.Cycle=Cycle;
|
||||||
|
this.Temp=Temp;
|
||||||
|
this.Rayon=Rayon;
|
||||||
|
this.Nrj=Nrj;
|
||||||
|
this.Maxcycle=Maxcycle;
|
||||||
|
this.Maxtemp=Maxtemp;
|
||||||
|
this.Maxrayon=Maxrayon;
|
||||||
|
this.Maxnrj=Maxnrj;
|
||||||
|
this.Tuto=Tuto;
|
||||||
|
this.Link=Link;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,131 @@
|
||||||
|
package fr.evolving.effects;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.graphics.Color;
|
||||||
|
import com.badlogic.gdx.graphics.GL20;
|
||||||
|
import com.badlogic.gdx.graphics.Texture;
|
||||||
|
import com.badlogic.gdx.graphics.Texture.TextureFilter;
|
||||||
|
import com.badlogic.gdx.graphics.Texture.TextureWrap;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.Sprite;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||||
|
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
||||||
|
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
|
||||||
|
import com.badlogic.gdx.math.MathUtils;
|
||||||
|
import com.badlogic.gdx.math.Vector2;
|
||||||
|
|
||||||
|
import fr.evolving.assets.AssetLoader;
|
||||||
|
import fr.evolving.math.Calcul;
|
||||||
|
|
||||||
|
public class Laser {
|
||||||
|
|
||||||
|
public float i=0;
|
||||||
|
TextureRegion overlaymiddle,middle,overlay;
|
||||||
|
|
||||||
|
public Laser() {
|
||||||
|
i=0;
|
||||||
|
overlaymiddle=AssetLoader.Skin_level.getAtlas().findRegion("overlay-middle");
|
||||||
|
middle=AssetLoader.Skin_level.getAtlas().findRegion("middle");
|
||||||
|
overlay=AssetLoader.Skin_level.getAtlas().findRegion("overlay");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void draw(float xx1,float yy1,float xx2,float yy2,float maxwidth,float power,boolean active,Color colorsrc,Color colordst) {
|
||||||
|
float x1=xx1/1024.0f*Gdx.graphics.getWidth();
|
||||||
|
float x2=xx2/1024.0f*Gdx.graphics.getWidth();
|
||||||
|
float y1=yy1/768.0f*Gdx.graphics.getHeight();
|
||||||
|
float y2=yy2/768.0f*Gdx.graphics.getHeight();
|
||||||
|
Vector2 vectorall = new Vector2(x2, y2).sub(new Vector2(x1, y1));
|
||||||
|
float length = vectorall.len();
|
||||||
|
Vector2 vectoradd = vectorall.scl(10/length);
|
||||||
|
SpriteBatch Laser=new SpriteBatch();
|
||||||
|
Laser.begin();
|
||||||
|
Laser.setColor(colorsrc);
|
||||||
|
Laser.setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE);
|
||||||
|
Laser.draw(overlaymiddle,x1,y1,32,0,64,length,1f,1f,(float)Math.toDegrees(Calcul.getAngle(x1,y1,x2,y2)));
|
||||||
|
Laser.draw(middle,x1,y1,32,0,64,length,1f,1f,(float)Math.toDegrees(Calcul.getAngle(x1,y1,x2,y2)));
|
||||||
|
Laser.setColor(new Color(1f,1f,1f,1f));
|
||||||
|
Laser.draw(overlay,x1+i*vectoradd.x,y1+i*vectoradd.y,32,0,64,Calcul.getLen(x1+i*vectoradd.x,y1+i*vectoradd.y,x2,y2),1f,1f,(float)Math.toDegrees(Calcul.getAngle(x1,y1,x2,y2)));
|
||||||
|
Laser.draw(overlay,x1,y1,32,0,64,Calcul.getLen(x1+i*vectoradd.x,y1+i*vectoradd.y,x2,y2),1f,1f,(float)Math.toDegrees(Calcul.getAngle(x1,y1,x2,y2)));
|
||||||
|
Laser.end();
|
||||||
|
Laser.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void drawnotsoold(float xx1,float yy1,float xx2,float yy2,float maxwidth,float power,boolean active,Color colorsrc,Color colordst) {
|
||||||
|
float x1=xx1/1024.0f*Gdx.graphics.getWidth();
|
||||||
|
float x2=xx2/1024.0f*Gdx.graphics.getWidth();
|
||||||
|
float y1=yy1/768.0f*Gdx.graphics.getHeight();
|
||||||
|
float y2=yy2/768.0f*Gdx.graphics.getHeight();
|
||||||
|
ShapeRenderer Laser=new ShapeRenderer();
|
||||||
|
//Laser.begin(ShapeType.Line);
|
||||||
|
Laser.begin(ShapeType.Filled);
|
||||||
|
//Gdx.gl.glEnable(GL20.GL_BLEND);
|
||||||
|
Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
if (active) {
|
||||||
|
Vector2 vectorall = new Vector2(x2, y2).sub(new Vector2(x1, y1));
|
||||||
|
float length = vectorall.len();
|
||||||
|
float size=20;
|
||||||
|
Vector2 vectoradd = vectorall.scl(size/length);
|
||||||
|
float adding=0;
|
||||||
|
for(float i = 2; i+2 < length/size; i += 1)
|
||||||
|
{
|
||||||
|
float width=(float)(maxwidth-Math.random()*2);
|
||||||
|
while(width >= 0)
|
||||||
|
{
|
||||||
|
adding=(width*power/maxwidth);
|
||||||
|
Color Acolor=colorsrc.cpy().lerp(colordst.cpy(), (i/(length/size)));
|
||||||
|
Laser.setColor(Acolor.add(adding,adding,adding,0.5f));
|
||||||
|
if (Math.random()>0.4) Laser.rectLine(x1 + i*vectoradd.x, y1 + i*vectoradd.y, x1+ (i+1)*vectoradd.x, y1+(i+1)* vectoradd.y, width);
|
||||||
|
width=width-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Color Acolor=new Color(0.5f,0.5f,0.5f,1f);
|
||||||
|
Laser.setColor(Acolor);
|
||||||
|
Laser.rectLine(x1, y1 , x2, y2, 2);
|
||||||
|
}
|
||||||
|
Laser.end();
|
||||||
|
Laser.dispose();
|
||||||
|
Gdx.gl.glDisable(GL20.GL_BLEND);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void drawold(float xx1,float yy1,float xx2,float yy2,float maxwidth,float power,boolean active,Color colorsrc,Color colordst) {
|
||||||
|
float x1=xx1/1024.0f*Gdx.graphics.getWidth();
|
||||||
|
float x2=xx2/1024.0f*Gdx.graphics.getWidth();
|
||||||
|
float y1=yy1/768.0f*Gdx.graphics.getHeight();
|
||||||
|
float y2=yy2/768.0f*Gdx.graphics.getHeight();
|
||||||
|
ShapeRenderer Laser=new ShapeRenderer();
|
||||||
|
//Laser.begin(ShapeType.Line);
|
||||||
|
float adding=0;
|
||||||
|
Laser.begin(ShapeType.Point);
|
||||||
|
Vector2 vec2 = new Vector2(x2, y2).sub(new Vector2(x1, y1));
|
||||||
|
float length = vec2.len();
|
||||||
|
float awidth=0,width = 0;
|
||||||
|
float size = 0;
|
||||||
|
for(int i = 0; i < length; i += 1) {
|
||||||
|
if ((i % 5)==0)
|
||||||
|
awidth=(float)(Math.random()*maxwidth/2);
|
||||||
|
width=awidth;
|
||||||
|
if (i % ((int)width*20+1)==0)
|
||||||
|
size=(float)(Math.random());
|
||||||
|
vec2.clamp(length - i, length - i);
|
||||||
|
while(width >= 0) {
|
||||||
|
adding=(width*power/maxwidth);
|
||||||
|
Color Acolor=colordst.cpy().lerp(colorsrc.cpy(), (i/length));
|
||||||
|
Laser.setColor(Acolor.add(adding,adding,adding,1f));
|
||||||
|
if (size>0.4f) {
|
||||||
|
Laser.point(x1 + vec2.x-width/2, y1 + vec2.y+width/2, 0);
|
||||||
|
Laser.point(x1 + vec2.x+width/2, y1 + vec2.y-width/2, 0);
|
||||||
|
}
|
||||||
|
width=width-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Laser.end();
|
||||||
|
Laser.dispose();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
package fr.evolving.game;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Game;
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
|
||||||
|
import fr.evolving.screens.GameScreen;
|
||||||
|
import fr.evolving.screens.SplashScreen;
|
||||||
|
import fr.evolving.assets.AssetLoader;
|
||||||
|
|
||||||
|
public class main extends Game {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void create() {
|
||||||
|
setScreen(new SplashScreen(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dispose() {
|
||||||
|
super.dispose();
|
||||||
|
AssetLoader.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,74 @@
|
||||||
|
package fr.evolving.inputs;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Input.Keys;
|
||||||
|
import com.badlogic.gdx.InputProcessor;
|
||||||
|
|
||||||
|
import fr.evolving.worlds.GameWorld;
|
||||||
|
|
||||||
|
public class InputHandler implements InputProcessor {
|
||||||
|
private GameWorld myWorld;
|
||||||
|
|
||||||
|
private float scaleFactorX;
|
||||||
|
private float scaleFactorY;
|
||||||
|
|
||||||
|
public InputHandler(float scaleFactorX, float scaleFactorY) {
|
||||||
|
this.scaleFactorX = scaleFactorX;
|
||||||
|
this.scaleFactorY = scaleFactorY;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
|
||||||
|
screenX = scaleX(screenX);
|
||||||
|
screenY = scaleY(screenY);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
|
||||||
|
screenX = scaleX(screenX);
|
||||||
|
screenY = scaleY(screenY);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean keyDown(int keycode) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean keyUp(int keycode) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean keyTyped(char character) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean touchDragged(int screenX, int screenY, int pointer) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean mouseMoved(int screenX, int screenY) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean scrolled(int amount) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int scaleX(int screenX) {
|
||||||
|
return (int) (screenX / scaleFactorX);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int scaleY(int screenY) {
|
||||||
|
return (int) (screenY / scaleFactorY);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
package fr.evolving.math;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.math.Vector2;
|
||||||
|
|
||||||
|
public class Calcul {
|
||||||
|
|
||||||
|
public static double getAngle(float x1,float y1,float x2,float y2) {
|
||||||
|
double theta = Math.atan2(y2 - y1, x2 - x1);
|
||||||
|
theta -= Math.PI/2.0f;
|
||||||
|
if (theta < 0) {
|
||||||
|
theta += 2.0f*Math.PI;
|
||||||
|
}
|
||||||
|
return theta;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static float getLen(float x1,float y1,float x2,float y2) {
|
||||||
|
Vector2 src=new Vector2(x1,y1);
|
||||||
|
Vector2 dst=new Vector2(x2,y2);
|
||||||
|
return dst.sub(src).len();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,63 @@
|
||||||
|
package fr.evolving.screens;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.Screen;
|
||||||
|
import fr.evolving.worlds.GameRenderer;
|
||||||
|
import fr.evolving.worlds.GameWorld;
|
||||||
|
import fr.evolving.inputs.InputHandler;
|
||||||
|
|
||||||
|
public class GameScreen implements Screen {
|
||||||
|
|
||||||
|
private GameWorld world;
|
||||||
|
private GameRenderer renderer;
|
||||||
|
private float runTime;
|
||||||
|
|
||||||
|
// This is the constructor, not the class declaration
|
||||||
|
public GameScreen() {
|
||||||
|
|
||||||
|
float screenWidth = Gdx.graphics.getWidth();
|
||||||
|
float screenHeight = Gdx.graphics.getHeight();
|
||||||
|
float gameWidth = 136;
|
||||||
|
float gameHeight = screenHeight / (screenWidth / gameWidth);
|
||||||
|
int midPointY = (int) (gameHeight / 2);
|
||||||
|
|
||||||
|
world = new GameWorld(midPointY);
|
||||||
|
Gdx.input.setInputProcessor(new InputHandler(screenWidth / gameWidth, screenHeight / gameHeight));
|
||||||
|
renderer = new GameRenderer(world, (int) gameHeight, midPointY);
|
||||||
|
world.setRenderer(renderer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void render(float delta) {
|
||||||
|
runTime += delta;
|
||||||
|
world.update(delta);
|
||||||
|
renderer.render(delta, runTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resize(int width, int height) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void show() {
|
||||||
|
Gdx.app.log("Affichage du GameScreen","ok");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void hide() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pause() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resume() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dispose() {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,123 @@
|
||||||
|
package fr.evolving.screens;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.Screen;
|
||||||
|
import com.badlogic.gdx.graphics.Color;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.Stage;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.ui.ImageButton;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.ui.Table;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.ui.ImageTextButton;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||||
|
|
||||||
|
import fr.evolving.worlds.LevelRenderer;
|
||||||
|
import fr.evolving.UI.ButtonLevel;
|
||||||
|
import fr.evolving.inputs.InputHandler;
|
||||||
|
import java.util.Timer;
|
||||||
|
import java.util.TimerTask;
|
||||||
|
import fr.evolving.assets.AssetLoader;
|
||||||
|
import fr.evolving.effects.Laser;
|
||||||
|
|
||||||
|
|
||||||
|
public class LevelScreen implements Screen {
|
||||||
|
public ButtonLevel[] buttonLevels;
|
||||||
|
private LevelRenderer Renderer;
|
||||||
|
private float runTime;
|
||||||
|
private Timer ScrollTimer;
|
||||||
|
private TimerTask ScrollTask;
|
||||||
|
private Stage stage = new Stage();
|
||||||
|
private Table table = new Table();
|
||||||
|
private ImageButton Previous,Next,Exit;
|
||||||
|
private TextButton buttonPlay,buttonExit;
|
||||||
|
|
||||||
|
// This is the constructor, not the class declaration
|
||||||
|
public LevelScreen() {
|
||||||
|
float screenWidth = Gdx.graphics.getWidth();
|
||||||
|
float screenHeight = Gdx.graphics.getHeight();
|
||||||
|
Renderer=new LevelRenderer((int)screenWidth,(int)screenHeight,this);
|
||||||
|
buttonLevels = new ButtonLevel[10];
|
||||||
|
int[][] integer=new int[][] {{0,2},{0,3},{0,1}};
|
||||||
|
buttonLevels[0]= new ButtonLevel("H","Hydrogene en test",0,0,true, integer, true,120,120);
|
||||||
|
buttonLevels[1]= new ButtonLevel("Li","Lithium a voir",0,1,false, new int[0][0], false,820,520);
|
||||||
|
buttonLevels[2]= new ButtonLevel("Ne","Neon",0,2,true, new int[0][0], true,420,420);
|
||||||
|
buttonLevels[3]= new ButtonLevel("Mg","Magnesium 23",0,3,false, new int[0][0], false,420,220);
|
||||||
|
buttonLevels[4]= new ButtonLevel("Pr","prout 21",1,3,true, integer, true,520,520);
|
||||||
|
int[][] integer2=new int[][] {{0,1},{1,3},{0,2}};
|
||||||
|
buttonLevels[5]= new ButtonLevel("Pr","prout",4,5,true, integer2, true,900,40);
|
||||||
|
ScrollTimer=new Timer();
|
||||||
|
ScrollTask = new TimerTask()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
Renderer.evolve();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ScrollTimer.scheduleAtFixedRate(ScrollTask, 0, 30);
|
||||||
|
buttonPlay = new TextButton("Play", AssetLoader.Skin_level);
|
||||||
|
buttonExit = new TextButton("Exit", AssetLoader.Skin_level);
|
||||||
|
Exit=new ImageButton(AssetLoader.Skin_level,"Exit");
|
||||||
|
Exit.setPosition(900, Gdx.graphics.getHeight()-Exit.getHeight());
|
||||||
|
Exit.addListener(new ClickListener(){
|
||||||
|
@Override
|
||||||
|
public void clicked(InputEvent event, float x, float y) {
|
||||||
|
Gdx.app.exit();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Next=new ImageButton(AssetLoader.Skin_level,"Next");
|
||||||
|
Next.setPosition(800, 100);
|
||||||
|
Previous=new ImageButton(AssetLoader.Skin_level,"Previous");
|
||||||
|
Previous.setPosition(900, 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void render(float delta) {
|
||||||
|
runTime += delta;
|
||||||
|
Renderer.render(delta, runTime);
|
||||||
|
stage.act();
|
||||||
|
stage.draw();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resize(int width, int height) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void show() {
|
||||||
|
Gdx.app.log("Affichage du LevelScreen","ok");
|
||||||
|
table.add(buttonPlay).size(150,60).padBottom(20).row();
|
||||||
|
table.add(buttonExit).size(150,60).padBottom(20).row();
|
||||||
|
for (int i=0;i<10;i++) {
|
||||||
|
if (buttonLevels[i]!=null) {
|
||||||
|
stage.addActor(buttonLevels[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
table.setFillParent(true);
|
||||||
|
stage.addActor(table);
|
||||||
|
stage.addActor(Exit);
|
||||||
|
stage.addActor(Next);
|
||||||
|
stage.addActor(Previous);
|
||||||
|
Gdx.input.setInputProcessor(stage);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void hide() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pause() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resume() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dispose() {
|
||||||
|
stage.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,85 @@
|
||||||
|
package fr.evolving.screens;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.Screen;
|
||||||
|
import com.badlogic.gdx.graphics.GL20;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.Sprite;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
|
import com.badlogic.gdx.Game;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.Stage;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.actions.Actions;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||||
|
|
||||||
|
import fr.evolving.assets.AssetLoader;
|
||||||
|
import fr.evolving.game.main;
|
||||||
|
|
||||||
|
public class SplashScreen implements Screen {
|
||||||
|
|
||||||
|
private main game;
|
||||||
|
private Stage stage = new Stage();
|
||||||
|
private Image splashImage;
|
||||||
|
|
||||||
|
public SplashScreen(main game) {
|
||||||
|
this.game = game;
|
||||||
|
AssetLoader.load();
|
||||||
|
splashImage = new Image(AssetLoader.Texture_logo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void show() {
|
||||||
|
float width = Gdx.graphics.getWidth();
|
||||||
|
float height = Gdx.graphics.getHeight();
|
||||||
|
float desiredWidth = width * .7f;
|
||||||
|
float scale = desiredWidth / splashImage.getWidth();
|
||||||
|
splashImage.setSize(splashImage.getWidth() * scale, splashImage.getHeight() * scale);
|
||||||
|
splashImage.setPosition((width / 2) - (splashImage.getWidth() / 2), (height / 2) - (splashImage.getHeight() / 2));
|
||||||
|
stage.addActor(splashImage);
|
||||||
|
splashImage.addAction(Actions.sequence(Actions.alpha(0),Actions.fadeIn(0.5f),Actions.run(new Runnable() {
|
||||||
|
//splashImage.addAction(Actions.sequence(Actions.alpha(0),Actions.run(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
AssetLoader.loadall();
|
||||||
|
}
|
||||||
|
}),Actions.run(new Runnable() {
|
||||||
|
//splashImage.addAction(Actions.sequence(Actions.alpha(0),Actions.run(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
((Game)Gdx.app.getApplicationListener()).setScreen(new LevelScreen());
|
||||||
|
}
|
||||||
|
})));
|
||||||
|
|
||||||
|
AssetLoader.intro.setLooping(0, true);
|
||||||
|
AssetLoader.intro.play();
|
||||||
|
Gdx.app.log("Affichage du SplashScreen","ok");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void render(float delta) {
|
||||||
|
Gdx.gl.glClearColor(0, 0, 0, 1);
|
||||||
|
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
|
||||||
|
stage.act();
|
||||||
|
stage.draw();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resize(int width, int height) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void hide() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pause() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resume() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dispose() {
|
||||||
|
stage.dispose();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,71 @@
|
||||||
|
package fr.evolving.worlds;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.graphics.Color;
|
||||||
|
import com.badlogic.gdx.graphics.GL20;
|
||||||
|
import com.badlogic.gdx.graphics.OrthographicCamera;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.Animation;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||||
|
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
||||||
|
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
|
||||||
|
|
||||||
|
import fr.evolving.assets.AssetLoader;
|
||||||
|
import fr.evolving.inputs.InputHandler;
|
||||||
|
|
||||||
|
public class GameRenderer {
|
||||||
|
|
||||||
|
private GameWorld myWorld;
|
||||||
|
private OrthographicCamera cam;
|
||||||
|
private ShapeRenderer shapeRenderer;
|
||||||
|
private SpriteBatch batcher;
|
||||||
|
|
||||||
|
private int midPointY;
|
||||||
|
|
||||||
|
public GameRenderer(GameWorld world, int gameHeight, int midPointY) {
|
||||||
|
myWorld = world;
|
||||||
|
|
||||||
|
this.midPointY = midPointY;
|
||||||
|
|
||||||
|
cam = new OrthographicCamera();
|
||||||
|
cam.setToOrtho(true, 136, gameHeight);
|
||||||
|
|
||||||
|
batcher = new SpriteBatch();
|
||||||
|
batcher.setProjectionMatrix(cam.combined);
|
||||||
|
shapeRenderer = new ShapeRenderer();
|
||||||
|
shapeRenderer.setProjectionMatrix(cam.combined);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void render(float delta, float runTime) {
|
||||||
|
|
||||||
|
Gdx.gl.glClearColor(0, 0, 0, 1);
|
||||||
|
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
|
||||||
|
|
||||||
|
shapeRenderer.begin(ShapeType.Filled);
|
||||||
|
|
||||||
|
// Draw Background color
|
||||||
|
shapeRenderer.setColor(55 / 255.0f, 80 / 255.0f, 100 / 255.0f, 1);
|
||||||
|
shapeRenderer.rect(0, 0, 136, midPointY + 66);
|
||||||
|
|
||||||
|
// Draw Grass
|
||||||
|
shapeRenderer.setColor(111 / 255.0f, 186 / 255.0f, 45 / 255.0f, 1);
|
||||||
|
shapeRenderer.rect(0, midPointY + 66, 136, 11);
|
||||||
|
|
||||||
|
// Draw Dirt
|
||||||
|
shapeRenderer.setColor(147 / 255.0f, 80 / 255.0f, 27 / 255.0f, 1);
|
||||||
|
shapeRenderer.rect(0, midPointY + 77, 136, 52);
|
||||||
|
|
||||||
|
shapeRenderer.end();
|
||||||
|
|
||||||
|
batcher.begin();
|
||||||
|
batcher.disableBlending();
|
||||||
|
|
||||||
|
//batcher.draw(bg, 0, midPointY + 23, 136, 43);
|
||||||
|
|
||||||
|
batcher.end();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
package fr.evolving.worlds;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.math.Intersector;
|
||||||
|
import com.badlogic.gdx.math.Rectangle;
|
||||||
|
|
||||||
|
import fr.evolving.assets.SaveObject;
|
||||||
|
import fr.evolving.assets.AssetLoader;
|
||||||
|
import fr.evolving.automata.Grid;
|
||||||
|
|
||||||
|
public class GameWorld {
|
||||||
|
private float runTime = 0;
|
||||||
|
private int midPointY;
|
||||||
|
private GameRenderer renderer;
|
||||||
|
private GameState currentState;
|
||||||
|
private Grid myGrid;
|
||||||
|
private SaveObject MySaveObject;
|
||||||
|
|
||||||
|
public enum GameState {
|
||||||
|
MENU, READY, RUNNING, GAMEOVER, OPTION
|
||||||
|
}
|
||||||
|
|
||||||
|
public GameWorld(int midPointY) {
|
||||||
|
Gdx.app.log("Creation du plateau de jeu","ok");
|
||||||
|
currentState = GameState.MENU;
|
||||||
|
myGrid= new Grid(20,20);
|
||||||
|
//MySaveObject= new SaveObject("com.mysql.jdbc.Driver","jdbc:mysql://dahut.fr:3306/popfr_games","popfr_games","ef^J,khGMIL~");
|
||||||
|
MySaveObject= new SaveObject("com.mysql.jdbc.Driver","jdbc:mysql://192.168.1.252:3306/games","games","WoawGames!!87");
|
||||||
|
try {
|
||||||
|
MySaveObject.saveObject(myGrid);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void update(float delta) {
|
||||||
|
runTime += delta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRenderer(GameRenderer renderer) {
|
||||||
|
this.renderer = renderer;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,104 @@
|
||||||
|
package fr.evolving.worlds;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.graphics.Color;
|
||||||
|
import com.badlogic.gdx.graphics.GL20;
|
||||||
|
import com.badlogic.gdx.graphics.OrthographicCamera;
|
||||||
|
import com.badlogic.gdx.graphics.Texture;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.Animation;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||||
|
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
||||||
|
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
|
||||||
|
|
||||||
|
import fr.evolving.assets.AssetLoader;
|
||||||
|
import fr.evolving.effects.Laser;
|
||||||
|
import fr.evolving.inputs.InputHandler;
|
||||||
|
import fr.evolving.screens.LevelScreen;
|
||||||
|
|
||||||
|
public class LevelRenderer {
|
||||||
|
private ShapeRenderer shapeRenderer;
|
||||||
|
private SpriteBatch batcher;
|
||||||
|
int gameWidth;
|
||||||
|
int gameHeight;
|
||||||
|
int scrollx;
|
||||||
|
int scrolly;
|
||||||
|
int dirx;
|
||||||
|
int diry;
|
||||||
|
LevelScreen LevelScreen;
|
||||||
|
Laser Laser;
|
||||||
|
TextureRegion Texture_logobig;
|
||||||
|
TextureRegion Texture_logosmall;
|
||||||
|
|
||||||
|
public LevelRenderer(int gameWidth, int gameHeight,LevelScreen LevelScreen) {
|
||||||
|
this.LevelScreen=LevelScreen;
|
||||||
|
this.scrollx=0;
|
||||||
|
this.scrolly=0;
|
||||||
|
this.dirx=1;
|
||||||
|
this.diry=1;
|
||||||
|
this.gameHeight=gameHeight;
|
||||||
|
this.gameWidth=gameWidth;
|
||||||
|
batcher = new SpriteBatch();
|
||||||
|
shapeRenderer = new ShapeRenderer();
|
||||||
|
Laser=new Laser();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void evolve() {
|
||||||
|
this.scrollx+=dirx;
|
||||||
|
this.scrolly+=diry;
|
||||||
|
if (this.scrollx>1500)
|
||||||
|
this.scrolly+=diry;
|
||||||
|
if (this.scrollx > 1024)
|
||||||
|
this.dirx = -1;
|
||||||
|
if (this.scrolly > 768)
|
||||||
|
this.diry = -1;
|
||||||
|
if (this.scrollx < 0)
|
||||||
|
this.dirx = 1;
|
||||||
|
if (this.scrolly < 0)
|
||||||
|
this.diry = 1;
|
||||||
|
Laser.i+=1f;
|
||||||
|
if (Laser.i>10.0f) {
|
||||||
|
Laser.i=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void render(float delta, float runTime) {
|
||||||
|
Gdx.gl.glClearColor(0, 0, 0, 1);
|
||||||
|
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
|
||||||
|
batcher.begin();
|
||||||
|
batcher.setColor(0.25f,0.25f,0.25f,1);
|
||||||
|
batcher.draw(AssetLoader.Texture_fond2, 0, 0, this.scrollx/2, this.scrolly/2, this.gameWidth, this.gameHeight);
|
||||||
|
batcher.setColor(0.7f,0.7f,0.7f,1);
|
||||||
|
batcher.draw(AssetLoader.Texture_fond, 0, 0, this.scrollx, this.scrolly, this.gameWidth, this.gameHeight);
|
||||||
|
|
||||||
|
batcher.setColor(1,1,1,1);
|
||||||
|
Texture_logobig=AssetLoader.Skin_level.getRegion("logo3");
|
||||||
|
Texture_logosmall=AssetLoader.Skin_level.getRegion("logo2");
|
||||||
|
batcher.draw(Texture_logosmall,20, this.gameHeight-Texture_logobig.getRegionHeight()+Texture_logosmall.getRegionHeight()/2);
|
||||||
|
batcher.draw(Texture_logobig,120, this.gameHeight-Texture_logobig.getRegionHeight());
|
||||||
|
|
||||||
|
batcher.end();
|
||||||
|
for (int i=0;i<LevelScreen.buttonLevels.length;i++) {
|
||||||
|
if (LevelScreen.buttonLevels[i]!=null) {
|
||||||
|
for (int[] item : LevelScreen.buttonLevels[i].Link)
|
||||||
|
{
|
||||||
|
int found=-1;
|
||||||
|
for (int j=0;j<LevelScreen.buttonLevels.length;j++)
|
||||||
|
{
|
||||||
|
if ((LevelScreen.buttonLevels[j]!=null) && (LevelScreen.buttonLevels[j].world==item[0]) && (LevelScreen.buttonLevels[j].level==item[1])) {
|
||||||
|
found=j;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (found!=-1)
|
||||||
|
{
|
||||||
|
Laser.draw(LevelScreen.buttonLevels[i].xx+20,LevelScreen.buttonLevels[i].yy+20,LevelScreen.buttonLevels[found].xx+20,LevelScreen.buttonLevels[found].yy+20,10,0.5f,LevelScreen.buttonLevels[found].Activated,LevelScreen.buttonLevels[i].getLevelcolor(),LevelScreen.buttonLevels[found].getLevelcolor());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit trunk//EN" "http://google-web-toolkit.googlecode.com/svn/trunk/distro-source/core/src/gwt-module.dtd">
|
||||||
|
<module>
|
||||||
|
<source path="fr/evolving/game" />
|
||||||
|
</module>
|
|
@ -0,0 +1,46 @@
|
||||||
|
apply plugin: "java"
|
||||||
|
|
||||||
|
sourceCompatibility = 1.6
|
||||||
|
sourceSets.main.java.srcDirs = [ "src/" ]
|
||||||
|
|
||||||
|
project.ext.mainClassName = "fr.evolving.game.desktop.DesktopLauncher"
|
||||||
|
project.ext.assetsDir = new File("../android/assets");
|
||||||
|
|
||||||
|
task run(dependsOn: classes, type: JavaExec) {
|
||||||
|
main = project.mainClassName
|
||||||
|
classpath = sourceSets.main.runtimeClasspath
|
||||||
|
standardInput = System.in
|
||||||
|
workingDir = project.assetsDir
|
||||||
|
ignoreExitValue = true
|
||||||
|
}
|
||||||
|
|
||||||
|
task dist(type: Jar) {
|
||||||
|
from files(sourceSets.main.output.classesDir)
|
||||||
|
from files(sourceSets.main.output.resourcesDir)
|
||||||
|
from {configurations.compile.collect {zipTree(it)}}
|
||||||
|
from files(project.assetsDir);
|
||||||
|
|
||||||
|
manifest {
|
||||||
|
attributes 'Main-Class': project.mainClassName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dist.dependsOn classes
|
||||||
|
|
||||||
|
eclipse {
|
||||||
|
project {
|
||||||
|
name = appName + "-desktop"
|
||||||
|
linkedResource name: 'assets', type: '2', location: 'PARENT-1-PROJECT_LOC/android/assets'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
task afterEclipseImport(description: "Post processing after project generation", group: "IDE") {
|
||||||
|
doLast {
|
||||||
|
def classpath = new XmlParser().parse(file(".classpath"))
|
||||||
|
new Node(classpath, "classpathentry", [ kind: 'src', path: 'assets' ]);
|
||||||
|
def writer = new FileWriter(file(".classpath"))
|
||||||
|
def printer = new XmlNodePrinter(new PrintWriter(writer))
|
||||||
|
printer.setPreserveWhitespace(true)
|
||||||
|
printer.print(classpath)
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
package fr.evolving.game.desktop;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
|
||||||
|
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
|
||||||
|
import fr.evolving.game.main;
|
||||||
|
|
||||||
|
public class DesktopLauncher {
|
||||||
|
public static void main (String[] arg) {
|
||||||
|
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
|
||||||
|
//config.fullscreen = true;
|
||||||
|
//config.width = 1920;
|
||||||
|
//config.height = 1080;
|
||||||
|
config.fullscreen = false;
|
||||||
|
config.width = 1280;
|
||||||
|
config.height = 1024;
|
||||||
|
new LwjglApplication(new main(), config);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
org.gradle.daemon=true
|
||||||
|
org.gradle.jvmargs=-Xms128m -Xmx512m
|
||||||
|
org.gradle.configureondemand=true
|
|
@ -0,0 +1,6 @@
|
||||||
|
#Sat Sep 21 13:08:26 CEST 2013
|
||||||
|
distributionBase=GRADLE_USER_HOME
|
||||||
|
distributionPath=wrapper/dists
|
||||||
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
zipStorePath=wrapper/dists
|
||||||
|
distributionUrl=http\://services.gradle.org/distributions/gradle-2.2-all.zip
|
|
@ -0,0 +1,164 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
##
|
||||||
|
## Gradle start up script for UN*X
|
||||||
|
##
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
|
DEFAULT_JVM_OPTS=""
|
||||||
|
|
||||||
|
APP_NAME="Gradle"
|
||||||
|
APP_BASE_NAME=`basename "$0"`
|
||||||
|
|
||||||
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
|
MAX_FD="maximum"
|
||||||
|
|
||||||
|
warn ( ) {
|
||||||
|
echo "$*"
|
||||||
|
}
|
||||||
|
|
||||||
|
die ( ) {
|
||||||
|
echo
|
||||||
|
echo "$*"
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# OS specific support (must be 'true' or 'false').
|
||||||
|
cygwin=false
|
||||||
|
msys=false
|
||||||
|
darwin=false
|
||||||
|
case "`uname`" in
|
||||||
|
CYGWIN* )
|
||||||
|
cygwin=true
|
||||||
|
;;
|
||||||
|
Darwin* )
|
||||||
|
darwin=true
|
||||||
|
;;
|
||||||
|
MINGW* )
|
||||||
|
msys=true
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# For Cygwin, ensure paths are in UNIX format before anything is touched.
|
||||||
|
if $cygwin ; then
|
||||||
|
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Attempt to set APP_HOME
|
||||||
|
# Resolve links: $0 may be a link
|
||||||
|
PRG="$0"
|
||||||
|
# Need this for relative symlinks.
|
||||||
|
while [ -h "$PRG" ] ; do
|
||||||
|
ls=`ls -ld "$PRG"`
|
||||||
|
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||||
|
if expr "$link" : '/.*' > /dev/null; then
|
||||||
|
PRG="$link"
|
||||||
|
else
|
||||||
|
PRG=`dirname "$PRG"`"/$link"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
SAVED="`pwd`"
|
||||||
|
cd "`dirname \"$PRG\"`/" >&-
|
||||||
|
APP_HOME="`pwd -P`"
|
||||||
|
cd "$SAVED" >&-
|
||||||
|
|
||||||
|
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||||
|
|
||||||
|
# Determine the Java command to use to start the JVM.
|
||||||
|
if [ -n "$JAVA_HOME" ] ; then
|
||||||
|
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||||
|
# IBM's JDK on AIX uses strange locations for the executables
|
||||||
|
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||||
|
else
|
||||||
|
JAVACMD="$JAVA_HOME/bin/java"
|
||||||
|
fi
|
||||||
|
if [ ! -x "$JAVACMD" ] ; then
|
||||||
|
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||||
|
|
||||||
|
Please set the JAVA_HOME variable in your environment to match the
|
||||||
|
location of your Java installation."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
JAVACMD="java"
|
||||||
|
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
|
|
||||||
|
Please set the JAVA_HOME variable in your environment to match the
|
||||||
|
location of your Java installation."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Increase the maximum file descriptors if we can.
|
||||||
|
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
|
||||||
|
MAX_FD_LIMIT=`ulimit -H -n`
|
||||||
|
if [ $? -eq 0 ] ; then
|
||||||
|
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||||
|
MAX_FD="$MAX_FD_LIMIT"
|
||||||
|
fi
|
||||||
|
ulimit -n $MAX_FD
|
||||||
|
if [ $? -ne 0 ] ; then
|
||||||
|
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# For Darwin, add options to specify how the application appears in the dock
|
||||||
|
if $darwin; then
|
||||||
|
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# For Cygwin, switch paths to Windows format before running java
|
||||||
|
if $cygwin ; then
|
||||||
|
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||||
|
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||||
|
|
||||||
|
# We build the pattern for arguments to be converted via cygpath
|
||||||
|
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||||
|
SEP=""
|
||||||
|
for dir in $ROOTDIRSRAW ; do
|
||||||
|
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||||
|
SEP="|"
|
||||||
|
done
|
||||||
|
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||||
|
# Add a user-defined pattern to the cygpath arguments
|
||||||
|
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
||||||
|
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
||||||
|
fi
|
||||||
|
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||||
|
i=0
|
||||||
|
for arg in "$@" ; do
|
||||||
|
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||||
|
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||||
|
|
||||||
|
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||||
|
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||||
|
else
|
||||||
|
eval `echo args$i`="\"$arg\""
|
||||||
|
fi
|
||||||
|
i=$((i+1))
|
||||||
|
done
|
||||||
|
case $i in
|
||||||
|
(0) set -- ;;
|
||||||
|
(1) set -- "$args0" ;;
|
||||||
|
(2) set -- "$args0" "$args1" ;;
|
||||||
|
(3) set -- "$args0" "$args1" "$args2" ;;
|
||||||
|
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||||
|
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||||
|
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||||
|
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||||
|
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||||
|
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
|
||||||
|
function splitJvmOpts() {
|
||||||
|
JVM_OPTS=("$@")
|
||||||
|
}
|
||||||
|
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
|
||||||
|
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
|
||||||
|
|
||||||
|
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
|
|
@ -0,0 +1,90 @@
|
||||||
|
@if "%DEBUG%" == "" @echo off
|
||||||
|
@rem ##########################################################################
|
||||||
|
@rem
|
||||||
|
@rem Gradle startup script for Windows
|
||||||
|
@rem
|
||||||
|
@rem ##########################################################################
|
||||||
|
|
||||||
|
@rem Set local scope for the variables with windows NT shell
|
||||||
|
if "%OS%"=="Windows_NT" setlocal
|
||||||
|
|
||||||
|
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
|
set DEFAULT_JVM_OPTS=
|
||||||
|
|
||||||
|
set DIRNAME=%~dp0
|
||||||
|
if "%DIRNAME%" == "" set DIRNAME=.
|
||||||
|
set APP_BASE_NAME=%~n0
|
||||||
|
set APP_HOME=%DIRNAME%
|
||||||
|
|
||||||
|
@rem Find java.exe
|
||||||
|
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||||
|
|
||||||
|
set JAVA_EXE=java.exe
|
||||||
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
|
if "%ERRORLEVEL%" == "0" goto init
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
|
echo.
|
||||||
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
|
echo location of your Java installation.
|
||||||
|
|
||||||
|
goto fail
|
||||||
|
|
||||||
|
:findJavaFromJavaHome
|
||||||
|
set JAVA_HOME=%JAVA_HOME:"=%
|
||||||
|
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||||
|
|
||||||
|
if exist "%JAVA_EXE%" goto init
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||||
|
echo.
|
||||||
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
|
echo location of your Java installation.
|
||||||
|
|
||||||
|
goto fail
|
||||||
|
|
||||||
|
:init
|
||||||
|
@rem Get command-line arguments, handling Windowz variants
|
||||||
|
|
||||||
|
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||||
|
if "%@eval[2+2]" == "4" goto 4NT_args
|
||||||
|
|
||||||
|
:win9xME_args
|
||||||
|
@rem Slurp the command line arguments.
|
||||||
|
set CMD_LINE_ARGS=
|
||||||
|
set _SKIP=2
|
||||||
|
|
||||||
|
:win9xME_args_slurp
|
||||||
|
if "x%~1" == "x" goto execute
|
||||||
|
|
||||||
|
set CMD_LINE_ARGS=%*
|
||||||
|
goto execute
|
||||||
|
|
||||||
|
:4NT_args
|
||||||
|
@rem Get arguments from the 4NT Shell from JP Software
|
||||||
|
set CMD_LINE_ARGS=%$
|
||||||
|
|
||||||
|
:execute
|
||||||
|
@rem Setup the command line
|
||||||
|
|
||||||
|
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||||
|
|
||||||
|
@rem Execute Gradle
|
||||||
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||||
|
|
||||||
|
:end
|
||||||
|
@rem End local scope for the variables with windows NT shell
|
||||||
|
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||||
|
|
||||||
|
:fail
|
||||||
|
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||||
|
rem the _cmd.exe /c_ return code!
|
||||||
|
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||||
|
exit /b 1
|
||||||
|
|
||||||
|
:mainEnd
|
||||||
|
if "%OS%"=="Windows_NT" endlocal
|
||||||
|
|
||||||
|
:omega
|
|
@ -0,0 +1,59 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleDisplayName</key>
|
||||||
|
<string>${app.name}</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${app.executable}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>${app.id}</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${app.name}</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>APPL</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>${app.version}</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>${app.build}</string>
|
||||||
|
<key>LSRequiresIPhoneOS</key>
|
||||||
|
<true/>
|
||||||
|
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||||
|
<false/>
|
||||||
|
<key>UIStatusBarHidden</key>
|
||||||
|
<true/>
|
||||||
|
<key>UIDeviceFamily</key>
|
||||||
|
<array>
|
||||||
|
<integer>1</integer>
|
||||||
|
<integer>2</integer>
|
||||||
|
</array>
|
||||||
|
<key>UIRequiredDeviceCapabilities</key>
|
||||||
|
<array>
|
||||||
|
<string>armv7</string>
|
||||||
|
<string>opengles-2</string>
|
||||||
|
</array>
|
||||||
|
<key>UISupportedInterfaceOrientations</key>
|
||||||
|
<array>
|
||||||
|
<string>UIInterfaceOrientationPortrait</string>
|
||||||
|
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||||
|
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||||
|
</array>
|
||||||
|
<key>CFBundleIcons</key>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundlePrimaryIcon</key>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleIconFiles</key>
|
||||||
|
<array>
|
||||||
|
<string>Icon</string>
|
||||||
|
<string>Icon-72</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1,7 @@
|
||||||
|
apply plugin: 'java'
|
||||||
|
sourceSets {
|
||||||
|
main.java.srcDirs = ['src']
|
||||||
|
main.resources.srcDirs = ['src']
|
||||||
|
test.java.srcDirs = ['tests/java']
|
||||||
|
test.resources.srcDirs = ['tests/resources']
|
||||||
|
}
|
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 108 KiB |
After Width: | Height: | Size: 82 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 95 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 5.5 KiB |
|
@ -0,0 +1,6 @@
|
||||||
|
app.version=1.0
|
||||||
|
app.id=fr.evolving.game.IOSLauncher
|
||||||
|
app.mainclass=fr.evolving.game.IOSLauncher
|
||||||
|
app.executable=IOSLauncher
|
||||||
|
app.build=1
|
||||||
|
app.name=Wireworld
|
|
@ -0,0 +1,50 @@
|
||||||
|
<config>
|
||||||
|
<executableName>${app.executable}</executableName>
|
||||||
|
<mainClass>${app.mainclass}</mainClass>
|
||||||
|
<os>ios</os>
|
||||||
|
<arch>thumbv7</arch>
|
||||||
|
<target>ios</target>
|
||||||
|
<iosInfoPList>Info.plist.xml</iosInfoPList>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>../android/assets</directory>
|
||||||
|
<includes>
|
||||||
|
<include>**</include>
|
||||||
|
</includes>
|
||||||
|
<skipPngCrush>true</skipPngCrush>
|
||||||
|
</resource>
|
||||||
|
<resource>
|
||||||
|
<directory>data</directory>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
<forceLinkClasses>
|
||||||
|
<pattern>com.badlogic.gdx.scenes.scene2d.ui.*</pattern>
|
||||||
|
<pattern>com.badlogic.gdx.physics.bullet.**</pattern>
|
||||||
|
<pattern>com.badlogic.gdx.graphics.g3d.particles.**</pattern>
|
||||||
|
<pattern>com.android.okhttp.HttpHandler</pattern>
|
||||||
|
<pattern>com.android.okhttp.HttpsHandler</pattern>
|
||||||
|
<pattern>com.android.org.conscrypt.**</pattern>
|
||||||
|
<pattern>com.android.org.bouncycastle.jce.provider.BouncyCastleProvider</pattern>
|
||||||
|
<pattern>com.android.org.bouncycastle.jcajce.provider.keystore.BC$Mappings</pattern>
|
||||||
|
<pattern>com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi</pattern>
|
||||||
|
<pattern>com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Std</pattern>
|
||||||
|
<pattern>com.android.org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi</pattern>
|
||||||
|
<pattern>com.android.org.bouncycastle.crypto.digests.AndroidDigestFactoryOpenSSL</pattern>
|
||||||
|
<pattern>org.apache.harmony.security.provider.cert.DRLCertFactory</pattern>
|
||||||
|
<pattern>org.apache.harmony.security.provider.crypto.CryptoProvider</pattern>
|
||||||
|
</forceLinkClasses>
|
||||||
|
<libs>
|
||||||
|
<lib>build/libs/ios/libObjectAL.a</lib>
|
||||||
|
<lib>build/libs/ios/libgdx.a</lib>
|
||||||
|
<lib>build/libs/ios/libgdx-box2d.a</lib>
|
||||||
|
</libs>
|
||||||
|
<frameworks>
|
||||||
|
<framework>UIKit</framework>
|
||||||
|
<framework>OpenGLES</framework>
|
||||||
|
<framework>QuartzCore</framework>
|
||||||
|
<framework>CoreGraphics</framework>
|
||||||
|
<framework>OpenAL</framework>
|
||||||
|
<framework>AudioToolbox</framework>
|
||||||
|
<framework>AVFoundation</framework>
|
||||||
|
</frameworks>
|
||||||
|
</config>
|
|
@ -0,0 +1,22 @@
|
||||||
|
package fr.evolving.game;
|
||||||
|
|
||||||
|
import org.robovm.apple.foundation.NSAutoreleasePool;
|
||||||
|
import org.robovm.apple.uikit.UIApplication;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.backends.iosrobovm.IOSApplication;
|
||||||
|
import com.badlogic.gdx.backends.iosrobovm.IOSApplicationConfiguration;
|
||||||
|
import fr.evolving.game.main;
|
||||||
|
|
||||||
|
public class IOSLauncher extends IOSApplication.Delegate {
|
||||||
|
@Override
|
||||||
|
protected IOSApplication createApplication() {
|
||||||
|
IOSApplicationConfiguration config = new IOSApplicationConfiguration();
|
||||||
|
return new IOSApplication(new main(), config);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] argv) {
|
||||||
|
NSAutoreleasePool pool = new NSAutoreleasePool();
|
||||||
|
UIApplication.main(argv, null, IOSLauncher.class);
|
||||||
|
pool.close();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
include 'desktop', 'android', 'ios', 'core'
|