Lieber Besucher, herzlich willkommen bei: RPG Studio - Make your World real. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Bananni

Gesperrter Nutzer

  • »Bananni« wurde gesperrt
  • »Bananni« ist der Autor dieses Themas

Motto: Belive the hype!

  • Nachricht senden

1

Sonntag, 13. Juni 2010, 16:51

JavaFX und Java

Hi : )
Also ich hab glaub ich mal wieder probleme mit meinen IDE XD
Ich würde gerne JavaFX in Puren Java benutzten, das sollte funktionieren, da JavaFX ja aus java enstanden ist und es halt nur erweitert.
Nun möchte ich über import ein paar dinge beschaffen.
Leider bekomme ich es nicht hin JavaFX zu finden.
Ich habe mich schon was umgesehen: Link
Dort benutzt er:
import javafx.
was bei mir leider nicht klappt x_x
ich hab schon versucht über plugins in meinen Netbeans javafx zu installieren -> Fail
dann habe ich es versucht das komplette packet zu downloaden was fx und se drinne hat -> Fail
mein freund hat es auch schon bei sich versucht, auch er kann javafx nicht importieren.
Nun frage ich mich wie der aus den Tutorial das bewerkstelligt hat =/

Oder wenn ihr wisst welche jars diese klassen beinhalten:
javafx.scene.*;
javafx.scene.shape.*;
javafx.scene.effect.*;
javafx.scene.paint.*;
javafx.reflect.FXClassType;
javafx.reflect.FXLocal;
javafx.reflect.FXLocal.Context;
javafx.reflect.FXLocal.ObjectValue;
Dann könnte ich sie ja einbinden, oder nicht?

Hmm also die klassen:
javafx.reflect.FXClassType;
javafx.reflect.FXLocal;
javafx.reflect.FXLocal.Context;
javafx.reflect.FXLocal.ObjectValue;
hab ich als .java nun im src.zip gefunden.
Aber scene kann ich nirgendswo finden, dabei is das die funktion die ich in fx doch nutzten will x_x
Bild
My Deviantart : )
Spoiler

StepSound Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#==================================
# Step Sound Script
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#==================================
class Game_Player
  # CONFIGS
  STEP_SOUND_VOLUME = 100
  STEP_SOUND_PITCH = 100
  STEP_SOUND_ARRAY=[
                    ["",0], # TERRAIN ID = 0
                    ["test.wav",10], # TERRAIN ID = 1
                    ["",0], # TERRAIN ID = 2
                    ["",0], # TERRAIN ID = 3
                    ["",0], # TERRAIN ID = 4
                    ["",0], # TERRAIN ID = 5
                    ["",0], # TERRAIN ID = 6
                    ["",0], # TERRAIN ID = 7
                    ["",0], # TERRAIN ID = 8
                    ["",0]  # TERRAIN ID = 9
                   ]
  # ENDE CONFIGS
  alias :increase_steps_banannis_shit :increase_steps
  alias :update_banannis_shit :update
  def increase_steps
    increase_steps_banannis_shit
    if @step_countdown == 0
      id = $game_map.terrain_tag(x, y)
      if STEP_SOUND_ARRAY[id][0] != ""
        Audio.se_play("Audio/SE/" + STEP_SOUND_ARRAY[id][0], STEP_SOUND_VOLUME, STEP_SOUND_PITCH)
        @step_countdown=STEP_SOUND_ARRAY[id][1]
      end
    end
  end
  def update
    update_banannis_shit
    if @step_countdown == nil
      @step_countdown=0
    end
    if @step_countdown != 0
      @step_countdown-=1
    end
  end
end


Map Roots

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#==================================
# Map Names & Map Root
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#---------------------------------------------------
# Get Map Name:
#   $game_system.map_names[any_map_id]
# Get Map Root ID:
#   $game_system.parent_map(any_map_id)
#==================================
class Game_System
  attr_reader :map_names
  alias :wtf_bananni_alias_this_game_system_init :initialize
  def initialize
    wtf_bananni_alias_this_game_system_init
    read_map_names
  end
  def parent_map id=$game_map.map_id
    while true
      par=@map_parent[id]
      break if par == 0
      id=par
    end
    return @map_names[id]
  end
  def read_map_names
    map_infos = load_data("Data/MapInfos.rxdata")
    @map_names = Array.new
    @map_parent = Array.new
    for key in map_infos.keys
      @map_names[key] = map_infos[key].name
      @map_parent[key] = map_infos[key].parent_id
    end
  end
