collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: (Tech) Springen  (Gelesen 877 mal)

Offline KaN43

  • RTP-Mapper
  • *
  • Beiträge: 29
  • Kira sieht dich !
(Tech) Springen
« am: September 26, 2009, 21:46:27 »
Hi,
ich habe ein Common Event erstellt, damit mein Charakter in die jeweilige Richtung springt in die er schaut.
Das funktioniert auch.
Nur springt er über alles drüber oder auch drauf, auch wenn man darauf normalerweise nicht Laufen kann, wie z.B. Wasser, Gebäude
Der Trigger ist auf Parallelen Prozess eingestellt und das Event sieht ungefähr so aus:
Bedingung: Taste Z wurde gedrückt
    ->Bedingung:Spieler schaut in Richtung Runter
           -> Bewegungsroute setzen: Spieler (Warten bis fertig)
                                               : ->Springen (0/+2)
       Ansonsten
       -> Bedingung:Spieler schaut in Richtung hoch
               -> Bewegungsroute setzen:Spieler (Warten bis fertig)
                                                   : ->Springen (0/-2)
            Ansonsten
            ->Bedingung: Spieler schaut in Richtung Rechts
                   -> bewegungsroute setzen . . .

  usw

Wo liegt der Fehler ?


MfG

Re: Springen funktioniert . . . aber nicht richtig

Offline PatrickStar

  • SH1>RE, aber RE>SH5
  • Database-Verunstalter
  • **
  • Beiträge: 152
Re: Springen funktioniert . . . aber nicht richtig
« Antwort #1 am: September 26, 2009, 21:54:27 »
BOAH :D
das gleiche hatte ich vor einer woche auch probiert und da kam der gleiche fehler^^
du musst eine bedingung machen das der spieler auf einem event steht.
und das kopierst du überall dahin wo man springen soll/kann/darf^^
habs noch nich ausprobiert aber das wäre der erste einfall als lösung^^
hoffe das ich helfen konnte

MFG


Treffen sich 2 stumme sagt der eine: " ".
Darauf der andere: " ".

Re: Springen funktioniert . . . aber nicht richtig

Offline KaN43

  • RTP-Mapper
  • *
  • Beiträge: 29
  • Kira sieht dich !
Re: Springen funktioniert . . . aber nicht richtig
« Antwort #2 am: September 26, 2009, 22:04:37 »
Danke für deine Antwort PatrickStar, aber ich möchte, dass man überall springen kann.
Ich glaube in dem Spiel "Uebermensch" geht das nämlich auch, dass man überall springen kann.

Naja mal schauen ob noch jemand eine Lösung weis, sonst wird man in meinem Spiel halt nur an
bestimmten Orten springen können.

MfG

Re: Springen funktioniert . . . aber nicht richtig

Offline PatrickStar

  • SH1>RE, aber RE>SH5
  • Database-Verunstalter
  • **
  • Beiträge: 152
Re: Springen funktioniert . . . aber nicht richtig
« Antwort #3 am: September 26, 2009, 22:07:00 »
damit meinte ich das du das springen einschränken kannst^^
du kannst auch anstatt nicht springen Sprung ohne achse machen wenn da was im weg is

MFG


Treffen sich 2 stumme sagt der eine: " ".
Darauf der andere: " ".

Re: Springen funktioniert . . . aber nicht richtig

Offline KaN43

  • RTP-Mapper
  • *
  • Beiträge: 29
  • Kira sieht dich !
Re: Springen funktioniert . . . aber nicht richtig
« Antwort #4 am: September 26, 2009, 22:12:29 »
gute Idee, nur wie überprüfe ich ob etwas im weg ist, damit dann ohne Achse gesprungen wird.

Re: Springen funktioniert . . . aber nicht richtig

Offline PatrickStar

  • SH1>RE, aber RE>SH5
  • Database-Verunstalter
  • **
  • Beiträge: 152
Re: Springen funktioniert . . . aber nicht richtig
« Antwort #5 am: September 26, 2009, 22:16:03 »
wenn ich du wäre würde ich einfach die ganze karte mit events versehen
und dann die bestimmten raussuchen wo ohne achse gesprungen werden soll
und die jeweiligen ändern

MFG


Treffen sich 2 stumme sagt der eine: " ".
Darauf der andere: " ".

Re: Springen funktioniert . . . aber nicht richtig

Offline KaN43

  • RTP-Mapper
  • *
  • Beiträge: 29
  • Kira sieht dich !
Re: Springen funktioniert . . . aber nicht richtig
« Antwort #6 am: September 26, 2009, 22:33:57 »
ok naja mal schauen ob es nicht doch eine bessere Lösung für mein Problem gibt.
Aber trotzdem dankeschön.

MfG

Re: Springen funktioniert . . . aber nicht richtig

Offline Ðeity

  • No Pain, no gain!
  • Administrator
  • Eventmeister
  • ****
  • Beiträge: 427
  • No Pain, no Gain!
    • Deity-VX
