Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - Metamorphose

#1
Hallo Miteinander.
Ich hab eine kleine idee für ein nicht so aufwendiges programm, dass bei einem buttonklick verschiedene sätze anzeigen soll in einem von mir grössendefinierten bereich. Wie in einem textadventure, dass der text unterschiedlich lang ist und ab einer gewissen länge automatisch eine neue zeile macht. Habt ihr mir da ideen oder gibts schon was, dass ich nehmen kann? Nehme an dass es nicht einen entsprechenden befehl gibt, bzw habs mit meinem neulingswissen nicht gefunden.
Grüsse
#2
Helllau.
Ich hab glbasic schon eine weile, hab sogar vor über 10 jahren mal ein kleines spiel damit geschrieben.
Würd nach der langen Zeit gerne mal wieder was programmieren. Jetzt hab ich früher aber für die Pandora geschrieben, da konnt ich die auflösung eingeben. Jetzt würd ich gern was für androids machen, hab noch nie mit variablen auflösungen geschrieben.
Kann mir da jemand eine gute herangehensweise erklären?
Möglichst simpel, hab glbasic ja schon längers nicht mehr genutzt :/
#3
salü
wollt was für die open pandora schreiben, habe mal kurz angefangen ein simples textadventure zu schreiben und zu schauen, wies aussieht.
multicompiled, auf pandora drauf: geht nicht.
in die pnd geschaut und hatte die font nicht dabei. deshalb bei dateien in der IDE eingefügt und wieder multicompiled.
lädt und wieder zurück im minimenü.
habe es auf der SD als pandora/apps drin, einfach die pnd.
projekteinstellungen sind auch auf pandora fixiert.

der code ist sehr simpel, denke nicht dass der was macht:
Code (glbasic) Select

LOADFONT "font.png", 1
SETFONT 1

GLOBAL txt1$, txt2$, txt3$, txt4$, txt5$, txt6$, txt7$, txt8$, txt9$, txt10$, txt11$, txt12$, txt13$
GLOBAL room

room = 1


IF room=1 THEN txt1$= "beispieltext"

PRINT txt1$, 10, 10, 1
PRINT txt1$, 10, 25, 1
PRINT txt1$, 10, 40, 1
PRINT txt1$, 10, 55, 1
PRINT txt1$, 10, 70, 1 //5
PRINT txt1$, 10, 85, 1
PRINT txt1$, 10, 100, 1
PRINT txt1$, 10, 115, 1
PRINT txt1$, 10, 130, 1
PRINT txt1$, 10, 145, 1 //10
PRINT txt1$, 10, 160, 1
PRINT txt1$, 10, 175, 1
PRINT txt1$, 10, 190, 1
PRINT txt1$, 10, 205, 1
PRINT txt1$, 10, 220, 1 //15
PRINT txt1$, 10, 235, 1
PRINT txt1$, 10, 250, 1
PRINT txt1$, 10, 265, 1
PRINT txt1$, 10, 280, 1
PRINT txt1$, 10, 295, 1 //20
SHOWSCREEN
MOUSEWAIT


SUB cleartxt:
txt1$=""; txt2$=""; txt3$=""; txt4$=""; txt5$=""; txt6$=""; txt7$=""; txt8$=""; txt9$=""; txt10$=""
txt11$=""; txt12$=""; txt13$=""
ENDSUB



an was liegts? grüsse
#4
salü miteinander.
habe mir letztens ein android-tablet gekauft und gedacht, ich könnt ein altes projekt kurz dafür kompilieren.
nun versteh ich die hilfedatei einfach nicht. um es einfach nur bei mir auf dem android-tablet anzusehen, was muss ich da tun? (ohne marketplace usw)
grüsse
#5
Hallo Miteinander.

Ich würde gerne für jemanden ein Programm schreiben, dass 4 Buttons (einfach Bilder eines Buttons) zeigt. Wenn man auf einen Button drückt, lässt es eine mp3/wav datei abspielen. Im Programm soll man aber auch das Bild des Buttons ändern können und eine neue mp3/wav-datei aufnehmen, die die alte ersetzt.

Gibt es da einfache Lösungen, glbasic Befehle für oder ist das etwas aufwendigeres? Wäre für das Iphone/Ipad.

