Schrift
[thread]10347[/thread]

Bareword "SDL_QUIT"



<< >> 10 Einträge, 1 Seite
defcon
 2007-09-07 21:48
#99201 #99201
User since
2007-07-14
11 Artikel
BenutzerIn

user image
Hallo zusammen,
ich wollte ein script ausprobieren, und bekomme beim ausführen folgende Meldungen:
Code: (dl )
1
2
3
Bareword "SDL_QUIT" not allowed while "strict subs" in use at ./skydive.pl line 102.
Bareword "SDL_KEYDOWN" not allowed while "strict subs" in use at ./skydive.pl line 104.
Execution of ./skydive.pl aborted due to compilation errors.


die entsprechende Passage sieht so aus:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
while ($event->poll != 0) {
      my $type = $event->type();
      exit if $type == SDL_QUIT;

if($type == SDL_KEYDOWN) {
        my $keypressed = $event->key_name;
  
        if($keypressed eq "left") {
            $obj->move("w", 0.1);
        } elsif($keypressed eq "right") {
            $obj->move("e", 0.1);
        } elsif($keypressed eq "up") {
          # deploy parachute
          $vterm = $VTERM_PARA;
          $obj->image($para);
        } elsif($keypressed eq "r") {
          $obj->wipe();
          next GAME;
        } elsif($keypressed eq "q") {
          exit 0; # quit
        }
      }
    }



Unter einer anderen Distribution funktionierts einwandfrei, nur unter debian nicht.. warum auch immer.
pktm
 2007-09-07 23:45
#99205 #99205
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Welche SDL_Perl - Version hast du denn?
Versuch mal use SDL::Constants;, bei älteren Versionen auf meinem System hier gab das ohne Probleme.
http://www.intergastro-service.de (mein erstes CMS :) )
defcon
 2007-09-07 23:56
#99206 #99206
User since
2007-07-14
11 Artikel
BenutzerIn

user image
Hm, kann ich das über cpan rausbekommen?
Auf jeden Fall kommt folgendes:
Code: (dl )
SDL_perl is up to date


Ach.. bevor ichs vergesse...
ich hab mal noch use SDL::Constants; reingemacht, aber die Meldungen kommen trotzdem noch. :/
pktm
 2007-09-08 00:34
#99208 #99208
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Du musst auf jeden Fall irgendwie diese Konstanten exportieren. Versuch mal use SDL qw/SDL_QUIT/; und dergleichen, bzw. google mal ne Runde, da gibts schon einige Informationen zu (wenn auch nur mühsam zu finden).

Für die Version eines Moduls gibt es bestimmt einen coolen Einzeiler, aber als nativer Windowsnutzer kenne ich sowas nicht :) Ich gucke meistens in die Module rein, da steht die Version drin (einfach nach suchen), oder benutze das Sysinfo-Skript, welches ich bei meinem Webserver mit aufgesetzt habe.

Edit: Hier gibts Sysinfo
http://www.intergastro-service.de (mein erstes CMS :) )
defcon
 2007-09-08 11:50
#99210 #99210
User since
2007-07-14
11 Artikel
BenutzerIn

user image
So, so läufts jetzt:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
 while ($event->poll != 0) {
      my $type = $event->type();
      exit if $type == SDL::Event::SDL_QUIT();
   
      if($type == SDL::Event::SDL_KEYDOWN()) {
        my $keypressed = $event->key_name;
.
.
.


Ich versteh das nicht... auf Debian und auf Archlinux sind die gleichen Versionen von Perl drauf, auf beiden hab ich SDL über CPAN installiert. Bis auf den Pfad mit der Schhrift (Nein, hab ich hier nicht gepostet) ist doch alles gleich. Wieso musste ich dann das Script so wie oben abändern.. *bart kratz*
pktm
 2007-09-08 13:22
#99215 #99215
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hm, da bin ich erhlich überfragt. Hast du bei beidem Skripten strict und warnings benutzt? Wenn du das Programm ausführst, übergibst du irgendwelche Flags (z.B. -w)? Und, hast du bei beiden Skripten use SDL::Event; drin?
Ohne mehr Code kann ich da aber leider nur raten.
http://www.intergastro-service.de (mein erstes CMS :) )
defcon
 2007-09-08 13:39
#99216 #99216
User since
2007-07-14
11 Artikel
BenutzerIn

user image
Ok, machen wirs so.

Das hier läuft auf Archlinux.

und das hier ist das abgeänderte, welches auf debian läuft, und mittlerweile auch funktioniert.
pktm
 2007-09-08 15:47
#99220 #99220
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Lass mal den -w Switch weg und nimm statt dessen use warnings;
Die genaue Bergündugn warum das besser ist habe ich wieder vergessen.
Ändert sich die Fehlermeldung?
http://www.intergastro-service.de (mein erstes CMS :) )
defcon
 2007-09-08 15:57
#99221 #99221
User since
2007-07-14
11 Artikel
BenutzerIn

user image
Jepp, jetzt kommt die hier:
Code: (dl )
Undefined subroutine &main::TEXT_SHADED called at /usr/lib/perl5/SDL/TTFont.pm line 26.


also bei dem orginal-script (siehe Posting 7 und den untersten link dort).
renee
 2007-09-08 16:06
#99222 #99222
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
pktm+2007-09-08 13:47:56--
Die genaue Bergündugn warum das besser ist habe ich wieder vergessen.


-w schaltet "warnings" global an, also auch für Module. use warnings hat lexikalischen Scope und ist somit nur für den Block bzw. die Datei gültig, in dem es aktiviert wurde...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 10 Einträge, 1 Seite



View all threads created 2007-09-07 21:48.