end

zum Lesen den Text mit der Maus markieren

2

Sonntag, 13. Juni 2010, 17:16

Du hast da was falsch verstanden.

Du kannst normales Java unter JavaFX nutzen aber nicht umgekehrt.

MfG Lone

Bananni

Gesperrter Nutzer

  • »Bananni« wurde gesperrt
  • »Bananni« ist der Autor dieses Themas

Motto: Belive the hype!

  • Nachricht senden

3

Sonntag, 13. Juni 2010, 17:44

verdammt x_x gibt es denn da keinen weg kleine teile in java zu verwenden?
im tutoral zumindest sieht es sehr dannach aus das er pures java verwendet um seine in javaFX .fx klasse abspielen zu lassen.
Bild
My Deviantart : )
Spoiler

StepSound Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#==================================
# Step Sound Script
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#==================================
class Game_Player
  # CONFIGS
  STEP_SOUND_VOLUME = 100
  STEP_SOUND_PITCH = 100
  STEP_SOUND_ARRAY=[
                    ["",0], # TERRAIN ID = 0
                    ["test.wav",10], # TERRAIN ID = 1
                    ["",0], # TERRAIN ID = 2
                    ["",0], # TERRAIN ID = 3
                    ["",0], # TERRAIN ID = 4
                    ["",0], # TERRAIN ID = 5
                    ["",0], # TERRAIN ID = 6
                    ["",0], # TERRAIN ID = 7
                    ["",0], # TERRAIN ID = 8
                    ["",0]  # TERRAIN ID = 9
                   ]
  # ENDE CONFIGS
  alias :increase_steps_banannis_shit :increase_steps
  alias :update_banannis_shit :update
  def increase_steps
    increase_steps_banannis_shit
    if @step_countdown == 0
      id = $game_map.terrain_tag(x, y)
      if STEP_SOUND_ARRAY[id][0] != ""
        Audio.se_play("Audio/SE/" + STEP_SOUND_ARRAY[id][0], STEP_SOUND_VOLUME, STEP_SOUND_PITCH)
        @step_countdown=STEP_SOUND_ARRAY[id][1]
      end
    end
  end
  def update
    update_banannis_shit
    if @step_countdown == nil
      @step_countdown=0
    end
    if @step_countdown != 0
      @step_countdown-=1
    end
  end
end


Map Roots

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#==================================
# Map Names & Map Root
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#---------------------------------------------------
# Get Map Name:
#   $game_system.map_names[any_map_id]
# Get Map Root ID:
#   $game_system.parent_map(any_map_id)
#==================================
class Game_System
  attr_reader :map_names
  alias :wtf_bananni_alias_this_game_system_init :initialize
  def initialize
    wtf_bananni_alias_this_game_system_init
    read_map_names
  end
  def parent_map id=$game_map.map_id
    while true
      par=@map_parent[id]
      break if par == 0
      id=par
    end
    return @map_names[id]
  end
  def read_map_names
    map_infos = load_data("Data/MapInfos.rxdata")
    @map_names = Array.new
    @map_parent = Array.new
    for key in map_infos.keys
      @map_names[key] = map_infos[key].name
      @map_parent[key] = map_infos[key].parent_id
    end
  end
end

zum Lesen den Text mit der Maus markieren

4

Sonntag, 13. Juni 2010, 17:51

Laut dem Link den du gepostet hast ging es ja. Etwas offizieller hingegen dieser Link: http://blogs.sun.com/javafx/entry/how_to_use_javafx_in

Zitat

It is completely unsupported, uses private APIs, and almost certainly will break in the next version.

Und da er sich indirekt auf diesen Blog bezieht. evtl. geht das also schon nicht mehr.
Aber vl doch, wenn der Code bei dir das package nicht findet hast du evtl. was bei den Classpaths falsch gemacht?

Bananni

Gesperrter Nutzer

  • »Bananni« wurde gesperrt
  • »Bananni« ist der Autor dieses Themas

Motto: Belive the hype!

  • Nachricht senden

5

Montag, 14. Juni 2010, 14:33

Die Lib hab ich jz erfolgreich eingebunden.
Jz möchte ich das er meine FX klasse findet
FXClassType instance = context.findClass("Atramentum.LightFX");

er sagt mir jedoch das er diese klasse nicht findet.
Dabei is sie im richtigen package und ist auch richtig bennant.
Das einzigste woran ich das fest machen könnte wäre diese zeile in meinen fx script:
package Atramentum;