#6
Hallo.
Ich habe eine grundlegende idee, dass die fertige glbasic-anwendung aus txt-dateien (oder rtf) anweisungen intepretiert.
sprich in der txt steht:

---

[background]back.jpg
[txtfarbe]weiss
[Frage1]Was denkst du?
[Input]

[IfInput]1
Aha, eine 1

---

So ganz grob. Mit welchen Funktionen macht man das?
Habe mal hier was ähnliches gefragt, dann sagte mir man einen befehl der bytes ausliest. habs anhand der glbasic-hilfe nicht kapiert und resigniert.
Das oben ist nur ein Beispiel, ev gibts bessere Möglichkeiten?
Dass man am schluss ein textadventure praktisch im TXT scheiben kann und die Anwendung liest diese nur noch aus.
#7
hallo.
Ich habe in ac3d ein model gebaut das folgend aussieht: einen boden (rasen), dann noch 4 mauern am ende des bodens. also von oben gesehen eine schachtel ohne deckel. dies mit ac3d eingefärbt und in glbasic geladen konvertiert als ddd und geladen.
mit den pfeiltasten dreht er sich links, rechts und geht voraus (noch nicht relativ zu links/rechts rotation).
das wäre alles.
doch wenn er sich links dreht (oder rechts) hört es ab einem gewissen punkt praktisch auf. er dreht sich dann extrem langsam bis praktisch nicht.
dazu kommt, dass ich es nicht kapiere, dass vorwärts einfach relativ zu der richtung ist, in die man sieht.
war nicht besonders gut in mathe, das rächt sich wohl.

hier mal der code:

Code (glbasic) Select

GLOBAL x#, y#, z#, px#, py#, pz#, ma#, mb#
x#=1
y#=1
px#=-10

X_LOADOBJ "world.ddd", 0


WHILE TRUE

X_MAKE3D 1, 50, 45
X_CAMERA x#, y#, z#, px#, py#, pz#
X_DRAWOBJ 0, 0

IF KEY(200)=TRUE; x#=x#-0.1; ENDIF
IF KEY(203)=TRUE; pz#=pz#+1; ENDIF
IF KEY(205)=TRUE; pz#=pz#-1; ENDIF

SHOWSCREEN

WEND
#8
Hallo.
versuche ganz simpel mit einem dim von 13x13 eine map zu zeichnen, anhand des einsteiger-tutorials von glbasic.
ich meine es so:

111
121
111

1 ist gras, 2 ist erde. dann sollte er mir überall wo im dim 1 ist ein gras hinzeichnen und wo ein 2 ist erde. habe versucht das auf 13x13 zu machen mit einer spritegrösse von 50. der code kompiliert, doch bleibt das glbasic-fenster nur ein wimpernschlag offen. ohne die abfrage des dims funzt es. warum gibts keinen fehler aus und was mache ich falsch?

Code (glbasic) Select

SETSCREEN 1280, 720, 0

GLOBAL wx, wy, wt //13x13 felder mit wt als spätere abfrage was für eine eigenschaft
wx=13; wy=13; wt=1 //wird hier kurz deklariert, dass ers für das dim verwenden kann


LOADSPRITE "media/grass.png", 1
LOADSPRITE "media/erde.png", 2

DIM welt[wx][wy] //also welt[13][13]



WHILE TRUE

FOR wx=1 TO 13
FOR wy=1 TO 13

IF welt[wx][wy]=1 THEN DRAWSPRITE 1, wx*50, wy*50 //hier ist vermutlich der wurm drin. 50 ist die spritegrösse
IF welt[wx][wy]=2 THEN DRAWSPRITE 2, wx*50, wy*50



NEXT
NEXT


SHOWSCREEN

WEND

#9
Hallo.
Bin Anfänger in glbasic und würde gerne mit den 3d-befehlen herumexperimentieren.
Model laden geht und die camera usw, doch wie lade ich eine Welt in glbasic?
Ich errinnere mich an Blitz3d, wo man mit q3radiant die maps erstellen konnte und dann reinladen konnte.
geht sowas in glbasic auch? oder muss man die map einzeln aus objekten zusammenkleben?
Und welche Programme benutzt ihr?

