BASIC

Author Topic: wieso zum teufel stürtzt das spiel während dem load ab?  (Read 2589 times)

Arkarin

  • Guest
das prog is zwar noch nit fertig. aber dennoch konnte ichs starten. bis ich die variable Chara änderte und nun nichts mehr geht. bitte helft mir
hier der code:
Code: GLBasic [Select]
[// --------------------------------- //
// Project: Die Legende des Landes Adyl- Das Game
// Start: Monday, October 01, 2007
// IDE Version: 5.014



        LOADSPRITE "Bilder/Charas/Krieger_männlich_hinten.bmp", 900111
        LOADSPRITE "Bilder/Charas/Krieger_männlich_links.bmp",  900112
        LOADSPRITE "Bilder/Charas/Krieger_männlich_rechts.bmp", 900113
        LOADSPRITE "Bilder/Charas/Krieger_männlich_vorn.bmp",   900114
        LOADSPRITE "Bilder/Charas/Krieger_weiblich_hinten.bmp", 900121
        LOADSPRITE "Bilder/Charas/Krieger_weiblich_links.bmp",  900122
        LOADSPRITE "Bilder/Charas/Krieger_weiblich_rechts.bmp", 900123
        LOADSPRITE "Bilder/Charas/Krieger_weiblich_vorn.bmp",   900124
        LOADSPRITE "Bilder/Charas/Magier_männlich_hinten.bmp",  900211
        LOADSPRITE "Bilder/Charas/Magier_männlich_links.bmp",   900212
        LOADSPRITE "Bilder/Charas/Magier_männlich_rechts.bmp",  900213
        LOADSPRITE "Bilder/Charas/Magier_männlich_vorn.bmp",    900214
        LOADSPRITE "Bilder/Charas/Magier_weiblich_hinten.bmp",  900221
        LOADSPRITE "Bilder/Charas/Magier_weiblich_links.bmp",   900222
        LOADSPRITE "Bilder/Charas/Magier_weiblich_rechts.bmp",  900223
        LOADSPRITE "Bilder/Charas/Magier_weiblich_vorn.bmp",    900224
        LOADSPRITE "Bilder/Charas/Schütze_männlich_hinten.bmp", 900311
        LOADSPRITE "Bilder/Charas/Schütze_männlich_links.bmp",  900312
        LOADSPRITE "Bilder/Charas/Schütze_männlich_rechts.bmp", 900313
        LOADSPRITE "Bilder/Charas/Schütze_männlich_vorn.bmp",   900314
        LOADSPRITE "Bilder/Charas/Schütze_weiblich_hinten.bmp", 900321
        LOADSPRITE "Bilder/Charas/Schütze_weiblich_links.bmp",  900322
        LOADSPRITE "Bilder/Charas/Schütze_weiblich_rechts.bmp", 900323
        LOADSPRITE "Bilder/Charas/Schütze_weiblich_vorn.bmp",   900324

GOSUB Charakter_Auswahl
Chara= 900000+Rasse+Geschlecht+Ansicht
GOSUB Bewegung_Chara_Welt
SHOWSCREEN
END
// ------------------------------------------------------------- //
// -=#  BEWEGUNG_CHARA-_Welt  #=-
// ------------------------------------------------------------- //
SUB Bewegung_Chara_Welt:

y=y
x=x

WHILE TRUE
DRAWSPRITE Chara, x,y
IF KEY(200)
        x=x
        y=y-1
        Ansicht= 1      //auf
ELSEIF KEY(208)
        x=x
        y=y+1
        Ansicht= 4      //ab
ELSEIF KEY(203)
        x=x-1
        y=y
        Ansicht= 2      //links
ELSEIF KEY(205)
        x=x+1
        y=y
        Ansicht= 3      //rechts
ENDIF
SHOWSCREEN
WEND

IF KEY(24)
        GOSUB Optionen
ELSEIF KEY(31)
        GOSUB Chara_Status
ELSEIF KEY(23)
        GOSUB Chara_Inventar
ENDIF

ENDSUB // BEWEGUNG_CHARA_Welt




// ------------------------------------------------------------- //
// -=#  CHARAKTER_AUSWAHL  #=-
// ------------------------------------------------------------- //
SUB Charakter_Auswahl:

Rasse=Rasse
Geschlecht=Geschlecht

 //Auswahl_Rasse:
 WHILE Rasse_bestaetigung= FALSE
 PRINT "Rassenauswahl", 10,10
 PRINT "Für die Rasse der Magier,   bitte Taste 1 drücken", 20,20
 PRINT "Für die Rasse der Kämpfer,  bitte Taste 2 drücken", 20,30
 PRINT "Für die Rasse der Schützen, bitte Taste 3 drücken", 20,40
 PRINT "Ihre Wahl lautet:", 300,10
 SHOWSCREEN

 IF KEY(02)                             //1
        Rasse$= "Magier"
        Rasse= 200
        Rasse_bestaetigung= TRUE

 ELSEIF KEY(03)                         //2
        Rasse$= "Kämpfer"
        Rasse= 100
        Rasse_bestaetigung= TRUE

 ELSEIF KEY(04)                         //3
        Rasse$= "Schützen"
        Rasse= 300
        Rasse_bestaetigung= TRUE

 ENDIF


 SHOWSCREEN
 WEND

SHOWSCREEN
 //Auswahl_Geschlecht:

 IF Rasse_bestaetigung= TRUE
  WHILE Geschlecht_bestaetigung= FALSE
        PRINT "Bitte Geschlecht wählen:", 10,60
        PRINT "Für einen männlichen Charackter, bitte Taste M drücken.", 20,70
        PRINT "Für einen weiblichen Charackter, bitte Taste W drücken.", 20,80
        PRINT "Ihre Wahl lautet:", 300,10
        PRINT Rasse$, 440,10
        SHOWSCREEN

        IF KEY(50)              //M
                Geschlecht$= "männlich"
                Geschlecht= 10
                Geschlecht_bestaetigung= TRUE

        ELSEIF KEY(17)  //W
                Geschlecht$= "weiblich"
                Geschlecht= 20
                Geschlecht_bestaetigung= TRUE

        ENDIF
  WEND

 SHOWSCREEN
 ENDIF

 //Chara_Bestätigung:
 IF Geschlecht_bestaetigung= TRUE AND Rasse_bestaetigung= TRUE
        WHILE Chara_bestaetigung= FALSE
        Ansicht=4
        DRAWSPRITE Chara , 100,100
        PRINT "Ist das okay?", 100,150
        PRINT "ja=J", 110,160
        PRINT "nein=N", 110,170
        PRINT "Ihre Wahl lautet:", 300,10
        PRINT Rasse$, 440,10
        PRINT Geschlecht$, 440,20
        SHOWSCREEN

        IF KEY(36)              //J
                Chara_bestaetigung= TRUE
                RETURN
        ELSEIF KEY(49)  //N
                Chara_bestaetigung= FALSE
                Geschlecht_bestaetigung= FALSE
                Rasse_bestaetigung= FALSE
                GOSUB Charakter_Auswahl
        ENDIF
        WEND
 ENDIF

SHOWSCREEN

ENDSUB // CHARAKTER_AUSWAHL





// ------------------------------------------------------------- //
// -=#  OPTIONEN  #=-
// ------------------------------------------------------------- //
SUB Optionen:



ENDSUB // OPTIONEN




// ------------------------------------------------------------- //
// -=#  CHARA_STATUS  #=-
// ------------------------------------------------------------- //
SUB Chara_Status:



ENDSUB // CHARA_STATUS




// ------------------------------------------------------------- //
// -=#  CHARA_INVENTAR  #=-
// ------------------------------------------------------------- //
SUB Chara_Inventar:



ENDSUB // CHARA_INVENTAR
chara soll die sprite nummer dastellen. z.b.: Figur Magier , weiblich schaut nach links. also
    Chara=900222
also muss doch die formel lauten:    
    Chara= 900000+Rasse+Geschlecht+Ansicht
oder täusch ich mich?


ich weiß ist viel aber ich komm einfach nit drauf.
danke im voraus wer sich meiner annimmt.

Offline S.O.P.M.

  • Prof. Inline
  • *****
  • Posts: 529
    • View Profile
Also erstmal, auch wenn das nicht unbedingt hier her gehört, warum möchtest du einer Variable ihren eigenen Wert zuweisen. x=x und y=y ergibt für mich einfach keinen Sinn.

Ok, wichtig wäre zu wissen, wie du die Variable vorher hattest. Die Nummern für die Sprites sind doch ziemlich groß, ich würde es zuerst mit kleineren Nummern probieren. Ich kann mir nicht vorstellen, dass du in deinem Spiel noch so viele weitere Sprites verwenden wirst. Hast du mal den Debug-Modus verwendet, zeigt er einen Fehler an?
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
habs mal probiert, zwar ohne Grafiken, aber der Absturz kam bei mir auch, auch nach Update auf 5.022

Lösung:
Verwende statt der Bildnummern 900xxx einfach mal 9xxx, also kleinere Nummern, dann gehts. Frag mich nicht warum, sollte eigentlich egal sein, wenn alles FLOATs sind. Zumindest läuft das Programm dann.

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5018
  • O Rly?
    • View Profile
So hohe Spritenummern gehen nicht!

Und das : ...wieso zum teufel.... <--- Lass es!(Wir sind ein freundliches Forum!) ;)

