problem mit variablen
Übersicht

CrystalBetreff: problem mit variablen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hey leute
ich hab ein kleines problem, und zwar: ich habe zwei variablen (x,y). Diese geben die position eines bildes an (mein character). da sich dieser immer ändert (durch tasten) weiß ich nicht, wie ich z.b. etwas fallen lassen kann im spiel und dieses bild dann auf der alten position liegen bleibt (da wo ichs hingeworfen habe). wenn sich die x,y-werte ändern, bewegt sich logischerweise der character und das fallen gelassene item wie kann ich das beheben? ![]() LG |
||
![]() |
Hagbard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn ich dich richtig verstanden habe:
Das aufgehobene Item, darf nur die gleichen X, Y Werte haben, solange sie eben aufgehoben sind. D.h. du musst erstmal zwischen aufgehoben und nicht aufgehoben unterscheiden. Du könntest also eine Variable auf 0 (nicht aufgehoben) oder 1 (aufgehoben) setzen und anschließend festlegen (If status = 0 Then ... ), was bei welchen Zustand passieren soll. |
||
Crystal |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hab mich wahrscheinlich schlecht ausgedrückt ![]() ich möchte, dass wenn man etwas aus dem inventar auf den boden wirft, dass der gegenstand da liegen bliebt, auch wenn ich mich davon wegbewege. LG |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Inventargegenstand benötigt eigene x,y-Koordinaten, dann sollte es klappen | ||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Crystal |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
schon, aber wie kann ich diese definieren?
der x,y-wert des characters ändert sich immer und daher auch der gegenstand ![]() |
||
BBPro2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja weil du genau das was dir gerade gesagt wurde nicht beherzigst.... ![]() der gegenstand braucht seine EIGENEN koordinaten diese werden wenn er getragen wird immer aktualisiert (auf den wert der x,y koordinaten des trägers gesetzt) und wenn er nicht getragen wird bleiben diese konstant dann gehts |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn der Gegenstand eigene Variablen hat, sollte sich seine Position nicht ändern, wenn sich der Spieler bewegt.
Falls dieser irgendwo vom Spieler fallen gelassen wird, muss seine Position einmalig auf die des Spielers gesetzt werden. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Crystal |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
und wie kann man das machen, ich bin noch nicht lange mit bb vertraut :/ | ||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann solltest du dich eher mit Grundlagen beschäftigen und nicht mit Spieleprogrammierung, oder?
Ansonsten Type ![]() Edit: Ich glaube nicht, dass es sinnvoll ist, das Programmieren auf so einen Weg zu erlernen. Ich hatte noch das Glück ein BlitzBasic-Buch bei mir zu Hause zu haben, in dem alles Schritt für Schritt erklärt wurde. Zuerst natürlich Textmodus - von Grafik war für die ersten (min.) 90 Seiten keine Rede. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
- Zuletzt bearbeitet von Thunder am Mo, Mai 17, 2010 19:07, insgesamt einmal bearbeitet
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Leider sendest du kein einziges Stück Code mit. Da wird das Helfen schwierig.
Also Da ist eine Spieler mit seinen X und Y- Koordinaten. Und du hast einen Gegenstand der bekommt eigene X und Y-Koordinaten. Die nennen wir mal ItemX% und ItemY%. Zwischenfrage: Sieht man den Gegenstand immer schon am Spieler, während der Spieler sich bewegt? Oder wird der eigentlich erst in dem Moment sichtbar, wo der Spieler ihn abwirft? Im Moment des Abwerfens passiert jedenfalls folgendes: BlitzBasic: [AUSKLAPPEN] ItemX=X danach darf dieser Code nicht mehr aufgerufen werden, da ja die beiden Variablen sich jetzt nicht mehr ändern sollen. Das könnte so sein: Variante A: BlitzBasic: [AUSKLAPPEN] .... Variante B: Wenn man den Gegenstand schon immer am Spieler sieht, dann müsste noch eine Zeile eingefügt werden, die den Gegenstand mitnimmt, solange der noch nicht abgeworfen wurde. Dazu führen wir noch eine neue Variable ItemAmBoden% ein: BlitzBasic: [AUSKLAPPEN] .... Ich empfehle dir hier mal mein Variablen-Tutorial: https://www.blitzforum.de/foru...hp?t=33456 |
||
- Zuletzt bearbeitet von Midimaster am Di, Mai 18, 2010 8:24, insgesamt einmal bearbeitet
BBPro2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Crystal hat Folgendes geschrieben: und wie kann man das machen, ich bin noch nicht lange mit bb vertraut :/
das hat relativ wenig speziell mit bb zu tun du scheinst noch nicht sehr lange mit programmieren an sich vertraut zu sein das ist ja erstmal nichts schlimmes und es ist ja super dass immer wieder leute irgendwann anfangen zu programmieren - sonst hätten wir irgendwann ein ziemliches problem, wenn alle weg gestorben sind, die schon programmieren können... ^^ aber du solltest wirklich erstmal einige tutorials durcharbeiten und die ABSOLUTEN grundlagen von programmierung kennen lernen bevor du daran denkst irgendwas (vor allem grafisches) zu programmieren bißchen print input und variablen reichen für die ersten paar tage bis man ein gefühl dafür bekommt wie man mit variablen überhaupt zu arbeiten hat dann kann man schritt für schritt andere konzepte hinzuholen |
||
Hangman |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hier sind die Codeschnipsel der anderen mal zum ausprobieren. Kannst gucken ob wir dich richtig verstanden haben, wenn ja siehst dann ja jetzt wie es geht.
Code: [AUSKLAPPEN] Graphics 1024,768,16,2
SetBuffer BackBuffer() Global X,Y Global ItemX,ItemY Global Aufgehoben;1=aufgehoben, 0=nicht aufgehoben(bleibt liegen) Repeat Cls If KeyHit(57) Then Aufgehoben = 1 - Aufgehoben If KeyDown(205) Then X = X + 1;Spieler bewegen If KeyDown(208) Then Y = Y + 1 If KeyDown(200) Then Y = Y - 1 If KeyDown(203) Then X = X - 1 If Aufgehoben = 1 Then ItemX = X ItemY = Y End If Color 255,255,0 Rect X,Y,40,40,1;Player zeichnen Color 255,0,255 Rect ItemX,ItemY,30,30,1;Objekt zeichnen Color 255,255,255 Text 400,10,"Leertaste: Aufnehmen/Ablegen des Items" Text 400,30,"Pfeiltasten um sich zu bewegen" Text X+50,Y,"Spieler" Text ItemX+40,ItemY,"Item" Flip Until KeyHit(1) End |
||
Ich habe Berthold gebrochen. |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also hier empfielt sich der Einsatz von Types, am Anfang erscheinen Sie recht komplex, aber so schwer ist das gar nicht, ich glaube midimaster, aber auch andere haben dazu schon ein paar gute Tutorials geschrieben.
Wenn es sich nur um einen einzigen Gegenstand im 'ganzen' Spiel handelt, reichen 2 Variablen für den Gegenstand, wenn es mehrere Gegenstände seien sollen, braucht man auf jedne Fall Types. Code: [AUSKLAPPEN] Type TItem Field x% Field y% Field img% End Type in der Hauptschleife dann Code: [AUSKLAPPEN] If KeyHit(57) Then PullItem(SpielerX, SpielerY, GegenstandImg);Leertaste for item.TItem = each TItem DrawImage item\img, item\x, item\y next Die Function für das Item abwerfen Code: [AUSKLAPPEN] Function PullItem(x%, y%, img%) item.TItem = new TItem item\x = x item\y = y item\img = copyimage(img) End Function Für den Anfang und einen Denkanstoß sollte es reichen, alles andere in den Tutorials |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group