er sagt: seems to be in non-fx project. ( aber ist das ned egal?)
So sehen meine klassen aus:
CallFX.java

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package Atramentum;
import javafx.reflect.FXClassType;
import javafx.reflect.FXLocal;
import javafx.reflect.FXLocal.Context;
import javafx.reflect.FXLocal.ObjectValue;
 
public class CallFX {
  public static JavaInterface getLightObject(String filename, float type, float x, float y) {
    Context context = FXLocal.getContext();
    FXClassType instance = context.findClass("Atramentum.LightFX");
    ObjectValue obj = (ObjectValue)instance.newInstance();
    JavaInterface ji = (JavaInterface)obj.asObject();
    ji.make(filename, type, x, y);
    return ji;
  }
}


LightFX.fx

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*
 * LightFX.fx
 *
 * Created on 13.06.2010, 18:48:33
 */
package Atramentum;
/**
 * @author Blair
 */
import javafx.scene.*;
import javafx.scene.effect.*;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
 
public class LightFX extends JavaInterface {
  var img;
  var type;
  var displayX;
  var displayY;
  public override function make( filename:String, t:Number, x:Number, y:Number):Void {
    img = Image { url : filename};
    if(t==0){
      type = BlendMode.ADD;
    }
    else{
      type = BlendMode.COLOR_BURN;
    }
    displayX = x;
    displayY = y;
  }
  public override function render( shiftX:Number, shiftY:Number) : Void {
    Group {
      blendMode: type
      content : [
        ImageView {
          x: (displayX+shiftX) y: (displayY+shiftY)
          image : img
        },
      ]
    }
  }
}


Muss ich die javaFX lib eigendlich in meinen project extra mit zum download legen?
weil java is ja auch ned immer dabei, es is ja auf den pc installiert.
Könnte man also vorausetzten das man JavaFX auf den pc installiert hat und dann nur noch sagen:
import javafx.
damit ich ned die satten 50mb noch mal extra mit einbauen muss.
Bild
My Deviantart : )
Spoiler

StepSound Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#==================================
# Step Sound Script
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#==================================
class Game_Player
  # CONFIGS
  STEP_SOUND_VOLUME = 100
  STEP_SOUND_PITCH = 100
  STEP_SOUND_ARRAY=[
                    ["",0], # TERRAIN ID = 0
                    ["test.wav",10], # TERRAIN ID = 1
                    ["",0], # TERRAIN ID = 2
                    ["",0], # TERRAIN ID = 3
                    ["",0], # TERRAIN ID = 4
                    ["",0], # TERRAIN ID = 5
                    ["",0], # TERRAIN ID = 6
                    ["",0], # TERRAIN ID = 7
                    ["",0], # TERRAIN ID = 8
                    ["",0]  # TERRAIN ID = 9
                   ]
  # ENDE CONFIGS
  alias :increase_steps_banannis_shit :increase_steps
  alias :update_banannis_shit :update
  def increase_steps
    increase_steps_banannis_shit
    if @step_countdown == 0
      id = $game_map.terrain_tag(x, y)
      if STEP_SOUND_ARRAY[id][0] != ""
        Audio.se_play("Audio/SE/" + STEP_SOUND_ARRAY[id][0], STEP_SOUND_VOLUME, STEP_SOUND_PITCH)
        @step_countdown=STEP_SOUND_ARRAY[id][1]
      end
    end
  end
  def update
    update_banannis_shit
    if @step_countdown == nil
      @step_countdown=0
    end
    if @step_countdown != 0
      @step_countdown-=1
    end
  end
end


Map Roots

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#==================================
# Map Names & Map Root
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#---------------------------------------------------
# Get Map Name:
#   $game_system.map_names[any_map_id]
# Get Map Root ID:
#   $game_system.parent_map(any_map_id)
#==================================
class Game_System
  attr_reader :map_names
  alias :wtf_bananni_alias_this_game_system_init :initialize
  def initialize
    wtf_bananni_alias_this_game_system_init
    read_map_names
  end
  def parent_map id=$game_map.map_id
    while true
      par=@map_parent[id]
      break if par == 0
      id=par
    end
    return @map_names[id]
  end
  def read_map_names
    map_infos = load_data("Data/MapInfos.rxdata")
    @map_names = Array.new
    @map_parent = Array.new
    for key in map_infos.keys
      @map_names[key] = map_infos[key].name
      @map_parent[key] = map_infos[key].parent_id
    end
  end
end

zum Lesen den Text mit der Maus markieren

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Bananni« (14. Juni 2010, 14:33)