Für die Modelle würde ich ac3d benutzen, doch fürs mapping?
würde mich sehr über etwas ausführliches freuen.
#10
GLBasic - de / RND-Frage
2013-Apr-10
hallo.
benutze rnd seit neuem, ecke enorm aber an folgendem an:
ich will das ein geger (monster) per rnd ausgewählt wird. am anfang NR 0-1, danach wenn der Held stufen aufgestiegen ist nicht mehr von 0 an (nur noch 1-2), da die monster im 0 zu einfach sind. krieg ich mit folgendem nicht gebacken:

IF plev% <= 2 AND monsterbeg%=0; monster% = RND(1); monsterbeg%=1; ENDIF; IF plev% > 2 AND monsterbeg%=0; monster% = 1+RND(1); monsterbeg%=1; ENDIF

logischerweise ist wenn plev unter 2 oder gleich ist der rnd 0 und 1. danach wenn plev grösser ist nur noch 1 und ev 2 (dank rnd 0 + 1).
mach ich da einen logikfehler?
grüsse
#11
hallo.
ich hab bis jetzt nur textadventures geschrieben und auf schleifen verzichtet, da ich gewisse grundsachen nicht kapiere (half mir die hilfe von glbasic nicht weiter).

ich will ein spielchen schreiben wie ein textadventure, doch muss man durch klicken weiterkommen (daher brauchts ja ne schleife).

zum grundprinzip denke ich mir das so:

---
variablen
schleifenanfang
abfrage (zb text was machst du und 2 knöpfe für handlungen)
schleifenende

handlung 1
handlung 2
---

nun wird das ja durchgelooped. wie bekomme ich also ein intro rein? muss ich diese aus der schleife aufrufen?
und ein startmenü? oder sind das verschiedene schleifen?
wie bekomme ich im hauptprogramm generell verzögerungen hin?

in älteren basics habe ich schon solche sachen ansatzweise geschrieben, doch benutzte ich dort faulerweise befehle wie sleep 2000 (2 sekunden warten) in der schleife, zB um ein weiteres sprite erst später anzeigen zu lassen.

grüsse
#12
hallo miteinander.
ich habe bis jetzt nie mit array's gearbeitet, immer einzelne variablen eingespeist (was natürlich vielmals blödsinn ist).
Da ich nun zuhause (krank) bin, hab ich mich wieder ans glbasic gesetzt um dies zu verstehen.
ich will ein 9x9 grosses feld machen (mit dim), dann über eine aufgerufene funktion ein spielfeld erstellen und die entsprechenden bilder (je was für eine zahl das feld hat) pasten.
level 1 könnte also so aussehen:

111111111
101110111
101110111
100000111
110111111
101111111
100000011
111111011
111111111

wobei das 0 ein feld zum betreten ist und das 1 eine wand. dachte das wäre relativ simpel, habe die bilder eingebunden (bis jetzt nur 2) und die funktion erstellt um nur mal ein 9x9 grosses feld zu haben und die bilder anzuzeigen. das programm kommt dann, bleibt eine sekunde und verschwindet wieder. da ich noch wie gesagt nie mit arrays geschafft habe und ich vermute, dass die array nicht global ist und die funktion nicht auf x+y-arrays vom feld zugreifen können, beendet es sich auch gleich.
ich hoffe generell den richtigen lösungsansatz dazu zu schreiben, danach sollte ja auch die kollisionsabfrage anhand der feldtypen stattfinden usw.
aber eben, wieso klappts nu nicht oder ists schrott was ich bis jetzt ausprobiert habe?

Code (glbasic) Select

DIM feld[8][8]


GLOBAL curx, cury, ende

ende = 0
curx=4
cury=4

LOADSPRITE "media/feld.png", 0
LOADSPRITE "media/marker.png", 1

WHILE ende=0
updater()
SHOWSCREEN
MOUSEWAIT
WEND



// ------------------------------------------------------------- //
// ---  UPDATER  ---
// ------------------------------------------------------------- //
FUNCTION updater:
// Diese Variablen sind als LOCAL definiert:
//

FOR x=0 TO 8
  FOR y=0 TO 8

    IF feld[x][y]=0

    FOR cord=0 TO 8
    x2=x*50
    y2=y*50
    DRAWSPRITE 0, x2, y2
    NEXT
    ENDIF

  NEXT
