AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

scrollen ohne scrollbar

Ein Thema von fox67 · begonnen am 31. Mär 2011 · letzter Beitrag vom 1. Apr 2011
Antwort Antwort
fox67

Registriert seit: 6. Okt 2010
Ort: 72661 Grafenberg
181 Beiträge
 
Turbo Delphi für Win32
 
#1

scrollen ohne scrollbar

  Alt 31. Mär 2011, 18:02
hallo
ich bin gerade dabei ein super mario klon zu programmieren. mein problem ist wenn ich bei der scrollbar visible auf false setze funktioniert das scrollen nicht mehr. doch es sieht erstens hässlich aus mit der scrollbar und man könnte vorscrollen ohne mit der figur weiterzulaufen was ja nicht der sinn des spieles ist. gibt es da eine andere methode?
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: scrollen ohne scrollbar

  Alt 31. Mär 2011, 18:39
Ich denke, Du solltest dafür nicht die VCL verwenden.
Für Spiele sind grafische Umgebungen sicher besser geeignet.
Ich habe aber damit keinerlei Erfahrungen - es gab mal ein Buch, in dem die Spieleentwicklung mit Delphi erklärt wurde...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#3

AW: scrollen ohne scrollbar

  Alt 31. Mär 2011, 18:57
Wäre das nicht ein Anwendungsfall für Andorra?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
fox67

Registriert seit: 6. Okt 2010
Ort: 72661 Grafenberg
181 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: scrollen ohne scrollbar

  Alt 31. Mär 2011, 19:07
eigentlich würde ich gerne bei vcl bleiben da dass einfacher ist. Und nicht so viel quellcode und daher viel verständlicher und übersichtlicher.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#5

AW: scrollen ohne scrollbar

  Alt 31. Mär 2011, 19:35
Du kannst die Komponenten auch selber verschieben.

einfach entsprechend Left und Top setzen
alles in ein großes Panel und dann dieses Panel verschieben bringt auch nicht viel, da es eine maximale Größe für solche Komponenten gibt (die Desktopgröße).

Ich würde eh nicht alles gleich erstellen.

rechts außerhalb des Bildes alles dynamisch erstellen, kurz bevor es eingeblendet wird und link alles wieder freigeben, sobald es aus dem Bild rausgewandert ist.
Nun muß man nur noch die wenigen sichtbaren und derzeit erstellten Komponenten verschieben (Left).
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
fox67

Registriert seit: 6. Okt 2010
Ort: 72661 Grafenberg
181 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: scrollen ohne scrollbar

  Alt 31. Mär 2011, 19:53
Du kannst die Komponenten auch selber verschieben.

einfach entsprechend Left und Top setzen
alles in ein großes Panel und dann dieses Panel verschieben bringt auch nicht viel, da es eine maximale Größe für solche Komponenten gibt (die Desktopgröße).

Ich würde eh nicht alles gleich erstellen.

rechts außerhalb des Bildes alles dynamisch erstellen, kurz bevor es eingeblendet wird und link alles wieder freigeben, sobald es aus dem Bild rausgewandert ist.
Nun muß man nur noch die wenigen sichtbaren und derzeit erstellten Komponenten verschieben (Left).
ich glaube dass ist zu kompliziert mann müßte hinten die teile löschen und vorne die neuen wieder hinzufügen. wenn es keine andere möglichkeit gibt werde ich es mit einem timer versuchen der verhindert dass man vor oder zurückscrollt
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#7

AW: scrollen ohne scrollbar

  Alt 1. Apr 2011, 00:29
Das ist nicht zu kompliziert, das ist ganz genau so, wie man es von je her macht. Und zwar aus gutem Grund
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#8

AW: scrollen ohne scrollbar

  Alt 1. Apr 2011, 04:52
Viele 2D-Spiele und erst recht 3D-Spiele bauen auf folgenden Grundprinzip auf:
1.) die Spielewelt ist zunächst nur ein virtuelles Model.
Spielfiguren, Waffen,usw sind zunächst nichts anderes als Objekte mit entsprechenden Eigenschaften
2.) Das was der Spieler optisch zu sehen bekommt ist ein Ausschnitt aus diesem virtuellen Modell
(somit ist Scrollen nur ein Verschieben des Ausschnitts)
3.) alle Objekte, die im sichtbaren Ausschnitt sind werden an ihren jeweiligen Positionen gezeichnet
4.) viele Objekte werden nicht komplett neu gezeichnet, sondern liegen schon fertig als kleine Bitmaps vor (Sprites)
5.) um Flackern zu unterdrücken wird meist auf einen sog. Framebuffer (im Prinzip ein Bitmap) gezeichnet und
dieser Framebuffer in den Videobuffer der Grafikkarte kopiert bzw. eingeblendet

Tja, und gilt auch noch: Spieleprogrammierung ist höchst anspruchsvoll,
mal eben so einen SuperMario Klon zu programmieren wird nicht klappen.
Als Spieleprogrammierer muss man wohl einen langen steinigen Weg gehen.
Das heisst man sollte folgende Spiele schon mal programmiert haben:
(in Reihenfolge aufsteigender Schwierigkeit)
Tic-Tac-Toe, Memory, 4-Gewinnt, Tetris, Meteor Wars, 3D-Tetris

Geändert von sx2008 ( 1. Apr 2011 um 04:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#9

AW: scrollen ohne scrollbar

  Alt 1. Apr 2011, 15:43
zu dem bild ausschnitt ist zu sagen:
Alle deine obkete die sichtbar sein köönten(also grafische), haben eine Position(nehmen wir mal x/y dafür).

Diese positionen werden relativ zur kamera gezeichnet. DAs heißt das die Position des Objektes(Weltkoordinaten) subtrahiert werden, mit der position der Kamera. So erhälst du die ViewKoordinaten.

wenn du also folgendes machst(vor jedem zeichnen):

Delphi-Quellcode:
PosToDraw.X := Object.X - Kamera.X;
PosToDraw.Y := Object.Y - Kamera.Y; //<--Bei Delphi muss hier ADDIERT werden, da Y von oben nach unten verläuft. Beispiel gilt für Y wen es von unten nach oben geht.
Damit erhälst du die richtigen koordinaten. Wenn deine map scrollen soll, "bewegst" du einfach die kamera. Das ist alles. Vor dem zeichnen dann nurnoch checken ob das objekt innerhalb des Views ist und das wars.

Aus obigem vllt eine funktion machen wie TranslateWorldToViewPos

PS: außerdem am besten NICHT mit einzelnen VCL komponenten für jedes Spielobjekt hantieren. Das einzig grafische ist eine Paintbox, und darauf werden alle bitmaps gezeichnet

MFG
Memnarch

Geändert von Memnarch ( 1. Apr 2011 um 15:46 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz