Kollision

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

herbinho

Betreff: Kollision

BeitragFr, Feb 16, 2007 12:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Tach,

bin noch ziemlicher Anfänger in Blitz Basic (und Programmierung).

Hoffe, es kann mir einer von euch, eine kurze Frage beantworten:

Ich möchte in einem ersten simplen Spiel eine Kollisionsabfrage machen, und zwar zwischen der Spielfigur und einem Bonus (Bonbon)

Nun möchte ich bei Kollision dieser beiden Objekte (also, dass Figur Punkte "frisst") programmieren, dass kurz ein Sound gespielt wird und das Punkte-Objekt vom Bildschirm verschwindet!

Wäre klasse, wenn jemand kurz diese Frage beantworten könnte!

Vielen Dank,

Christoph

Tankbuster

BeitragFr, Feb 16, 2007 12:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau dir mal die tuts auf www.robsite.de an!
Da findest du ne menge gute Hilfen und Beispiele!
Twitter
Download Jewel Snake!
Windows|Android
 

bb_fan

BeitragSa, Feb 17, 2007 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe die tuts schon durchgemacht, und mich auch mit der onlinehilfe schon auseinandergesetzt. Wollte ebenfalls eine Kollisionsabfrage mit ImagesOverlap erzeugen, leider funktioniert diese nicht. Kann mir jemand sagen für was die x,y Koordinate des 1. Bildes angegeben werden muss? In den Tutorials werden die Koordinaten des 1. Bildes immer mit MouseX() und MouseY() angegeben, habe aber noch nichts gefunden wo keine Maus verwendet wird... Crying or Very sad
 

herbinho

BeitragSa, Feb 17, 2007 16:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Tach,

danke für die Antwort.

Allerdings kenne ich die Tutorials von Robsite bereits.

Habe allerdings noch keine Lösung für mein spezielles Problem gefunden. Sad

Nochmal meine Frage/Bitte:

ich möchte, dass wenn meine Player-Figur einen Bonus(punkt) "frisst" ( ähnlich wie Pacman) einmal kurz ein Sound gespielt wird und die Grafik des Punkte-Objekts vom Bildschirm verschwindet.

Ich krieg das bislang jedoch nur so hin, dass wenn die Kollision zwischen Player und Punkt ist, der Sound nicht nur einmal kurz gespielt wird, sondern solange bis ich die Player Figur wieder wegbewege (und somit keine Kollision mehr besteht)

Das ist doch eigentlich standard in jedem simplen Spiel, von daher wird das doch für die meisten von euch keine Schwierigkeit darstellen; Für mich jedoch schon!

Deshalb noch mal eine herzliche Bitte um Hilfe!

Danke
Christoph

Tankbuster

BeitragSa, Feb 17, 2007 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstell eine variable, die (sobald du das Objekt berührst) auf 1 oder so springt! Der Sound wird nur abgespielt, wenn die Variable auf 0 ist. Dann wird er nur einmal abgespielt! Rolling Eyes
Twitter
Download Jewel Snake!
Windows|Android

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Feb 17, 2007 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn man bei der Kollision aber gleich das Objekt verschwinden lässt, kann man sich die weitere Variable sparen. Dann wird der Sound zwangsweise nur einmal abgespielt. Wichtig ist nur zu wissen, wie die Punkte gespeichert sind. Types? Dims? Variablen (grrrr)?
 

herbinho

BeitragSa, Feb 17, 2007 17:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Tach,

also die Punkte hab ich halt normal mit loadimage geladen und dann einfach nur mit drawimage punkte, punkte_x,punkte_y auf den Bildschirm gemalt.

Die Kollision läuft ungefär so ab:

if imagesoverlap (player,player_x,player_y,punkte,punkte_x,punkte_y) then ...


"punkte_x und punkte_y sind einfache Variablen

Mit Arrays kenn ich mich noch nicht so aus!
Kann man das auch so (also mit Variablen) machen?

Danke,
Christoph

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Feb 17, 2007 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Viele Wege führen nach Rom,..

Je nachdem, wie dein Spieler sich bewegt, würde ich auf unterschiedliche Überprüfungen Tipps drauf geben.

Zitat:
Kann man das auch so (also mit Variablen) machen?

Kann man! Man kann auch im Rückwärtsgang nach Rom gelangen.

Types und Dims sollten wenigsten in Teilbereichen verstanden sein, da sie unumgänglich sind. Du kannst unmöglich alles einfach so in Variablen speichern, ohne ständig auf Probleme zu stossen. Wie speicherst du denn jetzt deine Leveldaten? Doch nicht etwa auch mit normalen Variablen, oder?

Mein Vorschlag dazu:
Erstelle ein Dim-Feld in welchen du alle Levelinformationen drin speicherst (Wände, Wege etc.). Wenn deine Spielfigur sich Tileweise bewegt, so kannst du auch die Punkte gleich mit in das Dim-Feld packen. Kollision ist hier ganz einfach, If Playerposition=Dimposition Then blub. Bewegt sich deine Spielfigur Pixelweise, so kannst du die Punkte in Types packen oder auch ins Spielfeld-Dim und dann deine bisherige Kollisionsabfrage rein stellen.

Ein Dim-Feld kannst du dir wie eine Excel-Tabelle vorstellen, wo du in jeder Zelle ein Wert rein stellen kannst. Zellenwert ist dann zB gleich dein geladenes Bild. Du lädst also nur einmal eine Wandtile, einmal ein Wegtile etc. und bemalst dein Bildschirm jeden Schleifendurchlauf neu.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group