NEXT
ENDFUNCTION // UPDATER
#13
hallo miteinander.
ich habe bis jetzt nur kleinere programme auf glbasic geschrieben, was mir auch immer wieder spass bereitete.
benutze glbasic ungefähr für 1 projekt im jahr, von demher vergleich ich immer wieder den aktuellsten zustand mit dem vor nem jahr. bin auch nicht der fortgeschrittenste glbasic-user.

1. frage
warum auch immer wurden früher die abstände der font immer so von dingsfont übernommen, dass sie unnatürlich auseinander waren.
man musste einen kleinen code einfügen, dass er dies richtig setzte. war auch für mich eine unnötlige einstiegshürde. nun bei der aktuellen version auch ausprobiert, dasselbe. uo dingsfont 0.6 drüber installiert, dasselbe. wieso wird da nichts gemacht? oder übersehe ich da irgendwas? muss wieder ein code eingefügt werden, dass die abstände "normal" sind?

2. frage
ich hab früher für den wiz ein paar sachen geschrieben, immer in seiner auflösung. nun würd ich gerne was fürs iphone schreiben, muss ich mich da auf eine auflösung festlegen (zB 4g) und skaliert des das iphone hoch oder wie genau schaut das aus? alle sprites in verschiedenen auflösungen parat stellen und nen "checker" schreiben?

danke schon im voraus.
#14
Hallo Miteinander.
Ich sitze mal wieder an GlBasic, wollte wieder ein kleines Netzwerkspiel programmieren.
Schaute die Samples an und wollte sie starten - ging nicht.
meist kommt:
error : variable is not explicitly defined : id
da ich das ganze aber gern lernen würde und mir nun unsicher bin ob die hilfe auch veraltet ist, frag ich mal nach obs ein gutes und aktuelles tut gibt?
oder wie man bei den glbasic-samples das ganze zum laufen bringt? was da der fehler ist?
danke
#15
Tag.
Wollte für mich und meine Freundin ein Programm schreiben, bei dem wir die nächste Wohnung einrichten können. der grundplan der wohnung wird gezeigt, mit der maus werden die objekte platziert, mit linksklick das objekt platziert und mit rechtsklick das objekt gedreht (ein anderes gedrehtes png angezeigt).
Habe eine Funktion hier aus dem Forum genommen, die ich mal bekommen hab um den Mausklick zu präzisieren. Jetzt beim klicken von objekt 1 (ein bett), platziert es objekt 1 und 2 (tv) und beendet das programm.
müsste eigentlich objekt 1 platzieren (klick) und objekt 2 danach platzieren lassen (bis klick) und dann beenden.
hier mal der code. noch kurz zur erklärung:
obj: das objekt, also 1 für bett, 2 für tv
obj1x, obj1y: die variable, bei der die mausx und y gespeichert wird bei klick und das objekt dementsprechend in der schlaufe platziert wird
objor1, objor2: die ausrichtung des objektes. bei einem rechtklick gehts zu einem anderem sprite das gedreht ist.
dazu noch ein screenie vom programm, wenns läuft. rechts werden immer die kommenden möbelstücke gezeigt.

Code (glbasic) Select

// --------------------------------- //
// Project: wohnung prog
// Start: Sunday, December 11, 2011
// IDE Version: 10.118

GLOBAL obj, objor1, objor2, obj1x, obj1y, obj2x, obj2y

// DIM obj[2][4]

LOADSPRITE "media/plan.png", 0
LOADSPRITE "media/bett-1.jpg", 1 //bett
LOADSPRITE "media/bett-2.jpg", 2
LOADSPRITE "media/bett-3.jpg", 3
LOADSPRITE "media/bett-4.jpg", 4
LOADSPRITE "media/tv-1.jpg", 5 //tv
LOADSPRITE "media/tv-2.jpg", 6

obj=1
objor1=1
objor2=5

obj1x=700
obj1y=50

obj2x=700
obj2y=150

WHILE obj <= 3

MOUSESTATE mx, my, a, b // mauskoordinaten

DRAWSPRITE 0, 0, 0 //hgbild der plan