Mach erstmal Grundlangentutorials, bevor du anfängst RPG's machen zu wollen. Das bricht dir das genick beim Coden, ob du es nun wahr haben willst oder nicht.

EDIT.:

@ Quentin

Ich hoffe du meinst Integer und hast dich nur verschreiben !
Float = 0.1, 0.02, 0.32 usw
Integer = 1, 2 , 3 , 4  usw
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
Ähhh Schranzor?
So viel ich weiß sind in GL alle Zahlen FLOATs. Und mir ist durchaus bewußt, was INTEGER und was FLOAT ist ;)
Rein vom Zahlenbereich sollte es daher meiner Meinung nach kein Problem darstellen, wenn man so hohe Nummern verwendet. Aber ich denke, Gernot kann da mehr zu sagen.


es sei denn, intern werden für die Bildnummern SHORT, INT oder sowas verwendet ... ;)

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5018
  • O Rly?
    • View Profile
Aha Quentin ;)

Die BildNummern sind aber Integer, weil du kannst kein Array(z.B Images[] ) mit Floats füllen! ;)

Denk mal drüber nach :D
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
Gestehe ich kann dir nicht so ganz folgen. Natürlich kann man ein Array mit FLOATs füllen. Warum denn nicht?

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5018
  • O Rly?
    • View Profile
