• Anmelden

Shizaso

Der Junge, der stirbt

  • »Shizaso« ist der Autor dieses Themas

Motto: Ich bestimme: wir haben Demokratie!

  • Nachricht senden

1

Sonntag, 19. April 2009, 12:44

Das wasserspiegelungs script spiegelt gar nicht, sondern dreht nur um! Help

Hallo, ich habe vorhin festgestellt, dass dieses:

Spoiler

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
#==============================================================================
# %u25A0 Sprite_Reflection
# Based on Sprite_Mirror, Modified By: JmsPlDnl, rewritten entirely by Rataime
#==============================================================================
CATERPILLAR_COMPATIBLE = true
 
class Game_Party
  attr_reader :characters
end
 
class Sprite_Reflection < RPG::Sprite
 
 attr_accessor :character
 
 def initialize(viewport=nil, character=nil,self_angle = 180)
   super(viewport)
   @character = character
   @self_angle=self_angle
   self.opacity=0
   @reflected=false
   @former=false
   @moving=false
   if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128 1)==7
     @reflected=true
     @former=true
   end
   update
 end
 
 def update
   super
   if @tile_id != @character.tile_id or
      @character_name != @character.character_name or
      @character_hue != @character.character_hue
     @tile_id = @character.tile_id
     @character_name = @character.character_name
     @character_hue = @character.character_hue
     if @tile_id >= 384
       self.bitmap = RPG::Cache.tile($game_map.tileset_name,
         @tile_id, @character.character_hue)
       self.src_rect.set(0, 0, 32, 32)
       self.ox = 16
       self.oy = 32
     else
       self.bitmap = RPG::Cache.character(@character.character_name,
         @character.character_hue)
       @cw = bitmap.width / 4
       @ch = bitmap.height / 4
       self.ox = @cw / 2
       self.oy = @ch
     end
   end
 
   self.visible = (not @character.transparent)
   if @tile_id == 0
     sx = (@character.pattern) * @cw
     sy = (@character.direction - 2) / 2 * @ch
     if @character.direction== 6
           sy = ( 4- 2) / 2 * @ch
     end
     if @character.direction== 4
           sy = ( 6- 2) / 2 * @ch
    end
    if @character.direction != 4 and @character.direction != 6
          sy = (@character.direction - 2) / 2 * @ch
    end
   end
 
   self.x = @character.screen_x
   self.y = @character.screen_y-5
   @moving=!(@character.real_x%128==0 and @character.real_y%128==0)
   @d=@character.direction
   @rect=[sx, sy, @cw, @ch]
   if !(@moving)
     if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128 1)==7 
       @reflected=true
       @former=true
     else
       @reflected=false  
       @former=false
     end
 
   else
       case @d
 
       when 2
       if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128 2)==7
         @reflected=true
         if @former==false
           @offset = (@character.screen_y%32)*@ch/32
           @rect=[sx, sy, @cw, @offset]
           self.y=@character.screen_y-5
         end
       else
         @reflected=false  
       end
 
       when 4
       if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128 1)!=7
         @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
         @rect=[sx, sy, @offset, @ch]
         self.x=@character.screen_x
       else
         @reflected=true
         if @former==false
           @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
           @rect=[sx @offset, sy, @cw-@offset, @ch]
           self.x=@character.screen_x-@offset
         end
       end
 
       when 6
       if $game_map.terrain_tag(@character.real_x/128 1,@character.real_y/128 1)!=7
         @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
         @rect=[sx @offset, sy, @cw-@offset, @ch]
         self.x=@character.screen_x-@offset
       else
         @reflected=true
         if @former==false
           @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
           @rect=[sx, sy, @offset, @ch]
           self.x=@character.screen_x
         end
       end
 
       when 8
       if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128 2)==7
         @reflected=true
         if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128 1)!=7
           @offset = (@character.screen_y%32)*@ch/32
           @rect=[sx, sy, @cw, @offset]
           self.y=@character.screen_y-5
         end
       else
         @reflected=false  
       end
 
       end
 
   end
   if @reflected
     self.opacity=128
   else
    @rect=[sx, sy, @cw, @ch]
    self.opacity=0
   end
 
   if $game_map.terrain_tag((@character.real_x 64)/128,@character.real_y/128 2)!=7
     if $game_map.terrain_tag((@character.real_x 64)/128,@character.real_y/128 2)!=7
       @rect[1]= @rect[1] @ch/2
       @rect[3]= @rect[3]/2
       self.y = self.y - @ch/2
     else
       @reflected=false
     end
   end
 
   self.src_rect.set(@rect[0],@rect[1],@rect[2],@rect[3])
 
   @character.is_a?(Game_Player) ? self.z = 9 : self.z = 5
   self.blend_type = @character.blend_type
   self.bush_depth = @character.bush_depth
   if @character.animation_id != 0
     animation = $data_animations[@character.animation_id]
     animation(animation, true)
     @character.animation_id = 0
   end
 
   self.angle = @self_angle
 end
end
 
#===================================================
# %u25BC CLASS Sprite_Character edit
#===================================================
 
class Sprite_Character < RPG::Sprite
  alias reflect_initialize initialize
 
  def initialize(viewport, character = nil)
    @character = character
    @reflection = []
    super(viewport)
    if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["r"])
     @reflection.push(Sprite_Reflection.new(viewport,@character))
    end
    if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["hero_r"])
     @reflection.push(Sprite_Reflection.new(viewport,$game_player))
