- Jul 11, 2017
- 229
- 256
variant "large"
and variant "small"
without also having a variant "medium"
. It worked fine on some android devices, but not others (basically, dependant on screen size).screen
. One with any variant "small"
and one without a variant
parameter at all. That way, "small" will be used on a small hand held device like a phone of small tablet and the full sized/default version will be used everywhere else (like desktop PC's, larger tablets, etc).variant "large"
parameter, since large tends to be the version most games are designed for anyway and "no variant defined" version will be used as the default if no better match is identified.I read over that, however I haven't used "variant" in my code. (Anywhere).
I actually had no clue it existed until a few minutes ago.
Do you think that still applies? As in, should I try adding it to see if if fixes an error?
As far as the code, ....I could just paste it here for you.
screen pichi_sit_npc():
imagebutton:# the rest has not been changed or altered for some time.
xalign 0.4
yalign 0.28
idle "pichichar/pichi_sit_1.png"
hover "pichichar/pichi_sit_1_hov.png"
action [Hide("pichi_sit_npc"),Call("pichi_events_storypoint_3")]
screen pichi_sit_npc():
variant "small"
imagebutton:# the rest has not been changed or altered for some time.
xalign 0.4
yalign 0.28
idle "pichichar/pichi_sit_1.png"
hover "pichichar/pichi_sit_1_hov.png"
action [Hide("pichi_sit_npc"),Call("pichi_events_storypoint_3")]
[...] I've tried deleting .rpyc files.
.rpyc
files is a BAD, BAD idea.screen pichi_sit_npc()
would never be found. show screen whatever
$ renpy.pause(hard=True)
call screen whatever
modal True
to force RenPy to only allow the player to interact with THIS screen and no overlapping screens. Though it's not clear to me if recoding would work here, as you seem to have places in the code where you show
multiple screens before the player interacts with them.renpy.pause(hard=True)
is that it doesn't stop the game continuing. The game will be fine as long as the player clicks on something which has an action - but other elements (like SKIP) will just cause the game to carry on... the game will just continue to the next line of code, and you'll get all sort of unexpected things happening (like seeing the same scene/dialogue over and over again or something seemingly happening out of sequence).I also don't see why it can be the cause, but isn't to what the traceback is pointing ?You're coding your screen usage as (sort of):
Python:show screen whatever $ renpy.pause(hard=True)
... which will cause issues when people use the [SKIP] key. But I don't see how that would cause the "screen not found" error.
Then if you put those lines in regard with the code, you found this:code/events/get_magun.rpy:29
code/recaps/ryoko_recap.rpy:29
code/zones/tower.rpy:397
code/zones/lull_forest.rpy:69 (8 times)
code/zones/tower.rpy:397
code/zones/tower.rpy:388
$renpy.pause(hard=True)
show screen pichi_sit_npc
jump the_tower2
) against 4 from a screen (Jump( "the_tower2" )
).show screen pichi_sit_npc
to call screen pichi_sit_npc
.show screen ryoko_replay_scenes1 with dissolve
to call screen ryoko_replay_scenes1 with dissolve
.show screen grimmlying with dissolve
to call screen grimmlying with dissolve
.pichi_sit_npc
are using action Call()
.screen pichi_sit_npc():
imagebutton:
xalign 0.4
yalign 0.28
idle "pichichar/pichi_sit_1.png"
hover "pichichar/pichi_sit_1_hov.png"
action [Hide("pichi_sit_npc"),Call("pichi_events_storypoint_3")]
label pichi_events_storypoint_3
, the code there doesn't behave like a "called" label.label the_tower2
.jump
back to label the_tower2
that makes me say "doesn't behave like a 'called' label".label the_tower2
, the various conditions will result in screen pichi_sit_npc
being shown again... leading to another Call
... and so the looping continues.action [Hide("pichi_sit_npc"),Call("pichi_events_storypoint_3")]
Jump
instead.action [Hide("pichi_sit_npc"),Jump("pichi_events_storypoint_3")]
.Call
and call
label are "jump to label and then when you encounter a return
statement, return to where the call was made from.call
statement is run, the line identifier (where the call
statement was run from) is added to the call stack. Each time a return
statement is encountered, the latest entry of the call stack is removed and program control is passed back to that calling line.call
and call screen
are COMPLETELY different things.lull_forest.rpyc line 69
and tower.rpyc lines 397 and 388
appearing multiple times - strongly hinting that there is some sort of inadvertent uncontrolled looping going on.action Call()
to action Jump()
. Except, you genuinely have labels which are called (label switch_battle_mode:
for example). So since you have a mix of usage, each action
would need to be reviewed independently, in it's own right. Simply put... if it's supposed be "go and come back"... then it's call
(or Call()
). But if it's supposed to be "go and never come back", then it's jump
(or Jump()
).It's the line 69 that puzzle me, especially put in perspective with what you said about the called labels.The error log seems to point to this, with bothlull_forest.rpyc line 69
andtower.rpyc lines 397 and 388
appearing multiple times - strongly hinting that there is some sort of inadvertent uncontrolled looping going on.
label lull_f_1:
$ renpy.pause(hard=True)
return
You can also keep a quick look on the stack from the console with:For anyone who's interested, I got the list by using the following command in the developer console:
for i in renpy.game.context().return_stack: print i
watch renpy.call_stack_depth()
Update your GPU/Video card drivers.anyone know?how to solve it
SHIFT
pressed until you see the renderers selection screen, and choose "Angle".