Re: Springen funktioniert . . . aber nicht richtig
« Antwort #7 am: September 26, 2009, 22:47:33 »
Hi,
ich habe für dich mal ein Script von woratana rausgesucht, was den Safe Jump beinhaltet. Dieser schützt genau vor deinem Problem sprich durch und über Wände zu springen. Es beeinhaltet auch viele andere gute Movebefhele, aber das hat weniger mit deinem Problem zutun. Credits an Wora ^^

Script:
Spoiler for Hiden:
#===============================================================
# ? [VX] ? Improved & Special Move Commands ? ?
#--------------------------------------------------------------
# ? by Woratana [woratana@hotmail.com]
# ? Released on: 20/03/2008
# ? Version: 1.0
#--------------------------------------------------------------
=begin
?=====?=====?=====?=====?=====?=====?=====?=====?=====?
                   + COMMANDS LIST +
?=====?=====?=====?=====?=====?=====?=====?=====?=====?
################################
? IMPROVED MOVE COMMANDS ?

? SAFE JUMP:
Don't Jump if its destination is OUT OF THE SCREEN (or) NOT PASSABLE.
(Old jump will not check before jump)

? IMPROVED RANDOM MOVE
Find the movable direction before move.
(Old random move will just skip to move in that frame, if its destination is not passable.)

? IMPROVED COLLIDE_WITH_CHARACTERS CHECK
'Same as Characters' events are able to walk on other 'Below Characters' events.

? Note: If you don't want one of this improved command, just delete its part.
(I put all of their command name above their script part)
################################

################################
? SPECIAL(NEW) MOVE COMMANDS ?

++[HOW TO USE]++
? Open 'Move Route' window, (or event command 'Set Move Route')
Click 'Script...' and type the move command you want...

? MOVE TOWARD POSITION X/Y
move_toward_pos(x,y)

? MOVE AWAY FROM POSITION X/Y
move_away_from_pos(x,y)

? MOVE TOWARD EVENT ID
move_toward_event(id)

? MOVE AWAY FROM EVENT ID
move_away_from_event(id)

? TURN TOWARD POSITION X/Y
turn_toward_pos(x,y)

? TURN AWAY FROM POSITION X/Y
turn_away_from_pos(x,y)

? TURN TOWARD EVENT ID
turn_toward_event(id)

