Dear visitor, welcome to RPG Studio - Make your World real. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Bananni

Gesperrter Nutzer

  • "Bananni" has been banned
  • "Bananni" started this thread

Motto: Belive the hype!

  • Send private message

1

Sunday, June 13th 2010, 4:51pm

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:

Source code

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

Source code

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

highlight to read

2

Sunday, June 13th 2010, 5:16pm

Du hast da was falsch verstanden.

Du kannst normales Java unter JavaFX nutzen aber nicht umgekehrt.

MfG Lone

Bananni

Gesperrter Nutzer

  • "Bananni" has been banned
  • "Bananni" started this thread

Motto: Belive the hype!

  • Send private message

3

Sunday, June 13th 2010, 5:44pm

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:

Source code

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

Source code

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

highlight to read

4

Sunday, June 13th 2010, 5:51pm

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

Quoted

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" has been banned
  • "Bananni" started this thread

Motto: Belive the hype!

  • Send private message

5

Monday, June 14th 2010, 2:33pm

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

Source code

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

Source code

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:

Source code

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

Source code

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

highlight to read

This post has been edited 2 times, last edit by "Bananni" (Jun 14th 2010, 2:33pm)


6

Monday, June 14th 2010, 3:05pm

Quoted

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" has been banned
  • "Bananni" started this thread

Motto: Belive the hype!

  • Send private message

7

Monday, June 14th 2010, 3:17pm

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

StepSound Script:

Source code

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

Source code

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

highlight to read

8

Monday, June 14th 2010, 3:23pm

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.

Similar threads

Social bookmarks