Ok ich erklärs dir ;)


Ein offenes(auch ein Gedimtes) Array[]
Kann nur Felder 0-1-2-3-4-5-6 füllen nicht aber 1.56 oder der gleichen ;)


EDIT:

Gernot , Bitte schreibe das doch mal in die Hilfe mit rein, was das Maximal-Sprite ist als Zahl!
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
AHHHH! Glaube jetzt versteh ich was du meinst. Du meinst die Dimensionen des Array. Nun ja, die können nur ganzahlig sein.

Arkarin

  • Guest
also habs grad ausprobiert. hab die zahlen der Sprites auf 9xxx beschränkt und es funktioniert. ^^
lol hab gedacht mann könnte den sprites eine beliebig große zahl zuweisen. jetzt bin ich schlauer.

zur erklärung warum gleich ein rpg. in einen rpg sind viele verschiedene Teiile zu programieren. und wenn ich auf was neues stoße was ich beim programieren noch nit kannte mach ich bei ein neues projetkt auf und versuche mich erstmal dort bevor ich es in das rpg einfließen lasse.

z.b.: das bewegen der figur. hab erst eine anderes prog geschrieben wo ich es ausprobiert und meinen wünschen angepasst habe.  alsop könnte man sagen das rpg besteht aud vielen einzel projekten. ^^


Ps: sry wegen den "...wieso zum teufel.... "  wollt nit so radikal werden. hat mich eben nur aufgeregt das das prog nt mehr wollte.


danke für die hilfe.

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5018
  • O Rly?
    • View Profile
alles klar , dann mal viel Glück!
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline S.O.P.M.

  • Prof. Inline
  • *****
  • Posts: 529
    • View Profile
Soweit ich mich richtig an einen früheren Thread erinnere, gab es vor dem Update auch schon mal mit Spritenummern im dreistelligen Bereich Probleme. Wie auch immer der maximal mögliche Wert ist, wenn er bei sagen wir 999 liegt, sollte das mehr als ausreichend sein!
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10708
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Max Sprite ist bei 65000 oder so...