? TURN AWAY FROM EVENT ID
turn_away_from_event(id)
################################
=end
class Game_Character
  ##################################################################
  # IMPROVED MOVE COMMANDS
  ##################################################################
  #-------------------------------------------------------------
  # SAFE JUMP
  #-------------------------------------------------------------
  def jump(x_plus, y_plus)
    if x_plus.abs > y_plus.abs            # ??????????
      x_plus < 0 ? turn_left : turn_right
    elsif x_plus.abs > y_plus.abs         # ??????????
      y_plus < 0 ? turn_up : turn_down
    end
    new_x = @x + x_plus
    new_y = @y + y_plus
    if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y)
      @x += x_plus
      @y += y_plus
      distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round
      @jump_peak = 10 + distance - @move_speed
      @jump_count = @jump_peak * 2
      @stop_count = 0
      straighten
    end
  end
 
  #-------------------------------------------------------------
  # IMPROVED RANDOM MOVE
  #-------------------------------------------------------------
  def move_random
    safe = false
    checked = []
    while safe == false
      break if checked.include?(0) and checked.include?(1) and
      checked.include?(2) and checked.include?(3)
      case rand(4)
      when 0; return if checked.include?(0); checked.push 0
        if passable?(@x, @y + 1)
          safe = true; move_down(false)
        end
      when 1; return if checked.include?(1); checked.push 1
        if passable?(@x - 1, @y)
          safe = true; move_left(false)
        end
      when 2; return if checked.include?(2); checked.push 2
        if passable?(@x + 1, @y)
          safe = true; move_right(false)
        end
      when 3; return if checked.include?(3); checked.push 3
        if passable?(@x - 1, @y)
          safe = true; move_up(false)
        end
      end
    end
  end
 
  #----------------------------------------------------------------------
  # IMPROVED COLLIDE_WITH_CHARACTERS CHECK
  #----------------------------------------------------------------------
  def collide_with_characters?(x, y)
    for event in $game_map.events_xy(x, y)          # Matches event position
      unless event.through                          # Passage OFF?
        return true if event.priority_type == 1     # Target is normal char
      end
    end
    if @priority_type == 1                          # Self is normal char
      return true if $game_player.pos_nt?(x, y)     # Matches player position
      return true if $game_map.boat.pos_nt?(x, y)   # Matches boat position
      return true if $game_map.ship.pos_nt?(x, y)   # Matches ship position
    end
    return false
  end
 
  ##################################################################
  # SPECIAL(NEW) MOVE COMMANDS
  ##################################################################
  #--------------------------------------------------------------------------
  # * Move toward Position
  #--------------------------------------------------------------------------
  def move_toward_pos(x,y)
    sx = distance_x_from_pos(x)
    sy = distance_y_from_pos(y)
    if sx != 0 or sy != 0
      if sx.abs > sy.abs                  # Horizontal distance is longer
        sx > 0 ? move_left : move_right   # Prioritize left-right
        if @move_failed and sy != 0
          sy > 0 ? move_up : move_down
        end
      else                                # Vertical distance is longer
        sy > 0 ? move_up : move_down      # Prioritize up-down
        if @move_failed and sx != 0
          sx > 0 ? move_left : move_right
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Move away from Position
  #--------------------------------------------------------------------------
  def move_away_from_pos(x,y)
    sx = distance_x_from_pos(x)
    sy = distance_y_from_pos(y)
    if sx != 0 or sy != 0
      if sx.abs > sy.abs                  # Horizontal distance is longer
        sx > 0 ? move_right : move_left   # Prioritize left-right
        if @move_failed and sy != 0
          sy > 0 ? move_down : move_up
        end
      else                                # Vertical distance is longer
        sy > 0 ? move_down : move_up      # Prioritize up-down
        if @move_failed and sx != 0
          sx > 0 ? move_right : move_left
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Move toward Event
  #--------------------------------------------------------------------------
  def move_toward_event(id)
    move_toward_pos($game_map.events[id].x,$game_map.events[id].y)
  end
  #--------------------------------------------------------------------------
  # * Move away from Event
  #--------------------------------------------------------------------------
  def move_away_from_event(id)
    move_away_from_pos($game_map.events[id].x,$game_map.events[id].y)
  end
  #--------------------------------------------------------------------------
  # * Turn toward Position
  #--------------------------------------------------------------------------
  def turn_toward_pos(x,y)
    sx = distance_x_from_pos(x)
    sy = distance_y_from_pos(y)
    if sx.abs > sy.abs                    # Horizontal distance is longer
      sx > 0 ? turn_left : turn_right
    elsif sx.abs < sy.abs                 # Vertical distance is longer
      sy > 0 ? turn_up : turn_down
    end
  end
  #--------------------------------------------------------------------------
  # * Turn away from Position
  #--------------------------------------------------------------------------
  def turn_away_from_pos(x,y)
    sx = distance_x_from_pos(x)
    sy = distance_y_from_pos(y)
    if sx.abs > sy.abs                    # Horizontal distance is longer
      sx > 0 ? turn_right : turn_left
    elsif sx.abs < sy.abs                 # Vertical distance is longer
      sy > 0 ? turn_down : turn_up
    end
  end
  #--------------------------------------------------------------------------
  # * Turn toward Event
  #--------------------------------------------------------------------------
  def turn_toward_event(id)
    turn_toward_pos($game_map.events[id].x,$game_map.events[id].y)
  end
  #--------------------------------------------------------------------------
  # * Turn away from Event
  #--------------------------------------------------------------------------
  def turn_away_from_event(id)
    turn_away_from_pos($game_map.events[id].x,$game_map.events[id].y)
  end
  #--------------------------------------------------------------------------
  # * Calculate X Distance From Event
  #--------------------------------------------------------------------------
  def distance_x_from_pos(x)
    sx = @x - x
    if $game_map.loop_horizontal?         # When looping horizontally
      if sx.abs > $game_map.width / 2     # Larger than half the map width?
        sx -= $game_map.width             # Subtract map width
      end
    end
    return sx
  end
  #--------------------------------------------------------------------------
  # * Calculate Y Distance From Event
  #--------------------------------------------------------------------------
  def distance_y_from_pos(y)
    sy = @y - y
    if $game_map.loop_vertical?           # When looping vertically
      if sy.abs > $game_map.height / 2    # Larger than half the map height?
        sy -= $game_map.height            # Subtract map height
      end
    end
    return sy
  end
end

Hoffe konnte dir helfen.

MfG
Deity
« Letzte Änderung: September 26, 2009, 22:50:41 von Ðeity »



Re: Springen funktioniert . . . aber nicht richtig

Offline KaN43

  • RTP-Mapper
  • *
  • Beiträge: 29
  • Kira sieht dich !
Re: Springen funktioniert . . . aber nicht richtig
« Antwort #8 am: September 26, 2009, 22:57:12 »
Dankeschön werds dann mal gleich ausprobieren.
EDIT: Es funktioniert 1a, Thread kann geclosed werden. Danke

*closed*
~Kyoshiro
« Letzte Änderung: September 27, 2009, 11:20:35 von Kyoshiro »

 


 Bild des Monats

rooftop party

Views: 3582
By: papilion

 Umfrage

  • Wer soll das BdM gewinnen?
  • Dot Kandidat 1
  • 3 (25%)
  • Dot Kandidat 2
  • 1 (8%)
  • Dot Kandidat 3
  • 2 (16%)
  • Dot Kandidat 4
  • 0 (0%)
  • Dot Kandidat 5
  • 6 (50%)
  • Stimmen insgesamt: 12
  • View Topic

 Schnellsuche





SimplePortal 2.3.3 © 2008-2010, SimplePortal