IF obj=1 //bett
DRAWSPRITE objor1, mx, my
IF MouseHit(b,1) = 1 AND objor1 = 1 AND obj=1 THEN objor1=2
IF MouseHit(b,1) = 1 AND objor1 = 2 AND obj=1 THEN objor1=3
IF MouseHit(b,1) = 1 AND objor1 = 3 AND obj=1 THEN objor1=4
IF MouseHit(b,1) = 1 AND objor1 = 4 AND obj=1 THEN objor1=1
IF MouseHit(a,1) = 1 AND obj = 1
obj1x=mx
obj1y=my
obj=2
ENDIF
ENDIF

IF obj=2 //tv
DRAWSPRITE objor2, mx, my
IF MouseHit(b,1) = 1 AND objor2 = 5 AND obj=2 THEN objor2=6
IF MouseHit(b,1) = 1 AND objor2 = 6 AND obj=2 THEN objor2=5
IF MouseHit(a,1) = 1 AND obj = 2
obj2x=mx
obj2y=my
obj=3
ENDIF
ENDIF


DRAWSPRITE objor1, obj1x, obj1y
DRAWSPRITE objor2, obj2x, obj2y

SHOWSCREEN

WEND



FUNCTION KeyHitUpdate:
GLOBAL   gKeyDown[], gKeyState[]
LOCAL  k
LOCAL i
STATIC a
    // First Time call/ zum ersten Mal hier
    //IF BOUNDS(gKeyDown[],0)=0
    IF a = 0
        DIM gKeyDown[256]
        DIM gKeyState[256]
        a =1
    ENDIF

    // For each key / für jede Taste
    FOR i=0 TO 255
        k = KEY(i)
        // Key is pressed / Taste ist gedrückt
        IF k
            IF gKeyDown[i]
                gKeyState[i]=1
            ELSE
                gKeyDown[i]=1
                gKeyState[i]=2
            ENDIF
        ELSE
            // Key is not pressed / Taste nicht gedrückt

            // Has key been pressed before?
            // War die Taste gedrückt?
            IF gKeyDown[i]
                gKeyDown[i] = 0
                gKeyState[i] = -1
            ELSE
                gKeyState[i]=0
            ENDIF
        ENDIF
    NEXT
ENDFUNCTION

//  0 = not pressed / nicht gedrückt
//  2 = just pressed / gerade runtergedrückt
//  1 = pressed / gedrückt (gehalten)
// -1 = release event / wieder losgelassen
FUNCTION KeyHit: nkey
    RETURN gKeyState[nkey]
ENDFUNCTION

// bt% =  Mousebutton,
// l_mbutton = standart linke mousetaste
// es können gesammt 7 Tasten abgefragt werden
// l_mbutton = 0 sollte aber reserviert bleiben
FUNCTION MouseHit% : bt%, l_mbutton% = 1
STATIC s_k AS T_mousehit
      IF bt = TRUE  AND s_k.s_check[l_mbutton] = TRUE AND s_k.s_done[l_mbutton] = 1
         s_k.s_done[l_mbutton] = 2
      ENDIF

      IF bt = TRUE  AND s_k.s_check[l_mbutton] = FALSE AND s_k.s_done[l_mbutton] = 0
         s_k.s_done[l_mbutton] = 1
         s_k.s_check[l_mbutton] = TRUE

//         ELSE
//          s_k.s_done[l_mbutton] = 0
      ENDIF


//      IF bt = FALSE  AND s_k.s_check[l_mbutton] = TRUE AND s_k.s_done[l_mbutton] = 2
//         s_k.s_done[l_mbutton] = 3
//         s_k.s_check[l_mbutton] = FALSE
//
//      ENDIF

      IF bt = FALSE AND s_k.s_check[l_mbutton] = TRUE  //AND s_k.s_done[l_mbutton] = 3
         s_k.s_done[l_mbutton] = 0
         s_k.s_check[l_mbutton] = FALSE
      ENDIF

RETURN s_k.s_done[l_mbutton]
ENDFUNCTION



TYPE T_mousehit
s_done%[6]
s_check%[6]
ENDTYPE