6

Montag, 14. Juni 2010, 15:05

Zitat

Könnte man also vorausetzten das man JavaFX auf den pc installiert hat und dann nur noch sagen:

voraussetzen würd ich nichtmal java. Du solltest eh auf ein korrektes Deployment achten. Unter Windows kannst du den Installer prüfen lassen obs vorhanden ist und wenn nicht installieren lassen, evtl. kannst dus ihn auch aus dem Internet laden lassen. Für Linux hast du dependencymanagement der Packagemanager und das .configure Script. Kein Plan was Mac OS angeht.
Mit ner .jar Datei können wohl nur manche was anfangen, für End User Programme nicht empfohlen ;)

Bananni

Gesperrter Nutzer

  • »Bananni« wurde gesperrt
  • »Bananni« ist der Autor dieses Themas

Motto: Belive the hype!

  • Nachricht senden

7

Montag, 14. Juni 2010, 15:17

also sollte ich es lieber als exe verpacken, aber da wird java logischweiße auch vorausgesetzt, oder?
Bild
My Deviantart : )
Spoiler

StepSound Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#==================================
# Step Sound Script
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#==================================
class Game_Player
  # CONFIGS
  STEP_SOUND_VOLUME = 100
  STEP_SOUND_PITCH = 100
  STEP_SOUND_ARRAY=[
                    ["",0], # TERRAIN ID = 0
                    ["test.wav",10], # TERRAIN ID = 1
                    ["",0], # TERRAIN ID = 2
                    ["",0], # TERRAIN ID = 3
                    ["",0], # TERRAIN ID = 4
                    ["",0], # TERRAIN ID = 5
                    ["",0], # TERRAIN ID = 6
                    ["",0], # TERRAIN ID = 7
                    ["",0], # TERRAIN ID = 8
                    ["",0]  # TERRAIN ID = 9
                   ]
  # ENDE CONFIGS
  alias :increase_steps_banannis_shit :increase_steps
  alias :update_banannis_shit :update
  def increase_steps
    increase_steps_banannis_shit
    if @step_countdown == 0
      id = $game_map.terrain_tag(x, y)
      if STEP_SOUND_ARRAY[id][0] != ""
        Audio.se_play("Audio/SE/" + STEP_SOUND_ARRAY[id][0], STEP_SOUND_VOLUME, STEP_SOUND_PITCH)
        @step_countdown=STEP_SOUND_ARRAY[id][1]
      end
    end
  end
  def update
    update_banannis_shit
    if @step_countdown == nil
      @step_countdown=0
    end
    if @step_countdown != 0
      @step_countdown-=1
    end
  end
end


Map Roots

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#==================================
# Map Names & Map Root
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#---------------------------------------------------
# Get Map Name:
#   $game_system.map_names[any_map_id]
# Get Map Root ID:
#   $game_system.parent_map(any_map_id)
#==================================
class Game_System
  attr_reader :map_names
  alias :wtf_bananni_alias_this_game_system_init :initialize
  def initialize
    wtf_bananni_alias_this_game_system_init
    read_map_names
  end
  def parent_map id=$game_map.map_id
    while true
      par=@map_parent[id]
      break if par == 0
      id=par
    end
    return @map_names[id]
  end
  def read_map_names
    map_infos = load_data("Data/MapInfos.rxdata")
    @map_names = Array.new
    @map_parent = Array.new
    for key in map_infos.keys
      @map_names[key] = map_infos[key].name
      @map_parent[key] = map_infos[key].parent_id
    end
  end
end

zum Lesen den Text mit der Maus markieren

8

Montag, 14. Juni 2010, 15:23

vorausgesetzt es handelt sich um ein halbwegs umfangreiches Projekt und nicht nur um ein kleines Tool das nur für ein paar Leute nützlich ist solltest du für Windows einen Installer schreiben, der überprüft ob Java und JavaFX vorhanden sind, diese (downloaded und) installiert, wenn nicht und außerdem eine .exe installiert, die als Starter für die .jar Datei dient oder diese sogar enthält und etwas ähnliches für andere Plattformen tun, wie z.B. .deb und .rpm Pakete für Linux schreiben, wenn es open source ist am besten ein automake script oder etwas ähnliches(cmake, scons etc.).
Zusätzlich solltest du natürlich auch die .jar Datei alleine vertreiben, damit andere Leute für Plattformen mit denen du nichts zu tun hast ähnliche Dinge schreiben können.

Ähnliche Themen

Social Bookmarks