Wie kann ich Sprites automatisch bewegen lassen?

Previous topic - Next topic

wangsi

Hallo
Wie kann ich sprites zum beispiel von rechts nach links laufen lassen?
Also automatisch?
Gruss Marc

Schranz0r

Code (glbasic) Select
LOADSPRITE "Ball.png",1

WHILE TRUE

    X = X + 1  // Von links nach rechts
    Y = 100 // Höhe von oberen Rand bis Linke Ecke Sprite

    Sprite 1,X,Y

SHOWSCREEN
WEND
END
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

wangsi

LOADBMP "dschungel.bmp"
SHOWSCREEN
MOUSEWAIT
PRINT "SNIPER 2X", 60, 20
SHOWSCREEN
MOUSEWAIT
LOADSPRITE "feind.bmp", 1
WHILE TRUE
X = X + 1  // Von links nach rechts
Y = 100 // Höhe von oberen Rand bis Linke Ecke Sprite
SPRITE 1,X,Y
WEND
PRINT "SNIPER 2X", 60, 20
SHOWSCREEN
MOUSEWAIT
LOADSOUND "monkey2.wav", 0, 4 // 4
PLAYSOUND (0, 0, 1)
MOUSEWAIT

da stürzt bei mir alles ab?
Habe ich was flasch gemacht?
Gruss

Kosta

hi,


du musst eine Endlosschleife machen und darin läuft dann alles ab.... (in deinem Beispiel bleibst du in der While true Schleife hängen ohne rauszukommen)

-->

also erstmal (ausserhalb der Endlosschleife).....ladest du erstmal alles (Bilder, Sounds, usw)...

dann fängt deineHauptschleife (WHILE TRUE) die daurnd läuft, an...

und kurz vor Schleifenende (WEND) ein SHOWSCREEN  (du brauchst nur ein Showscreen)

und alles was im Spiel passiert (Sprites zeichnen, bewegen, Tasten abfragen, usw.... machst du alles innerhalb dieser Schleife (ohne extra Showscreens)



...so wie es ShranzOr beschrieben hat..
Intel QuadCore, Geforce8600GT,512MB,4GB Ram, 26" TFT
HP nw8440 Schläppy
GP2X Mk2 (Firmware 3.0)

GLBASIC Blog:
http://www.glbasic.com/forum/index.php?blog=51.0

Kitty Hello

Der Absturz kommt wegen dek kaputen WAV file. Ich hab den Fehler behoben, aber Du musst ein PCM wav Format machen. Dieses WAV ist komprimiert (mit MP3).

wangsi

LOADBMP "dschungel.bmp"
PRINT "SNIPER 2X", 60, 20
LOADSPRITE "feind.bmp", 1
LOADSOUND "monkey2.wav", 0, 1
WHILE TRUE
X = X + 1  // Von links nach rechts
Y = 50 // Höhe von oberen Rand bis Linke Ecke Sprite
SPRITE 1,X,Y
PRINT "SNIPER 2X", 60, 20
SHOWSCREEN
PLAYSOUND (0, 0, 1)
WEND
END


Ok habe angepasst, auf windows spielt es wunderbar ab, auf dem Gp2x läuft es aber sound ist sehr verzerrt. Irgendeine Idee woran das liegen könnte?
edit : mir ist noch aufgefallen auf gp2x ist ein arm (von einem Pic) anstatt schwarz dursichtig.

Grüsse

superfish

Hi Wangsi,

hm.......ich nehme mal an, das das kein direktes Problem im Code ist (ausser vieleicht die Lautstärke). eher würde ich sagen, das deine Sounds
evt. Übersteuert sind. bzw. in einigen Teile des Files sehr hohe Pegelspitzen aufweisen. Ich kenne allerdings den Gp2x nicht, aber nehme mal an, das die Lautsprecher in diesem Gerät auch eher mittelmässig sind. (z.b sind bei Headsets die Micros immer sehr auf die Stimmen zugeschnitten, haben also eine Frequenzbereich, der auf Stimmen angepasst ist)

Schau Dir deine "*.wav" mal genauer an, z.b mit Wavelab oder...........http://audacity.sourceforge.net/     da gibt es einen kleinen Audio Editor for Free, der gar nicht so schlecht ist ;)

Hoffe das hilft Dir

Saludos Superfish

wangsi

hmm der gp2x hat zwar nicht die besten lautsprecher aber schlecht sind sie auf keinen fall.
Und eben das problem dass die Farbe schwarz (nicht pink für transparent) auch transparent ist beim einem bild.

Schranz0r

Der sound wird jede Schleife durchgespielt, so ist das falsch!


Setze einen Timer!
Code (glbasic) Select
WHILE TRUE

// Dein Code von vorher....

IF Timer < GETTIMERALL()
    PLAYSOUND(0,0,1)
    Timer = GETTIMERALL()+5000 // 5 Sekunden abstand !
ENDIF

SHOWSCREEN
WEND
END
Drücke doch bitte mal F1, und mach das Tutorial durch!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

wangsi

jop jetzt ist auch beim gp2x der sound klar.
Thx

Schranz0r

I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

wangsi

was ich noch fragen wollte wie habt ihr das alles gelernt z.b. sprites steuern u.s.w. davon habe ich im hilfe menu nichts gefunden.
grüse

Schranz0r

Da ist ein Tutorial drine!
Aber die meisten die herkommen, kennen sich schon in einer Programmiersprache aus.
Grundlegende sachen sind in allen Prpgrammiersprachen relativ gleich.
Aber wenn du fragen hast, Frag ruhig!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

wangsi

Danke vielmal ich hoffe einfach dass ich keinem auf die nerven gehe :-)

Was ich noch nicht weiss wie ich das geladene sprite mit steuerbefehlen bestücken kann.
Also mein Sprite sollte auf dem screen 320*240 (gp2x) mit hoch, runter, rechts, links, (keycodes kenne ich) steuerbar sein. Vielen Dank für eure Zeit und Antworten.
Greets Marc.

Schranz0r

So hier mal eine Anregung, um mal deinen Lernwillen an zu stacheln :D

PSEUDOCODE:
Code (glbasic) Select
If KEY(bla bla....)  // Keycodes kennst ja
    X = X+1   // nach rechts, bei links dann ein Minus !
ENDIF
brauchst du Quasi 4 mal das ganze für alle Richtungen 1x
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard