Kollision
Übersicht

herbinhoBetreff: Kollision |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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... ![]() |
||
herbinho |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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! ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group