#===================================================
# %u25CF Compatibility with fukuyama's caterpillar script
#===================================================
if CATERPILLAR_COMPATIBLE and $game_party.characters!=nil
 
  for member in $game_party.characters
    @reflection.push(Sprite_Reflection.new(viewport,member))
  end
 
end
#===================================================
# %u25CF End of the compatibility
#===================================================
    end
    reflect_initialize(viewport, @character)
  end
 
  alias reflect_update update
 
  def update
   reflect_update
   if @reflection!=nil
     for reflect in @reflection
       reflect.update
     end
   end
  end
 
end
zum Lesen den Text mit der Maus markieren


Wasserspiegelungsscript gar nicht richtig spiegelt, sondern die Gafik nur um 180° dreht. Das funktioniert, wenn der Charakter von beiden seiten gleich aussieht, aber sonst ist es komisch.

Bild

Meine frage ist, gibt es eine möglichkeit das script so zu verändern, dass es tatsächlich spiegelt, bzw kann das einer für miach machen?


~Shiza
:shizaso_devil:

2

Sonntag, 19. April 2009, 12:55

Das was du da reingestellt hast, ist ziemlich unogisch :D
im ersten Bild stimmt das mit den 180° gedreht.
Beim zweiten hällt ist die Sprite zwar gespuegelt, aber sein Stab irgendwie nicht? Woran liegt das?
Spoiler: Sachen
zum Lesen den Text mit der Maus markieren

GUMPi

Landsknecht

Motto: Ich finde den "Like-Button" so ziemlich uncool, echt mal.

  • Nachricht senden

3

Sonntag, 19. April 2009, 13:12

Nimm doch das hier -> Wasserspiegelung - UPDATE
Bild

Shizaso

Der Junge, der stirbt

  • »Shizaso« ist der Autor dieses Themas

Motto: Ich bestimme: wir haben Demokratie!

  • Nachricht senden

4

Sonntag, 19. April 2009, 13:16

Doch, das ist um 180° gedreht, aber es ist der sprite, der in die andere richtung guckt:

Bild
:shizaso_devil:

5

Sonntag, 19. April 2009, 13:27

Das was du da reingestellt hast, ist ziemlich unogisch :D
im ersten Bild stimmt das mit den 180° gedreht.
Beim zweiten hällt ist die Sprite zwar gespuegelt, aber sein Stab irgendwie nicht? Woran liegt das?
stimmt garnicht, alle stimmen nicht xD
Das einzige was ein Spiegel vertauscht ist vorne und hinten. D.H wenn der chara den STab in der rechten Hand hält muss das Spiegelbild von sich aus links halten. probierts mal selbst vorm spiegel aus. wenn ihr den rechten Arm hebt hebt das Spiegelbild den linken :D

CHoB - Chival - History of Boltin Sucht dich (vielleicht)!
[WiP]

Shizaso

Der Junge, der stirbt

  • »Shizaso« ist der Autor dieses Themas

Motto: Ich bestimme: wir haben Demokratie!

  • Nachricht senden

6

Sonntag, 19. April 2009, 13:33

@ Gumpi
nein, an das script hab ich zwar auch schon gedacht, aber das ist mir erstens zu viel und zwietens gibts noch n paar bugs, ausserdem arbeitet das mit n paar anderen scripts nicht zusammen (z.b train actor)
:shizaso_devil:

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

7

Sonntag, 19. April 2009, 14:02

Bei mir gibt das Teil sowieso ganz viele Syntax-Error O.o
Naja, probier mal nach Zeile 169 (self.angle = @self_angle) das hier einzufügen:

Ruby Quellcode

1
2
3
4
5
if @d == 2 or @d == 8
self.mirror = true
else
self.mirror = false
end


/edit:
Obwohl, so ists eigentlich schöner ^^

Ruby Quellcode

1
self.mirror = (@d == 2 or @d == 8)
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Shizaso

Der Junge, der stirbt

  • »Shizaso« ist der Autor dieses Themas

Motto: Ich bestimme: wir haben Demokratie!

  • Nachricht senden

8

Sonntag, 19. April 2009, 14:21

Ne, sry das funktioniert nicht. wenn ich das self.angle = @self_angle stehen lasse und das darunter einfüge, dann ändert sich gar nichts, außer, dass es nen kleinen grafikruckler gibt und man kurz die beine des jeweiligen chara über seinem kopf sieht.
Wenn ich das self.angle = @self_angle rauslösche, dann gibt es wieder dieses kleine grafikproblem und der chara ist nur horizontal gespiegelt und kommt mir entgegen.
:shizaso_devil:

Shizaso

Der Junge, der stirbt

  • »Shizaso« ist der Autor dieses Themas

Motto: Ich bestimme: wir haben Demokratie!

  • Nachricht senden

9

Freitag, 24. April 2009, 14:07

*push* :(
:shizaso_devil:

10

Sonntag, 26. April 2009, 21:19

Ich weiss wo dein Problem ist xD!
Die normalen Charaktere vom RTP sind (fast) alle symetrisch für so einen bräuchtest du wohl jeweils nen neues charset das per script im wasser aufgerufen werden würde.

CHoB - Chival - History of Boltin Sucht dich (vielleicht)!
[WiP]

Social Bookmarks