[attachment deleted by admin]
#16
Ciao.
Ich bin nach langer abstinenz wieder bei glbasic angekommen.
Habe früher so 2-3 kleine spielchen mit glbasic entwickelt, nie was grösseres, so textadventures, jumpnruns, roguelikesachen.
Nun habe ich konkret ein paar fragen zum thema 3d.
1. gibts in glbasic nun sowas wie einen maploader? in blitz gabs es, das man einfach bsp-maps laden konnte, gibts so eine option hier? oder sollt ich in einem modeler ein level basteln und das per ddd-exporter ins glbasic beamen? oder zu allem nein und man sollts schreiben?
2. glbasic ohne dem nachgeschriebenen enitysystem, komme ich als anfänger mit den befehlen aus oder muss ich eigene funktionen schreiben und ggf enitysystem nutzen?
3. dass die buchstaben in den erstellten fonts so weit auseinander sind und man ne eigene funktion schreiben muss, damit's lesbar wird hat sich auch nicht verändert, oder?

ich muss ganz ehrlich sein und sagen, dass der hauptgrund der war von glbasic wegzugehen, dass das alte blitz einfach ne map laden konnte, danach bisschen schreiben und s war sogar mit kollisionserkennung und allem. das glbasic auf so vielen plattformen läuft, hat mich wieder hergeführt. ich habe hohe achtung vor leuten, die sich lange mit programmieren allgemein oder glbasic beschäftigen und alles von faust aus machen, jedoch ist mein antrieb eher: ich bin nicht der totale anfänger aber auch nicht wirklich bodenständig auf dem gebiet, möchte trotzdem mit erleichtertem arbeitsaufwand kleine spiele herstellen. ich will sachen natürlich auch nicht zusammenklicken oder denke man zaubert kurz und schon habe ich einen egoshooter oder sowas ;) naja, ich hoffe ihr könnt mir bei dem oben genannten fragen helfen, auch wenn es wohl nicht die präzisesten sind. grüsse
#17
Moin.
Ich habe mich entschlossen ein kleines Labyrinthspiel zu programmieren. Das spiel ist in der Egoperspektive, jetzt steh ich schon vor meinem ersten Problem: der sicht.
Wenn der Spieler in einen Gang kommt, bei dem vor ihm eine Wand ist, links und rechts zwei weitere gänge sind, wie stellt man dies dar?

Die letzten beiden Bilder sollten dies verdeutlichen, habt ihr da eine bessere Idee?
Male das Labyrinth mit Paint und Koordinaten, sind unfertige Grafiken wie man sieht ;) bringt ja nix, wenn ich die Perspektive nicht hinbekomm. Das Spiel soll an ein altes Spiel namens Dungeon Master errinern, falls ihr dies kennt.

Der Spieler sieht nur 2 Felder weit, deshalb bedeuted schwarz in der mitte, dass es weitergeht. Ja - die färbung der Wände ist noch nicht korrekt ;)

Grüsse

[attachment deleted by admin]
#18
Moin.
Ich hab länger nix mehr geschrieben und mir kam die Idee, ob man nicht mit GLBasic HTML darstellen könnte?
Das man die Auflösung bestimmt mit GLBasic, Vollbild und dann HTML kommt... gibts da ein Befehl oder ist das pure Wunschvorstellung?
Ja, ich Baffe diese Frage mal so in die Runde... bei Medien in der Hilfe stehn ja nur bilder, sounds und filme.
grüsse :)
#19
Moin.
Ich habe mir heute ein Iphone gekauft, der ausschlaggebende Grund dafür war, das man mit GlBasic dafür Proggen kann und Compilen. Nun wollt ich wissen, wie ich das anstelle.
Da ich das Iphone wirklich fast nur aus diesem Grund geholt hab (wollt eigentlich zuerst ein android, entschied mich aber dann dagegen) und nix im forum gefunden hab ausser ein paar leeren threads wär ich echt dankbar für eine detailiertere beschreibung.
grüsse und danke an alle :D
#20
Salü GlBasicler.
Hier ohne Umschweife meine 2 Fragen:
1. Egal wie ich es anstelle, bei jeder Schriftart und grösse sind die Buchstaben unnatürlich voneinander getrennt (es hat einen kleinen abstand mehr von buchstabe zu buchsabe, als es angenehm zu lesen wäre). Auch wenn ich die Breite setze, manchmal schneidet es dann was weg. Wie habt ihr dies Problem gelöst?
2. Umlaute äöü werden nicht angezeigt, auch beim ausprobieren mehrerer schriften. Was kann man da tun oder muss ich immer ae oe und ue schreiben?
Danke für die Antworten schon im voraus.